async def on_message(self, message): '''cuss filter''' url = "{}".format(os.environ.get("cuss_filter")) texts = myjson.get(url) texts = json.loads(texts) url2 = "{}".format(os.environ.get("warn_count")) warn = myjson.get(url2) warn = json.loads(warn) msgs = message.content.lower() if message.author.id == self.bot.user.id: return if any(word in msgs for word in texts ) and message.author.guild_permissions.administrator != True: #me = message.guild.get_member(user_id = 280271578850263040) if "{}".format(message.author.id) not in warn: warn[f"{message.author.id}"] = {} warn[f"{message.author.id}"]["count"] = 1 url2 = myjson.store(json.dumps(warn), update=url2) else: warn[f"{message.author.id}"]["count"] += 1 url2 = myjson.store(json.dumps(warn), update=url2) await message.author.send( "Hello!\nYou are not allowed to use words that you used in your last message: `{0}`\n**it is against the community rules.**You m.\n`Doesn't matter how you used it.`\n\nWarning Count: {1}" .format(message.content, warn[f"{message.author.id}"]["count"])) #await me.send("{0} wrote `{1}`\nCounter: {2}".format(message.author.name, message.content, warn[f"{message.author.id}"]["count"])) await asyncio.sleep(3) await message.delete()
async def leavemsg(self, ctx, args: str = None, args1: str = None): '''set the leave msg Syntax w!leavemsg msg channelid''' server = ctx.guild url = self.load_url2() url1 = self.toggle_url2() if args == None: msg = "Bye, you will be missed :frowning:" else: msg = args if args1 == None: channel_id = ctx.channel.id else: channel_id = args1 data = myjson.get(url) data = json.loads(data) data1 = myjson.get(url1) data1 = json.loads(data1) if "{}".format(server.id) not in data: data["{}".format(server.id)] = {} data["{}".format(server.id)]["msg"] = "{}".format(msg) data["{}".format( server.id)]["channel_id"] = "{}".format(channel_id) data1["{}".format(server.id)] = {} data1["{}".format(server.id)]["set_leave"] = "off" url = myjson.store(json.dumps(data), update=url) url1 = myjson.store(json.dumps(data1), update=url1) em = discord.Embed(description="Leave message has been set") em.colour = discord.Colour.green() await ctx.send(embed=em) else: em = discord.Embed( description= "There is a leave msg (already set), do you want to change it? Reply yes or no" ) em.colour = discord.Colour.green() await ctx.send(embed=em) def check(ctx): return (ctx.content == 'yes' or ctx.content == 'no' or ctx.content == 'Yes' or ctx.content == 'No') msge = await self.bot.wait_for('message', check=check) msge.content = msge.content.lower() if msge.content == "yes": data["{}".format(server.id)] = {} data["{}".format(server.id)]["msg"] = "{}".format(msg) data["{}".format( server.id)]["channel_id"] = "{}".format(channel_id) data1["{}".format(server.id)] = {} data1["{}".format(server.id)]["set_leave"] = "on" url = myjson.store(json.dumps(data), update=url) url1 = myjson.store(json.dumps(data1), update=url1) em = discord.Embed(description="Leave message has been set") em.colour = discord.Colour.green() await ctx.send(embed=em) else: em = discord.Embed(description="Edit command Terminated :D") em.colour = discord.Colour.red() await ctx.send(embed=em)
async def inforeports(self, ctx, *,code:str = None): '''report infos''' try: if code == None: await ctx.send("`Error: Missing ID!`") return url_rep = "https://api.myjson.com/bins/l5b09" data = myjson.get(url_rep) data = json.loads(data) report = data[f"{code}"]["report"] author = data[f"{code}"]["by"] author_id = data[f"{code}"]["auth_id"] em = discord.Embed() em.set_author(name = "Reports:", icon_url = "https://loading.io/spinners/recycle/lg.recycle-spinner.gif") em.add_field(name = "By:", value = author,inline = False) em.add_field(name = "Report Code:", value = code,inline = False) em.add_field(name = "Author ID:", value = author_id,inline = False) em.add_field(name = "Report:", value = report,inline = False) em.set_thumbnail(url = "https://i.pinimg.com/736x/0c/79/0a/0c790a5a37da132923a79f853602a36a.jpg") em.set_footer(text = "|Winter-Song| Report Tracker.", icon_url = self.bot.user.avatar_url) em.color=discord.Colour.blue() await ctx.send(embed = em) except Exception as e: print(e) await ctx.send("`Error: No such report exist!`")
async def on_message(self, message): '''Raven channel and bot usage limiter''' if message.channel.id == 356157029074862082 and message.guild.id == 356157029074862081: #General chat & Night watch channel msg = message.content.lower() if msg.startswith("w!") or msg.startswith("!") or msg.startswith( "t!") or msg.startswith("winter") or msg.startswith( "-") or msg.startswith("n!") or msg.startswith( '$') or msg.startswith("'"): await asyncio.sleep(2.5) await message.channel.purge( limit=15, check=lambda m: m.author.bot == True) await message.channel.send( f"{message.author.mention}, please refrain using the bot commands here, goto <#357605857862746115> or the Bots Section. Sorry, 😅", delete_after=7) await asyncio.sleep(2) await message.delete() if message.channel.id == 445328817264001035 and message.guild.id == 356157029074862081: #GOLD RAVEN's outfit channel & Nightwatch server url = "{}".format(os.environ.get("gold_raven_channel")) data = myjson.get(url) data = json.loads(data) if message.author.id == self.bot.user.id: return if not message.attachments and data["switch"] == "on": if message.author.guild_permissions.administrator != True and message.author.bot != True: await message.channel.send( f"{message.author.mention}, please refrain from texting here, just send the screenshot(When announced to) :3", delete_after=5.2) await asyncio.sleep(5) await message.delete()
async def toggleleave(self, ctx, *, args: str = None): '''Toggle leave or not''' url = self.toggle_url2() data = myjson.get(url) data = json.loads(data) accepted = ["on", "of"] if args == None: if "{}".format(ctx.guild.id) not in data: data["{}".format(ctx.guild.id)] = {} data["{}".format(ctx.guild.id)]["set_leave"] = "on" url = myjson.store(json.dumps(data), update=url) await ctx.send("`Leave Message Enabled For The Server`") else: current = data["{}".format(ctx.guild.id)]["set_leave"] await ctx.send("`Leave messages: {}`".format(current)) else: args = args.lower() if args in accepted: data["{}".format(ctx.guild.id)] = {} data["{}".format( ctx.guild.id)]["set_leave"] = "{}".format(args) url = myjson.store(json.dumps(data), update=url) await ctx.send("`Leave message set to: {}`".format(args)) else: await ctx.send("`Error: Invalid Parameter, define on or off.`")
async def settype(self, ctx, *, args: str = None): '''Toggle pic or text welcome''' url = self.msg_type() data = myjson.get(url) data = json.loads(data) accepted = ["pic", "text"] if args == None: if "{}".format(ctx.guild.id) not in data: data["{}".format(ctx.guild.id)] = {} data["{}".format(ctx.guild.id)]["msg_type"] = "text" url = myjson.store(json.dumps(data), update=url) await ctx.send("`Welcome Type: TEXT`") else: current = data["{}".format(ctx.guild.id)]["msg_type"] await ctx.send("`Current welcome Type: {}`".format(current)) else: args = args.lower() if args in accepted: data["{}".format(ctx.guild.id)] = {} data["{}".format(ctx.guild.id)]["msg_type"] = "{}".format(args) url = myjson.store(json.dumps(data), update=url) await ctx.send("`Welcome type set to: {}`".format(args)) else: await ctx.send( "`Error: Invalid Parameter, accepted: pic or text.`")
async def setbg(self, ctx, *, args: str = None): '''background for welcome''' url = self.set_bg() data = myjson.get(url) data = json.loads(data) if args == None: await ctx.send( "`Error: Nothing provided Note: must be a link not an attachment`" ) else: try: response = requests.head(args) resp_code = response.headers.get('content-type') if "image" in resp_code: link = args data["{}".format(ctx.guild.id)] = {} data["{}".format(ctx.guild.id)]["link"] = "{}".format(args) url = myjson.store(json.dumps(data), update=url) await ctx.send( "`Background Image added/changed, might not show up in some cases`" ) else: await ctx.send("`Error: Not a valid image`") except Exception as e: print(e) await ctx.send( "`Error: Invalid Link, also the image format must be png or jpg`" )
async def autorole(self, ctx, rolename: str = None, args: str = None): '''set the auto role''' try: if rolename == None or args == None: await ctx.send("`Error: role name not provided or Toggle?`") return role = discord.utils.find( lambda m: rolename.lower() in m.name.lower(), ctx.message.guild.roles) if not role: return await ctx.send('That role does not exist.') else: url_role = self.auto_roler() data_role = myjson.get(url_role) data_role = json.loads(data_role) args = args.lower() data_role["{}".format(ctx.guild.id)] = {} data_role["{}".format( ctx.guild.id)]["default_role"] = "{}".format(role) data_role["{}".format( ctx.guild.id)]["switch"] = "{}".format(args) url_role = myjson.store(json.dumps(data_role), update=url_role) await ctx.send("Default role set to: {}".format(role)) except Exception as e: print(e) await ctx.send("`Error: Wrong Format!`")
async def on_message(self, message): if message.author.id == self.bot.user.id: return url = "{}".format(os.environ.get("storee")) store = myjson.get(url) store = json.loads(store) file2 = open("data/levels.json", 'r+') file2 = file2.read() levels = json.loads(file2) if f"{message.guild.id}" not in store: store[f"{message.guild.id}"] = {} if f"{message.author.id}" not in store[f"{message.guild.id}"]: store[f"{message.guild.id}"][f"{message.author.id}"] = {} store[f"{message.guild.id}"][f"{message.author.id}"][ "points"] = 0 store[f"{message.guild.id}"][f"{message.author.id}"][ "level"] = 0 url = myjson.store(json.dumps(store), update=url) else: point = store[f"{message.guild.id}"][f"{message.author.id}"][ "points"] point += 2 store[f"{message.guild.id}"][f"{message.author.id}"][ "points"] = point if f"{point}" in levels: level = levels[f"{point}"] store[f"{message.guild.id}"][f"{message.author.id}"][ "level"] = level await message.channel.send( f"Congrats! {message.author.name} you just reached level **{level}!**" ) url = myjson.store(json.dumps(store), update=url) else: if f"{message.author.id}" not in store[f"{message.guild.id}"]: store[f"{message.guild.id}"][f"{message.author.id}"] = {} store[f"{message.guild.id}"][f"{message.author.id}"][ "points"] = 0 store[f"{message.guild.id}"][f"{message.author.id}"][ "level"] = 0 url = myjson.store(json.dumps(store), update=url) else: point = store[f"{message.guild.id}"][f"{message.author.id}"][ "points"] point += 2 store[f"{message.guild.id}"][f"{message.author.id}"][ "points"] = point if f"{point}" in levels: level = levels[f"{point}"] store[f"{message.guild.id}"][f"{message.author.id}"][ "level"] = level await message.channel.send( f"Congrats! {message.author.name} you just reached level **{level}!**" ) url = myjson.store(json.dumps(store), update=url)
def do_admin_login(): url = "{}".format(os.environ.get("link_to_me")) data = myjson.get(url) data = json.loads(data) print(data["name"]) if request.form['password'] == data["password"] and request.form['username'] == data["name"]: session['logged_in'] = True else: flash('wrong password!') return flogin()
async def on_message(message): channel = message.channel if message.content.startswith("noble!set"): if message.author.id == client.user.id: url ="https://api.myjson.com/bins/r0tyv" status = myjson.get(url) status = json.loads(status) stats = message.content[len("noble!set"):].strip() stats = stats.lower() if stats == "online" or stats == "offline": status["status"]= "{}".format(stats) url = myjson.store(json.dumps(status),update= url) await client.send_message(channel, "`SET!`") else: await client.send_message(channel,"`Error!`") if message.content.startswith("<@264348648542961664>") or message.content.startswith("<@"+client.user.id+">") or "<@264348648542961664>" in message.content: url ="https://api.myjson.com/bins/r0tyv" status = myjson.get(url) status = json.loads(status) if status["status"] == "offline": url1 ="https://api.myjson.com/bins/932a7" response = myjson.get(url1) response = json.loads(response) em = discord.Embed() em.set_thumbnail(url = "https://cdn.dribbble.com/users/4874/screenshots/2031709/messageincoming.gif") em.set_author(name = "Message(on_absence)", icon_url = "https://cdn.dribbble.com/users/320087/screenshots/1391703/024_cloud.gif", url = "https://api.myjson.com/bins/932a7") em.add_field(name = "Content:", value = "```{}```".format(message.content),inline = False) em.add_field(name = "Message_ID:", value = "```{}```".format(message.id),inline = False) response["author"]= "{}".format(message.author.name) response["authorid"]= "{}".format(message.author.id) response["messageserver"]= "{}".format(message.server) response["messagechannel"]= "{}".format(message.channel) response["messagecontent"]= "{}".format(message.content) url1 = myjson.store(json.dumps(response),update= url1) await client.send_message(message.author, content = "**__Feature-on-test__:** "+"**This is an automated Message**: "+"`Out atm, will get back to you asap :D`", embed = em) elif message.content.startswith('noble!status'): if message.author.id == client.user.id: url ="https://api.myjson.com/bins/r0tyv" status = myjson.get(url) status = json.loads(status) await client.send_message(channel, "`Currently: {}` Link: https://api.myjson.com/bins/r0tyv".format(status["status"]))
async def filtercheck(self, ctx): '''check words''' if ctx.author.guild_permissions.administrator == True: url = "{}".format(os.environ.get("cuss_filter")) data = myjson.get(url) data = json.loads(data) if not data: await ctx.send("`Filter base is empty.`") else: await ctx.send("```" + str(data) + "```")
async def warn(self, ctx, member: discord.Member = None, *, reason: str = None): '''warn system''' if ctx.author.guild_permissions.administrator == True or ctx.author.guild_permissions.manage_roles == True or ctx.author.guild_permissions.ban_members == True or ctx.author.guild_permissions.kick_members == True: try: if reason == None: await ctx.send("**Please Provide a reason!**") return user = member url2 = "{}".format(os.environ.get("warn_logs")) warn = myjson.get(url2) warn = json.loads(warn) if "{}".format(user.id) not in warn: warn[f"{user.id}"] = {} warn[f"{user.id}"]["count"] = 1 warn[f"{user.id}"]["name"] = "{}".format(str(user)) warn[f"{user.id}"]["reason"] = str(reason) url2 = myjson.store(json.dumps(warn), update=url2) else: warn[f"{user.id}"]["count"] += 1 warn[f"{user.id}"]["name"] = "{}".format(str(user)) warn[f"{user.id}"]["reason"] = str(reason) url2 = myjson.store(json.dumps(warn), update=url2) em = discord.Embed(color=0xffd500) notify = ctx.guild.get_member(user_id=int(user.id)) em.set_author( name="Member Warned!", icon_url="https://image.ibb.co/jmajRT/Federation.png") em.add_field(name="**Member:** ", value="**" + str(user) + "**" + f"\n**ID: {user.id}**", inline=False) em.add_field(name="**Warned By:**", value=f"**{ctx.author}**", inline=False) em.add_field(name="**Reason:**", value="```" + reason + "```", inline=False) em.add_field(name="**Count:**", value="{}".format(warn[f"{user.id}"]["count"]), inline=False) channel_id = 449617657910525953 channel = self.bot.get_channel(channel_id) await channel.send(embed=em) await ctx.send( "`Sent warning to {}, and count recorded.`".format(user)) except Exception as e: print(e) await ctx.send( "`Either can't send warn message to member, or member provided isnt in the server.`" )
async def report(self,ctx, *,rep:str = None): if rep == None: await ctx.send("`Nothing provided!`") return else: url_rep = "https://api.myjson.com/bins/l5b09" url_list = "https://api.myjson.com/bins/lqqm1" name = myjson.get(url_list) name = json.loads(name) data = myjson.get(url_rep) data = json.loads(data) UnId = str(uuid.uuid4())[:8] data[f"{UnId}"] = {} data[f"{UnId}"]["report"] = rep data[f"{UnId}"]["by"] = "{}".format(ctx.author) data[f"{UnId}"]["auth_id"] = "{}".format(ctx.author.id) nameandid = "ID: "+UnId+" "+"by "+"{}".format(ctx.author.name) name.append(nameandid) url_rep = myjson.store(json.dumps(data),update=url_rep) url_list = myjson.store(json.dumps(name),update=url_list) await ctx.send("Thank you very much for the report/suggestion! :smile:")
async def switch(self, ctx, *, switch): if ctx.author.id == 280271578850263040: if switch == None: await ctx.send("`None provided on/off`") return switch = switch.lower() url = "{}".format(os.environ.get("gold_raven_channel")) data = myjson.get(url) data = json.loads(data) data["switch"] = switch url = myjson.store(json.dumps(data), update=url) await ctx.send( "`Switch set to on: People cant text, off: people can text.`")
async def resetcounter(self, ctx, *, uids: str = None): if ctx.author.guild_permissions.administrator == True: url2 = "{}".format(os.environ.get("warn_count")) warn = myjson.get(url2) warn = json.loads(warn) if uids == None: await ctx.send("`No member provided`") return if "{}".format(uids) in warn: warn[f"{uids}"]["count"] = 0 url2 = myjson.store(json.dumps(warn), update=url2) await ctx.send("`Warnings reset.`") else: await ctx.send("`No such id in database`")
async def delword(self, ctx, *, args: str = None): if ctx.author.guild_permissions.administrator == True: url = "{}".format(os.environ.get("cuss_filter")) data = myjson.get(url) data = json.loads(data) if args == None: await ctx.send("`no word given.`") return word = args for word in data: if word in data: data.remove(word) url = myjson.store(json.dumps(data), update=url) await ctx.send("`The word was removed.`")
async def datawelcome(self,ctx): '''welcome datas''' url = "{}".format(os.environ.get("sw_link")) data = myjson.get(url) data = json.loads(data) data = json.dumps(data) try: out = await ctx.send("```js\n"+data+"```") except: paginated_text = ctx.paginate(data) for page in paginated_text: if page == paginated_text[-1]: out = await ctx.send(f'```js\n{page}\n```') break await ctx.send(f'```js\n{page}\n```')
async def on_member_remove(self, member): '''Leave!''' try: server = member.guild user = member is_bot = user.bot url_toggle = self.toggle_url2() url_message = self.load_url2() data_toggle = myjson.get(url_toggle) data_toggle = json.loads(data_toggle) data_message = myjson.get(url_message) data_message = json.loads(data_message) channel_id = data_message["{}".format(server.id)]["channel_id"] msg = data_message["{}".format(server.id)]["msg"] channel = self.bot.get_channel(int(channel_id)) #member_number = sorted(server.members, key=lambda m: m.joined_at).index(user) + 1 if data_toggle["{}".format(server.id)]["set_leave"] == "on": await channel.send("{}".format(msg) + "\n\n**Member:** {}".format(member.name) + "\n**Server:** **{}**".format(server.name) + "\n**Bot:** {}".format(is_bot) + "\n:wave:") except Exception as e: #print(e) pass
async def addword(self, ctx, *, args: str = None): '''add word to filter''' if ctx.author.guild_permissions.administrator == True: url = "{}".format(os.environ.get("cuss_filter")) if args == None: await ctx.send("`Word not specified!`") return else: data = myjson.get(url) data = json.loads(data) args = args.lower() if "{}".format(args) not in data: data.append(args) url = myjson.store(json.dumps(data), update=url) await ctx.send("`Filter database updated.`") else: await ctx.send("`Already added by an admin.`")
async def resetcounter(self, ctx, *,uids:str = None): if ctx.author.guild_permissions.administrator == True or ctx.author.guild_permissions.manage_roles == True or ctx.author.guild_permissions.ban_members == True or ctx.author.guild_permissions.kick_members == True: try: url2 = "https://api.myjson.com/bins/12c3vi" warn = myjson.get(url2) warn = json.loads(warn) if uids == None: await ctx.send("`No member provided`") return if "{}".format(uids) in warn: warn[f"{uids}"]["count"] = 0 warn[f"{uids}"]["reason"] = "None" url2 = myjson.store(json.dumps(warn),update=url2) await ctx.send("`Warnings reset for {}`".format(warn[f"{uids}"]["name"])) else: await ctx.send("`No such id in database`") except Exception as e: print(e) await ctx.send("`Couldn't connect to database atm, try again later.`")
async def allreports(self, ctx): '''loads all reports''' try: url_list = "https://api.myjson.com/bins/lqqm1" name = myjson.get(url_list) items = json.loads(name) added_items = '\n'.join(items) try: out = await ctx.send("**Reports:**\n"+"```{}```".format(added_items)) except: paginated_text = ctx.paginate(added_items) for page in paginated_text: if page == paginated_text[-1]: out = await ctx.send(f'```\n{page}\n```') break await ctx.send(f'```\n{page}\n```') except Exception as e: print("`Error: {}`".format(e)) await ctx.send("`Error: List Not Found!`")
async def points(self, ctx, *, member: discord.Member = None): server = ctx.guild user = member or ctx.message.author url = "{}".format(os.environ.get("storee")) store = myjson.get(url) store = json.loads(store) if f"{user.id}" not in store[f"{server.id}"]: if user.id == ctx.author.id: await ctx.send("**You haven't started chatting yet!**") return else: await ctx.send(f"**{user.name} have no points yet!**") points = store[f"{ctx.guild.id}"][f"{user.id}"]["points"] level = store[f"{ctx.guild.id}"][f"{user.id}"]["level"] if user.id == ctx.author.id: em = discord.Embed(title=f"{user.name}", url="https://placeholder.com/") em.colour = discord.Colour.blue() em.set_thumbnail(url=f"{user.avatar_url}") em.set_footer(text="|Level-Test|", icon_url=self.bot.user.avatar_url) em.add_field(name="Level:", value=f"{level}/50", inline=False) em.add_field(name="Rank:", value="Not Done.", inline=False) em.add_field(name="Points:", value=f"{points}/99998(Total)", inline=False) await ctx.send(embed=em) else: em = discord.Embed(title=f"{user.name}", url="https://placeholder.com/") em.colour = discord.Colour.blue() em.set_thumbnail(url=f"{user.avatar_url}") em.set_footer(text="|Level-Test|", icon_url=self.bot.user.avatar_url) em.add_field(name="Level:", value=f"{level}/50", inline=False) em.add_field(name="Rank:", value="Not Done.", inline=False) em.add_field(name="Points:", value=f"{points}/99998(Total)", inline=False) await ctx.send(embed=em)
async def warnlist(self,ctx): if ctx.author.guild_permissions.administrator == True or ctx.author.guild_permissions.manage_roles == True or ctx.author.guild_permissions.ban_members == True or ctx.author.guild_permissions.kick_members == True: try: url2 = "https://api.myjson.com/bins/12c3vi" warn = myjson.get(url2) warn = json.loads(warn) warnlist = [] for x in warn: warnlist.append("Count: {} {}".format(warn[x]["count"],warn[x]["name"])) warnstr = '\n'.join(warnlist) try: await ctx.send(f"```{warnstr}```") except: paginated_text = ctx.paginate(warnstr) for page in paginated_text: if page == paginated_text[-1]: out = await ctx.send(f'```\n{page}\n```') break await ctx.send(f'```\n{page}\n```') except Exception as e: print(e)
async def welcomemsg(self, ctx, args: str = None, args1: str = None): '''set the welcome msg Syntax w!welcomemsg msg channelid''' server = ctx.guild url = self.load_url() url1 = self.toggle_url() url3 = self.msg_type() url4 = self.set_bg() if args == None: msg = "Welcome! Have fun here <3" else: msg = args if args1 == None: channel_id = ctx.channel.id else: channel_id = args1 data = myjson.get(url) data = json.loads(data) data1 = myjson.get(url1) data1 = json.loads(data1) data3 = myjson.get(url3) data3 = json.loads(data3) data4 = myjson.get(url4) data4 = json.loads(data4) if "{}".format(server.id) not in data: data["{}".format(server.id)] = {} data["{}".format(server.id)]["msg"] = "{}".format(msg) data["{}".format( server.id)]["channel_id"] = "{}".format(channel_id) data1["{}".format(server.id)] = {} data1["{}".format(server.id)]["set_welcome"] = "off" data3["{}".format(server.id)] = {} data3["{}".format(server.id)]["msg_type"] = "text" data4["{}".format(server.id)] = {} data4["{}".format( server.id )]["link"] = "https://cdn.discordapp.com/attachments/384512083552894979/395207826684772374/bg.jpg" url = myjson.store(json.dumps(data), update=url) url1 = myjson.store(json.dumps(data1), update=url1) url3 = myjson.store(json.dumps(data3), update=url3) url4 = myjson.store(json.dumps(data4), update=url4) em = discord.Embed( description= "Welcome message has been set and type is text(default)") em.colour = discord.Colour.green() await ctx.send(embed=em) else: em = discord.Embed( description= "There is a welcome msg (already set), do you want to change it? Reply yes or no" ) em.colour = discord.Colour.green() await ctx.send(embed=em) def check(ctx): return (ctx.content == 'yes' or ctx.content == 'no' or ctx.content == 'Yes' or ctx.content == 'No') msge = await self.bot.wait_for('message', check=check) msge.content = msge.content.lower() if msge.content == "yes": data["{}".format(server.id)] = {} data["{}".format(server.id)]["msg"] = "{}".format(msg) data["{}".format( server.id)]["channel_id"] = "{}".format(channel_id) data1["{}".format(server.id)] = {} data1["{}".format(server.id)]["set_welcome"] = "on" data3["{}".format(server.id)] = {} data3["{}".format(server.id)]["msg_type"] = "text" data4["{}".format(server.id)] = {} data4["{}".format( server.id )]["link"] = "https://cdn.discordapp.com/attachments/384512083552894979/395207826684772374/bg.jpg" url = myjson.store(json.dumps(data), update=url) url1 = myjson.store(json.dumps(data1), update=url1) url3 = myjson.store(json.dumps(data3), update=url3) url4 = myjson.store(json.dumps(data4), update=url4) em = discord.Embed( description= "Welcome message has been set and type is text(default)") em.colour = discord.Colour.green() await ctx.send(embed=em) else: em = discord.Embed(description="Edit command Terminated :D") em.colour = discord.Colour.red() await ctx.send(embed=em)
async def on_member_join(self, member): '''welcome!''' try: server = member.guild user = member is_bot = user.bot url_toggle = self.toggle_url() url_message = self.load_url() url_type = self.msg_type() url_bg = self.set_bg() url_role = self.auto_roler() data_role = myjson.get(url_role) data_role = json.loads(data_role) data_bg = myjson.get(url_bg) data_bg = json.loads(data_bg) data_type = myjson.get(url_type) data_type = json.loads(data_type) data_toggle = myjson.get(url_toggle) data_toggle = json.loads(data_toggle) data_message = myjson.get(url_message) data_message = json.loads(data_message) member_number = sorted(server.members, key=lambda m: m.joined_at).index(user) + 1 if "{}".format( server.id) in data_message and data_toggle["{}".format( server.id)]["set_welcome"] == "on" and data_type[ "{}".format(server.id)]["msg_type"] == "pic": #await channel.send("{}".format(msg)+"\n\n**Member:** {0.mention}".format(member)+"\n**Server:** **{}**".format(server.name)+"\n**Member No:** {}".format(member_number)+"\n**Bot:** {}".format(is_bot)) channel_id = data_message["{}".format(server.id)]["channel_id"] msg = data_message["{}".format(server.id)]["msg"] channel = self.bot.get_channel(int(channel_id)) url = '{}'.format(member.avatar_url) # print(url) response = requests.get(url, stream=True) with open('img.png', 'wb') as out_file: shutil.copyfileobj(response.raw, out_file) del response #url_ser = '{}'.format(server.icon_url_as(format = 'png')) #print(url_ser) try: url_ser = "{}".format(data_bg["{}".format( server.id)]["link"]) respon = requests.get(url_ser, stream=True) with open('ser.png', 'wb') as ou_file: shutil.copyfileobj(respon.raw, ou_file) del respon except Exception as e: print(e) url_ser = "https://cdn.discordapp.com/attachments/384512083552894979/395207826684772374/bg.jpg" respon = requests.get(url_ser, stream=True) with open('ser.png', 'wb') as ou_file: shutil.copyfileobj(respon.raw, ou_file) del respon img = Image.open("img.png") new_im = Image.new("RGBA", (600, 200)) bg_w, bg_h = new_im.size other = Image.open("ser.png") other = other.resize((600, 200), PIL.Image.ANTIALIAS) other.save('resized_bg.jpg') others = Image.open("resized_bg.jpg") brightness = 0.5 enhancer = ImageEnhance.Brightness(others) others = enhancer.enhance(brightness) new_im.paste(others, (0, 0)) img.thumbnail((75, 75)) new_im.paste(img, (42, 65)) font1 = ImageFont.truetype('arialbd.ttf', 25) font2 = ImageFont.truetype('Homer_Simpson_Revised.ttf', 24) font3 = ImageFont.truetype('Tabitha.ttf', 22) xoff, yoff = (10, 5) d = ImageDraw.Draw(new_im) d.text((149, 31), "Welcome!", fill="white", font=font1) t = ImageDraw.Draw(new_im) t.text((137, 63), "{}".format(member), fill="white", font=font3) m = ImageDraw.Draw(new_im) print(len(msg)) if len(msg) > 50: msg = "Have Fun and Enjoy your time in here!" else: msg = data_message["{}".format(server.id)]["msg"] m.text((136, 86), "{}".format(msg), fill="white", font=font2) kk = ImageDraw.Draw(new_im) kk.text((137, 109), "Member Number: {}".format(member_number), fill="white", font=font2) if is_bot == True: is_bot = "Yes" else: is_bot = "No" bb = ImageDraw.Draw(new_im) bb.text((136, 134), "Bot: {}".format(is_bot), fill="white", font=font2) new_im.save("welcome_test.png") await channel.send(content="{0.mention}".format(member), file=discord.File('welcome_test.png')) try: if "{}".format( server.id) in data_role and data_role["{}".format( server.id )]["default_role"] is not None and data_role[ "{}".format(server.id)]["switch"] == "on": rolename = data_role["{}".format( server.id)]["default_role"] role = discord.utils.find( lambda m: rolename.lower() in m.name.lower(), server.roles) await member.add_roles(role) except Exception as e: pass elif "{}".format( server.id) in data_message and data_toggle["{}".format( server.id)]["set_welcome"] == "on" and data_type[ "{}".format(server.id)]["msg_type"] == "text": channel_id = data_message["{}".format(server.id)]["channel_id"] msg = data_message["{}".format(server.id)]["msg"] channel = self.bot.get_channel(int(channel_id)) await channel.send( "{}".format(msg) + "\n\n**Member:** {0.mention}".format(member) + "\n**Server:** **{}**".format(server.name) + "\n**Member No:** {}".format(member_number) + "\n**Bot:** {}".format(is_bot)) try: if "{}".format( server.id) in data_role and data_role["{}".format( server.id )]["default_role"] is not None and data_role[ "{}".format(server.id)]["switch"] == "on": rolename = data_role["{}".format( server.id)]["default_role"] role = discord.utils.find( lambda m: rolename.lower() in m.name.lower(), server.roles) await member.add_roles(role) except Exception as e: pass except Exception as e: print(e) try: if "{}".format( server.id) in data_message and data_toggle["{}".format( server.id)]["set_welcome"] == "on" and data_type[ "{}".format(server.id)]["msg_type"] == "pic": channel_id = data_message["{}".format( server.id)]["channel_id"] channel = self.bot.get_channel(int(channel_id)) await channel.send( "`Error encountered while creating image, please check the format of the bg provided(png, jpg).`\n**Welcome!**{0.mention}" .format(member)) except Exception as erre: print(erre)
async def preview(self, ctx, *, server: str = None): '''to preview welcome on any server''' if ctx.author.id == 280271578850263040: if server == None: await ctx.send("You missed to give an id!") return try: url_toggle = self.toggle_url() url_message = self.load_url() url_type = self.msg_type() is_bot = False url_bg = self.set_bg() serrv = self.bot.get_guild(int(server)) server = server data_type = myjson.get(url_type) data_type = json.loads(data_type) data_message = myjson.get(url_message) data_message = json.loads(data_message) data_bg = myjson.get(url_bg) data_bg = json.loads(data_bg) msg = data_message["{}".format(server)]["msg"] if "{}".format(server) in data_message: if data_type["{}".format(server)]["msg_type"] == "pic": try: try: url_ser = "{}".format(data_bg["{}".format( server.id)]["link"]) respon = requests.get(url_ser, stream=True) with open('ser.png', 'wb') as ou_file: shutil.copyfileobj(respon.raw, ou_file) del respon except Exception as e: print(e) url_ser = "https://cdn.discordapp.com/attachments/384512083552894979/395207826684772374/bg.jpg" respon = requests.get(url_ser, stream=True) with open('ser.png', 'wb') as ou_file: shutil.copyfileobj(respon.raw, ou_file) del respon img = Image.open("profile.png") new_im = Image.new("RGBA", (600, 200)) bg_w, bg_h = new_im.size other = Image.open("ser.png") other = other.resize((600, 200), PIL.Image.ANTIALIAS) other.save('resized_bg.jpg') others = Image.open("resized_bg.jpg") brightness = 0.5 enhancer = ImageEnhance.Brightness(others) others = enhancer.enhance(brightness) new_im.paste(others, (0, 0)) img.thumbnail((75, 75)) new_im.paste(img, (42, 65)) font1 = ImageFont.truetype('arialbd.ttf', 25) font2 = ImageFont.truetype( 'Homer_Simpson_Revised.ttf', 24) font3 = ImageFont.truetype('Tabitha.ttf', 22) xoff, yoff = (10, 5) d = ImageDraw.Draw(new_im) d.text((149, 31), "Welcome!", fill="white", font=font1) t = ImageDraw.Draw(new_im) t.text((137, 63), "Noble#5556", fill="white", font=font3) m = ImageDraw.Draw(new_im) print(len(msg)) if len(msg) > 50: msg = "Have Fun and Enjoy your time in here!" else: msg = data_message["{}".format(server)]["msg"] m.text((136, 86), "{}".format(msg), fill="white", font=font2) kk = ImageDraw.Draw(new_im) kk.text((137, 109), "Member Number: 1", fill="white", font=font2) if is_bot == True: is_bot = "Yes" else: is_bot = "No" bb = ImageDraw.Draw(new_im) bb.text((136, 134), "Bot: {}".format(is_bot), fill="white", font=font2) new_im.save("welcome_test.png") await ctx.send( content=f"**The Server is {serrv.name}**", file=discord.File('welcome_test.png')) except Exception as e: print(e) await ctx.send( "The image link might be invalid (not a valid .png/.jpg link) :sweat_smile:" ) if data_type["{}".format(server)]["msg_type"] == "text": await ctx.send( "`This is a preview of the welcome they set.`\n\n{}" .format(msg) + "\n\n**Member:** <@385681784614027265>" + "\n**Server:** **{}**".format(serrv.name) + "\n**Member No:** 1" + "\n**Bot:** {}".format(is_bot)) else: await ctx.send( "They haven't set a welcome message using me yet :smile:" ) except Exception as e: print(e)
currentTime = strftime("%a, %d %b, %Y %X +0000", localtime())[:-6] ip = getIP() ################################## ## UPDATE INFO JSON WITH SENSORY ## DATA ################################## steveInfoJSON['ip'] = ip steveInfoJSON['lastConnected'] = currentTime steveInfoJSON['sound'] = 1 steveInfoJSON['temp'] = 1 steveInfoJSON['lights'] = 1 steveInfoJSON['status'] = 1 steveInfoJSON['motion'] = 1 try: ################################### ## SUBMIT INFO JSON ################################### jason = json.loads(myjson.get(steveCommandsURL)) print jason myjson.store(json.dumps({"command": ""}), update=steveCommandsURL, id_only=True) myjson.store(json.dumps(steveInfoJSON), update=steveInfoURL, id_only=True) except: print "NO CONNECTION" time.sleep(4)