Skip to content

Commit 0dd6af7

Browse files
authored
Update daily_report.py
Signed-off-by: nellins <drewnellins@gmail.com>
1 parent e70179a commit 0dd6af7

1 file changed

Lines changed: 59 additions & 50 deletions

File tree

scripts/daily_report.py

Lines changed: 59 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -148,49 +148,73 @@ def get_github_metrics(self):
148148
return {'error': str(e)}
149149

150150
def get_discord_metrics(self):
151-
"""Get Discord server metrics with Server Members Intent enabled"""
151+
"""Get Discord server metrics with detailed debugging"""
152152
try:
153153
headers = {'Authorization': f'Bot {self.discord_bot_token}'}
154+
print(f"🔍 Discord Debug: Using server ID {self.discord_server_id}")
155+
print(f"🔍 Discord Debug: Bot token starts with {self.discord_bot_token[:20]}...")
154156

155-
# Primary method: Get guild with member counts (should work now with intent enabled)
156-
guild_url = f'https://discord.com/api/v10/guilds/{self.discord_server_id}?with_counts=true'
157-
response = requests.get(guild_url, headers=headers)
157+
# Method 1: Basic guild info
158+
basic_url = f'https://discord.com/api/v10/guilds/{self.discord_server_id}'
159+
basic_response = requests.get(basic_url, headers=headers)
160+
print(f"🔍 Basic guild API: {basic_response.status_code}")
158161

159-
if response.status_code == 200:
160-
guild_data = response.json()
162+
if basic_response.status_code == 200:
163+
basic_data = basic_response.json()
164+
print(f"🔍 Basic guild data keys: {list(basic_data.keys())}")
165+
print(f"🔍 Guild name: {basic_data.get('name', 'Unknown')}")
166+
else:
167+
print(f"🔍 Basic guild error: {basic_response.text}")
168+
169+
# Method 2: Guild with counts
170+
counts_url = f'https://discord.com/api/v10/guilds/{self.discord_server_id}?with_counts=true'
171+
counts_response = requests.get(counts_url, headers=headers)
172+
print(f"🔍 Counts API: {counts_response.status_code}")
173+
174+
if counts_response.status_code == 200:
175+
counts_data = counts_response.json()
176+
print(f"🔍 Counts data keys: {list(counts_data.keys())}")
161177

162-
# Try approximate_member_count first (most reliable)
163-
member_count = guild_data.get('approximate_member_count')
164-
if member_count and member_count > 0:
165-
print(f"✅ Discord: Found {member_count} members via approximate_member_count")
166-
return {'members': member_count}
178+
# Check all possible member count fields
179+
approximate_member_count = counts_data.get('approximate_member_count')
180+
member_count = counts_data.get('member_count')
181+
print(f"🔍 approximate_member_count: {approximate_member_count}")
182+
print(f"🔍 member_count: {member_count}")
167183

168-
# Fallback to other possible fields
169-
member_count = guild_data.get('member_count')
170-
if member_count and member_count > 0:
171-
print(f"✅ Discord: Found {member_count} members via member_count")
184+
if approximate_member_count:
185+
print(f"✅ Discord: Using approximate_member_count = {approximate_member_count}")
186+
return {'members': approximate_member_count}
187+
elif member_count:
188+
print(f"✅ Discord: Using member_count = {member_count}")
172189
return {'members': member_count}
173-
174-
print(f"Discord guild data: {guild_data}")
175190
else:
176-
print(f"Discord API error: {response.status_code} - {response.text}")
191+
print(f"🔍 Counts error: {counts_response.text}")
177192

178-
# If that fails, try getting actual member list (now that we have permission)
179-
members_url = f'https://discord.com/api/v10/guilds/{self.discord_server_id}/members?limit=1000'
193+
# Method 3: Try to get actual members (this might fail but let's see the error)
194+
members_url = f'https://discord.com/api/v10/guilds/{self.discord_server_id}/members?limit=10'
180195
members_response = requests.get(members_url, headers=headers)
196+
print(f"🔍 Members API: {members_response.status_code}")
181197

