KaniumCogs/welcomeCog/welcome.py

54 lines
2.1 KiB
Python
Raw Normal View History

2020-03-30 14:52:48 +03:00
import asyncio
2020-03-30 19:35:01 +03:00
import aiohttp
import discord
import json
2020-03-30 14:52:48 +03:00
2020-03-30 14:39:33 +03:00
from redbot.core import Config, checks, commands
2020-03-30 14:52:48 +03:00
from redbot.core.utils.chat_formatting import box, humanize_list, pagify
2020-03-30 19:35:01 +03:00
url = 'https://raw.githubusercontent.com/Kanium/KanuimCogs/master/welcomeCog/data/embedded_message.json'
2020-03-30 19:40:47 +03:00
async def fetchMessage():
async with aiohttp.ClientSession() as session:
2020-03-30 19:35:01 +03:00
async with session.get(url) as response:
2020-03-30 19:40:47 +03:00
html = await response.text()
2020-03-30 19:35:01 +03:00
x = json.loads(str(html))
return x
def formatMessage(jsonFormat):
2020-03-30 15:29:05 +03:00
try:
message=discord.Embed(title=str(jsonFormat['title']), description=''.join(map(str, jsonFormat['description'])), color=hex(jsonFormat['color']))
message.set_thumbnail(url=jsonFormat['thumbnail'])
for field in jsonFormat['fields']:
if(field['id']!='links'):
message.add_field(name=field['name'], value=field['value'], inline=field['inline'])
else:
message.add_field(name=field['name'], value=''.join(map(str,field['value'])), inline=field['inline'])
message.set_footer(text=jsonFormat['footer']['text'], icon_url=jsonFormat['footer']['icon_url'])
return message
2020-03-30 15:29:05 +03:00
except:
message=discord.Embed(title="Kanuim", description='', color=hex(jsonFormat['color']))
message.add_field(name="Welcome", value='Welcome To Kanuim !', inline=True)
return message
2020-03-30 14:52:48 +03:00
class WelcomeCog(commands.Cog):
2020-03-30 14:47:48 +03:00
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
2020-03-30 19:40:47 +03:00
self.message = ''
@commands.Cog.listener()
async def on_member_join(self, member: discord.Member):
2020-03-30 19:17:55 +03:00
try:
2020-03-30 19:45:24 +03:00
await member.send('sending')
2020-03-30 19:40:47 +03:00
if self.message == '':
2020-03-30 19:45:24 +03:00
await member.send('modifying')
2020-03-30 19:40:47 +03:00
self.message = await fetchMessage()
2020-03-30 19:35:01 +03:00
message = formatMessage(self.message)
2020-03-30 19:45:24 +03:00
await member.send(str(self.message))
2020-03-30 19:17:55 +03:00
await member.send(content=None, embed=message)
except (discord.NotFound, discord.Forbidden):
print(f'Error Occured! sending a dm to {member.display_name} didnt work !')