|
22 | 22 | SOFTWARE.
|
23 | 23 | '''
|
24 | 24 |
|
| 25 | +__version__ = '1.1.7' |
| 26 | + |
25 | 27 | import discord
|
26 | 28 | from discord.ext import commands
|
| 29 | +import aiohttp |
27 | 30 | from urllib.parse import urlparse
|
28 | 31 | import asyncio
|
29 | 32 | import textwrap
|
|
42 | 45 |
|
43 | 46 | class Modmail(commands.Bot):
|
44 | 47 |
|
45 |
| - version = '1.1.6' |
46 |
| - |
47 | 48 | def __init__(self):
|
48 | 49 | super().__init__(command_prefix=self.get_pre)
|
49 | 50 | self.start_time = datetime.datetime.utcnow()
|
| 51 | + self.session = aiohttp.ClientSession() |
| 52 | + self.loop.create_task(self.data_loop()) |
50 | 53 | self._add_commands()
|
51 | 54 |
|
52 | 55 | def _add_commands(self):
|
@@ -204,9 +207,26 @@ def help_embed(self, prefix):
|
204 | 207 | em.add_field(name='Custom Mentions', value=mention)
|
205 | 208 | em.add_field(name='Warning', value=warn)
|
206 | 209 | 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') |
208 | 211 |
|
209 | 212 | 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) |
210 | 230 |
|
211 | 231 | @property
|
212 | 232 | def uptime(self):
|
@@ -237,13 +257,26 @@ async def about(self, ctx):
|
237 | 257 | em.description = 'This is an open source discord bot made by kyb3r and '\
|
238 | 258 | 'improved upon suggestions by the users! This bot serves as a means for members to '\
|
239 | 259 | '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 |
240 | 265 |
|
241 | 266 | em.add_field(name='Uptime', value=self.uptime)
|
242 | 267 | 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)') |
244 | 269 | 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 | + |
245 | 277 | 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) |
247 | 280 |
|
248 | 281 | await ctx.send(embed=em)
|
249 | 282 |
|
|
0 commit comments