Skip to content

Commit 2125dd2

Browse files
committed
Add metadata posting loop back in
1 parent 6dce77b commit 2125dd2

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

bot.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ def __init__(self):
109109
self._api = SelfHostedClient(self)
110110
self.plugin_db = PluginDatabaseClient(self)
111111

112+
self.metadata_task = self.loop.create_task(self.metadata_loop())
112113
self.autoupdate_task = self.loop.create_task(self.autoupdate_loop())
113114
self._load_extensions()
114115
self.owner = None
@@ -203,6 +204,11 @@ def run(self, *args, **kwargs):
203204
except Exception:
204205
logger.critical(error('Fatal exception'), exc_info=True)
205206
finally:
207+
try:
208+
self.metadata_task.cancel()
209+
self.loop.run_until_complete(self.metadata_task)
210+
except asyncio.CancelledError:
211+
logger.debug('data_task has been cancelled')
206212
try:
207213
self.autoupdate_task.cancel()
208214
self.loop.run_until_complete(self.autoupdate_task)
@@ -847,6 +853,37 @@ async def autoupdate_loop(self):
847853

848854
await asyncio.sleep(3600)
849855

856+
async def metadata_loop(self):
857+
await self.wait_until_ready()
858+
self.owner = (await self.application_info()).owner
859+
860+
while not self.is_closed():
861+
data = {
862+
"owner_name": str(self.owner),
863+
"owner_id": self.owner.id,
864+
"bot_id": self.user.id,
865+
"bot_name": str(self.user),
866+
"avatar_url": self.user.avatar_url,
867+
"guild_id": self.guild_id,
868+
"guild_name": self.guild.name,
869+
"member_count": len(self.guild.members),
870+
"uptime": (datetime.utcnow() -
871+
self.start_time).total_seconds(),
872+
"latency": f'{self.ws.latency * 1000:.4f}',
873+
"version": self.version,
874+
"selfhosted": True,
875+
"last_updated": str(datetime.utcnow())
876+
}
877+
878+
879+
try:
880+
await self.session.post('https://api.modmail.tk/metadata', json=data)
881+
logger.debug('Posted metadata')
882+
except:
883+
pass
884+
885+
await asyncio.sleep(3600)
886+
850887

851888
if __name__ == '__main__':
852889
if os.name != 'nt':

0 commit comments

Comments
 (0)