@@ -141,21 +141,37 @@ def get_github_metrics(self):
141141 return {'error' : str (e )}
142142
143143 def get_discord_metrics (self ):
144- """Get Discord server metrics"""
144+ """Get Discord server metrics using multiple approaches """
145145 try :
146146 headers = {'Authorization' : f'Bot { self .discord_bot_token } ' }
147- guild_url = f'https://discord.com/api/v10/guilds/{ self .discord_server_id } '
148147
148+ # Try method 1: Get guild info with approximate member count
149+ guild_url = f'https://discord.com/api/v10/guilds/{ self .discord_server_id } ?with_counts=true'
149150 response = requests .get (guild_url , headers = headers )
150151
151152 if response .status_code == 200 :
152153 guild_data = response .json ()
153- return {
154- 'members' : guild_data .get ('approximate_member_count' , 0 )
155- }
156- else :
157- print (f"Discord API error: { response .status_code } " )
158- return {'members' : 0 }
154+ # Try multiple fields that might contain member count
155+ member_count = (
156+ guild_data .get ('approximate_member_count' ) or
157+ guild_data .get ('member_count' ) or
158+ guild_data .get ('members' )
159+ )
160+
161+ if member_count :
162+ return {'members' : member_count }
163+
164+ # Method 2: Try to get members list (if bot has permission)
165+ members_url = f'https://discord.com/api/v10/guilds/{ self .discord_server_id } /members?limit=1000'
166+ members_response = requests .get (members_url , headers = headers )
167+
168+ if members_response .status_code == 200 :
169+ members_data = members_response .json ()
170+ return {'members' : len (members_data )}
171+
172+ # Method 3: Fallback - return 0 but note the issue
173+ print (f"⚠️ Discord API responses: Guild: { response .status_code } , Members: { members_response .status_code } " )
174+ return {'members' : 0 }
159175
160176 except Exception as e :
161177 print (f"Discord API error: { e } " )
@@ -278,6 +294,7 @@ def create_discord_embed(self, current_metrics, previous_metrics):
278294 "value" : f"""
279295**Discord:** { discord_data .get ('members' , 'N/A' )} members { self .format_change (discord_change , discord_dir )}
280296**r/BasicMemory:** { reddit_data .get ('subreddit_members' , 'N/A' )} { self .format_change (reddit_change , reddit_dir )}
297+
281298 """ .strip (),
282299 "inline" : True
283300 },
0 commit comments