Skip to content

Commit 334f474

Browse files
committed
Add instance count to about
1 parent 2acdb60 commit 334f474

File tree

1 file changed

+38
-5
lines changed

1 file changed

+38
-5
lines changed

bot.py

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,11 @@
2222
SOFTWARE.
2323
'''
2424

25+
__version__ = '1.1.7'
26+
2527
import discord
2628
from discord.ext import commands
29+
import aiohttp
2730
from urllib.parse import urlparse
2831
import asyncio
2932
import textwrap
@@ -42,11 +45,11 @@
4245

4346
class Modmail(commands.Bot):
4447

45-
version = '1.1.6'
46-
4748
def __init__(self):
4849
super().__init__(command_prefix=self.get_pre)
4950
self.start_time = datetime.datetime.utcnow()
51+
self.session = aiohttp.ClientSession()
52+
self.loop.create_task(self.data_loop())
5053
self._add_commands()
5154

5255
def _add_commands(self):
@@ -204,9 +207,26 @@ def help_embed(self, prefix):
204207
em.add_field(name='Custom Mentions', value=mention)
205208
em.add_field(name='Warning', value=warn)
206209
em.add_field(name='Github', value='https://github.com/kyb3r/modmail')
207-
em.set_footer(text=f'Modmail v{self.version} | Star the repository to unlock hidden features! /s')
210+
em.set_footer(text=f'Modmail v{__version__} | Star the repository to unlock hidden features! /s')
208211

209212
return em
213+
214+
async def data_loop(self):
215+
await self.wait_until_ready()
216+
217+
while True:
218+
data = {
219+
"bot_id": self.user.id,
220+
"bot_name": str(self.user),
221+
"guild_id": self.guild_id,
222+
"guild_name": self.guild.name,
223+
"member_count": len(self.guild.members),
224+
"uptime": (datetime.datetime.utcnow() - self.start_time).total_seconds(),
225+
"version": __version__
226+
}
227+
228+
await self.session.post('https://api.kybr.tk/modmail', data=data)
229+
await asyncio.sleep(3600)
210230

211231
@property
212232
def uptime(self):
@@ -237,13 +257,26 @@ async def about(self, ctx):
237257
em.description = 'This is an open source discord bot made by kyb3r and '\
238258
'improved upon suggestions by the users! This bot serves as a means for members to '\
239259
'easily communicate with server leadership in an organised manner.'
260+
261+
try:
262+
meta = await self.session.get('https://api.kybr.tk/modmail')
263+
except:
264+
meta = None
240265

241266
em.add_field(name='Uptime', value=self.uptime)
242267
em.add_field(name='Latency', value=f'{self.latency*1000:.2f} ms')
243-
em.add_field(name='Version', value=f'[`{self.version}`](https://github.com/kyb3r/modmail/blob/master/bot.py#L45)')
268+
em.add_field(name='Version', value=f'[`{__version__}`](https://github.com/kyb3r/modmail/blob/master/bot.py#L45)')
244269
em.add_field(name='Author', value='[`kyb3r`](https://github.com/kyb3r)')
270+
271+
footer = f'Bot ID: {self.user.id}'
272+
if meta:
273+
em.add_field(name='Instances', value=meta['instances'])
274+
if __version__ != meta['latest_version']:
275+
footer = f'Latest version available is {meta['latest_version']}'
276+
245277
em.add_field(name='Github', value='https://github.com/kyb3r/modmail')
246-
em.set_footer(text=f'Bot ID: {self.user.id}')
278+
279+
em.set_footer(text=footer)
247280

248281
await ctx.send(embed=em)
249282

0 commit comments

Comments
 (0)