182198
if members_response.status_code == 200:
183199
members_data = members_response.json()
184-
member_count = len(members_data)
185-
print(f"✅ Discord: Counted {member_count} members from members list")
186-
return {'members': member_count}
200+
print(f"🔍 Got {len(members_data)} members from members endpoint")
201+
202+
# Get full count by pagination (if this works)
203+
full_members_url = f'https://discord.com/api/v10/guilds/{self.discord_server_id}/members?limit=1000'
204+
full_response = requests.get(full_members_url, headers=headers)
205+
if full_response.status_code == 200:
206+
full_data = full_response.json()
207+
member_count = len(full_data)
208+
print(f"✅ Discord: Counted {member_count} members from full list")
209+
return {'members': member_count}
187210
else:
188-
print(f"Discord members API error: {members_response.status_code}")
211+
print(f"🔍 Members error: {members_response.text}")
189212

213+
print("❌ Discord: All methods failed")
190214
return {'members': None}
191215

192216
except Exception as e:
193-
print(f"Discord API error: {e}")
217+
print(f"💥 Discord API exception: {e}")
194218
return {'members': None}
195219

196220
def get_reddit_metrics(self):
@@ -302,52 +326,37 @@ def create_discord_embed(self, current_metrics, previous_metrics):
302326

303327
embed = {
304328
"title": "🚀 Basic Memory Daily Traction Report",
305-
"description": f"📅 {datetime.now().strftime('%A, %B %d, %Y')}",
329+
"description": f"{datetime.now().strftime('%A, %B %d, %Y')}",
306330
"color": 0x00ff88,
307331
"fields": [
308332
{
309333
"name": "⭐ GitHub",
310-
"value": f"**Stars:** {github_data.get('stars', 'N/A')} {self.format_change(star_change, star_dir)}\n**Forks:** {github_data.get('forks', 'N/A')}",
311-
"inline": True
312-
},
313-
{
314-
"name": "\u200b", # Invisible character for spacing
315-
"value": "\u200b",
316-
"inline": True
334+
"value": f"**Stars:** {github_data.get('stars', 'N/A')} {self.format_change(star_change, star_dir)}\n**Forks:** {github_data.get('forks', 'N/A')} {self.format_change(fork_change, fork_dir)}",
335+
"inline": False
317336
},
318337
{
319338
"name": "💬 Community",
320-
"value": f"**Discord:** {discord_display} {discord_change_display}\n**r/BasicMemory:** {reddit_data.get('subreddit_members', 'N/A')} {self.format_change(reddit_change, reddit_dir)}",
321-
"inline": True
339+
"value": f"**r/BasicMemory:** {reddit_data.get('subreddit_members', 'N/A')} {self.format_change(reddit_change, reddit_dir)} members",
340+
"inline": False
322341
},
323342
{
324343
"name": "📺 YouTube",
325344
"value": f"**Subscribers:** {youtube_data.get('subscribers', 'N/A')} {self.format_change(sub_change, sub_dir)}\n**Views:** {youtube_data.get('total_views', 'N/A')} {self.format_change(view_change, view_dir)}\n**Videos:** {youtube_data.get('video_count', 'N/A')}",
326-
"inline": True
327-
},
328-
{
329-
"name": "\u200b", # Spacing
330-
"value": "\u200b",
331-
"inline": True
332-
},
333-
{
334-
"name": "\u200b", # Spacing
335-
"value": "\u200b",
336-
"inline": True
345+
"inline": False
337346
}
338347
],
339348
"footer": {
340-
"text": f"🤖 Automated by Basic Memory"
349+
"text": f"Thanks for making Basic Memory great! 🏆"
341350
},
342351
"timestamp": datetime.now().isoformat()
343352
}
344353

345354
# Add daily highlight if there's significant growth
346355
highlights = []
347-
if discord_change > 5:
348-
highlights.append(f"Discord gained {discord_change} new members!")
349-
if star_change > 10:
356+
if star_change > 5:
350357
highlights.append(f"GitHub stars up {star_change}!")
358+
if reddit_change > 2:
359+
highlights.append(f"r/BasicMemory gained {reddit_change} members!")
351360
if sub_change > 0:
352361
highlights.append(f"YouTube gained {sub_change} subscribers!")
353362

0 commit comments

Comments
 (0)