def check_files(): s = {'APIKEY': '', 'APISECRET': '', 'USERNAME': '', 'PASSWORD': ''} f = "data/lastfm/settings.json" if not fileIO(f, "check"): print("Creating default lastfm's settings.json...") fileIO(f, "save", s)
def __init__(self, bot): self.bot = bot self.settings = fileIO("data/emotes/settings.json", "load") self.emote_list = [] self.available_emotes = fileIO( "data/emotes/available_emotes.json", "load") self.emote_url = "https://api.twitch.tv/kraken/chat/emoticons"
def check_file(): scores = {} f = "data/karma/scores.json" if not fileIO(f, "check"): print("Creating default karma's scores.json...") fileIO(f, "save", scores)
def check_file(): quotes = [] f = "data/quotes/quotes.json" if not fileIO(f, "check"): print("Creating default quotes's quotes.json...") fileIO(f, "save", quotes)
def check_file(): enabled = {} f = "data/autoapprove/enabled.json" if not fileIO(f, "check"): print("Creating default autoapprove's enabled.json...") fileIO(f, "save", enabled)
def check_settings(): settings = {"app_name" : "Put your application name here!", "cal_id" : "primary"} f = "data/GCalendar/settings.json" if not fileIO(f, "check"): print("Creating settings.json") print("Setup Google API and Application") fileIO(f, "save", settings)
async def _mentionset_limit(self, ctx, num: int): """Number of minutes to wait in between saving mentions.""" if num < 0: self.bot.send_cmd_help(ctx) return self.settings["MENTION_TIME_LIMIT"] = num fileIO("data/mentiontracker/settings.json", "save", self.settings) self.bot.say("Settings saved.")
def check_files(): repos = \ {'community': {'url': "https://github.com/Twentysix26/Red-Cogs.git"}} f = "data/downloader/repos.json" if not fileIO(f, "check"): print("Creating default data/downloader/repos.json") fileIO(f, "save", repos)
async def tickets_per_user(self, ctx, num: int): """Limits the number of tickets a user can have 0 = infinite.""" if num < 0: await send_cmd_help(ctx) return self.settings["TICKETS_PER_USER"] = num fileIO("data/tickets/settings.json", "save", self.settings) await self.bot.say("Tickets per user set to {}".format(num))
def check_files(): repos = \ {'community': {'url': "ADD A COMMUNITY CAL!!!"}} f = "data/downloader/repos.json" if not fileIO(f, "check"): print("Creating default data/downloader/repos.json") fileIO(f, "save", repos)
async def _lastfmset_enabled(self, ctx): if 'ENABLED' not in self.settings: self.settings['ENABLED'] = True await self.bot.say('Scrobbler enabled.') else: curr = self.setting['ENABLED'] self.setting['ENABLED'] = (not curr) await self.bot.say('Scrobbler enabled? {}'.format((not curr))) fileIO('data/lastfm/settings.json', 'save', self.settings)
async def user_update(self,before,after): if before.id in self.mail and len(self.mail[before.id]['mail']) > 0: if before.status != Status.online and after.status == Status.online: if self.mail[after.id]['last_notify'] + 300 < int(time.time()): self.mail[after.id]['last_notify'] = int(time.time()) await self.bot.send_message( after,"You have mail!\n\nType {} to view.".format(inline("mention read")) ) fileIO("data/mentiontracker/mail.json","save",self.mail)
async def _karmaset_respond(self, ctx): """Toggles if bot will respond when points get added/removed""" if self.settings['RESPOND_ON_POINT']: await self.bot.say("Responses disabled.") else: await self.bot.say('Responses enabled.') self.settings['RESPOND_ON_POINT'] = \ not self.settings['RESPOND_ON_POINT'] fileIO('data/karma/settings.json', 'save', self.settings)
async def _mention_register(self, ctx): """Register yourself for mention tracking""" user = ctx.message.author if user.id not in self.mail: self.mail[user.id] = {} self.mail[user.id]['mail'] = [] self.mail[user.id]['last_notify'] = 0 fileIO("data/mentiontracker/mail.json", "save", self.mail) await self.bot.reply("thanks for registering.") else: await self.bot.reply("you're already registered.")
async def _add_mail(self,add_id,message): mail = {} mail["author"] = message.author.name message_to_store = "" async for x in self.bot.logs_from(message.channel, limit=3, before=message): message_to_store+=x.author.name+": "+self._clean_message(x)+"\n" mail["message"] = message_to_store+self._clean_message(message) mail["server"] = message.server.name mail["channel"] = message.channel.name mail["time"] = str(message.timestamp) self.mail[add_id]['mail'].append(mail) fileIO("data/mentiontracker/mail.json","save",self.mail)
async def deleteticket(self, ctx, num: int=1): """Deletes any number of tickets, default = 1""" if num < 0: await send_cmd_help(ctx) return if num > len(self.tickets): num = len(self.tickets) self.tickets = [] else: self.tickets = self.tickets[num:] fileIO("data/tickets/tickets.json", "save", self.tickets) await self.bot.say("{} tickets deleted.\n{} tickets remaining.".format(num, len(self.tickets)))
def _get_ticket(self): if len(self.tickets) > 0: ticket = self.tickets[0] for idnum in ticket: ret = ticket[idnum].get( "name", "no_name") + ": " + \ ticket[idnum].get("message", "no_message") if not self.keep_on_read: self.tickets = self.tickets[1:] fileIO("data/tickets/tickets.json", "save", self.tickets) return ret else: return "No more tickets!"
def __init__(self, bot): self.bot = bot self.events = fileIO('data/scheduler/events.json', 'load') self.queue = asyncio.PriorityQueue(loop=self.bot.loop) self.queue_lock = asyncio.Lock() self.to_kill = {} self._load_events()
async def botrolet(self, ctx): """Toggles the bot role setting for welcomer.""" server = ctx.message.server db = fileIO(self.load, "load") if not server.id in db: await self.bot.say("Server not found, please use `{}welcomer channel #channel_name` then you can set/enable the bot role.".format(ctx.prefix)) return if db[server.id]['Botrole'] == None: await self.bot.say("Botrole not found set it with `{}welcomer botrole`.".format(ctx.prefix)) if db[server.id]["Botrolet"] == False: db[server.id]["Botrolet"] = True fileIO(self.load, "save", db) await self.bot.say("Bot role enabled.") elif db[server.id]["Botrolet"] == True: db[server.id]["Botrolet"] = False fileIO(self.load, "save", db) await self.bot.say("Bot role disabled.")
async def leavemsg(self, ctx, *, message : str): """Sets the welcomer leavemsg setting.""" server = ctx.message.server db = fileIO(self.load, "load") if ctx.message.server.id not in db: await self.bot.say("Please set the channel you want me to send welcoming and leaving messages to with `{}welcomer channel #channel_name` then you may proceed to setting this message..".format(ctx.prefix)) return if db[server.id]['Leavemsg'] is not None: db[server.id]['Leavemsg'] = message fileIO(self.load, "save", db) await self.bot.say("Leave message has been changed.") if db[server.id]["Leavemsg"] is None: db[server.id]['Leavemsg'] = message fileIO(self.load, "save", db) await self.bot.say("Leave message has been set.") else: await self.bot.say("Please set the channel you want me to send welcoming and leaving messages to with `{}welcomer channel #channel_name` then you may proceed to setting this message.".format(ctx.prefix))
async def delquote(self, num: int): """Deletes a quote by its number Use !allquotes to find quote numbers Example: !delquote 3""" if num > 0 and num <= len(self.quotes): quotes = [] for i in range(len(self.quotes)): if num - 1 == i: await self.bot.say("Quote number " + str(num) + " has been deleted.") else: quotes.append(self.quotes[i]) self.quotes = quotes fileIO("data/quotes/quotes.json", "save", self.quotes) else: await self.bot.say("Quote " + str(num) + " does not exist.")
async def togglejoin(self, ctx): """toggle join message""" server = ctx.message.server db = fileIO(self.direct, "load") channel = db[server.id]["Channel"] if db[server.id]["join"] == False: db[server.id]["join"] = True fileIO(self.direct, "save", db) await self.bot.say( ":punch:***Join messages enabled***:thumbsup: **Ill be sending welcome messages to** : ***#{}***" .format(server.get_channel(channel).name)) elif db[server.id]["join"] == True: db[server.id]["join"] = False fileIO(self.direct, "save", db) await self.bot.say( ":bangbang::no_good:**Join messages disabled**:no_good::bangbang:" )
async def _mention_read(self,ctx): """Read all mentions since you've been dead """ user = ctx.message.author if user.id not in self.mail: await self.bot.reply("DUDEEE, YOU NEED TO REGISTER FIRST YOU DERP -Slaps you with my tail- ") temp_context = ctx temp_context.invoked_subcommand = self._mention_register await send_cmd_help(temp_context) return if len(self.mail[user.id]['mail']) == 0: await self.bot.say("You have no mentions. #ForeverAlone") return for mail in self.mail[user.id]['mail']: await self.bot.whisper(self._fmt_mail(mail)) self.mail[user.id]['mail'] = [] self.mail[user.id]['last_notify'] = 0 fileIO("data/mentiontracker/mail.json","save",self.mail)
async def botroletoggle(self, ctx): """Toggles the bot role setting for welcomer.""" server = ctx.message.server db = fileIO(self.load, "load") if not server.id in db: await self.bot.say(":x: **Please set the channel you want me to send welcoming and leaving messages to with\n`welcomer channel #channel_name`\nthen you may proceed to setting this message.**") return if db[server.id]['botroletoggle'] is None: await self.bot.say("botroletoggle not found set it with `{}welcomer botroletoggle`.".format(ctx.prefix)) if db[server.id]["botroletoggle"] is False: db[server.id]["botroletoggle"] = True fileIO(self.load, "save", db) await self.bot.say("Bot role enabled.") elif db[server.id]["botroletoggle"] is True: db[server.id]["botroletoggle"] = False fileIO(self.load, "save", db) await self.bot.say("Bot role disabled.")
async def _mention_read(self, ctx): """Read all mentions since you've been away.""" user = ctx.message.author if user.id not in self.mail: await self.bot.reply("you're not registered!") temp_context = ctx temp_context.invoked_subcommand = self._mention_register await send_cmd_help(temp_context) return if len(self.mail[user.id]['mail']) == 0: await self.bot.say("You have no mentions.") return for mail in self.mail[user.id]['mail']: await self.bot.whisper(self._fmt_mail(mail)) self.mail[user.id]['mail'] = [] self.mail[user.id]['last_notify'] = 0 fileIO("data/mentiontracker/mail.json", "save", self.mail)
async def leavemessage(self, ctx, *, message: str): """Sets the welcomer leavemessage setting.""" server = ctx.message.server db = fileIO(self.load, "load") if ctx.message.server.id not in db: await self.bot.say( ":x: **Please set the channel you want me to send welcoming and leaving messages to with `welcomer channel #channel_name` then you may proceed to setting this message..**" ) return if db[server.id]['leavemessage'] is not None: db[server.id]['leavemessage'] = message fileIO(self.load, "save", db) await self.bot.say("leave message has been changed.") elif db[server.id]["leavemessage"] is None: db[server.id]['leavemessage'] = message fileIO(self.load, "save", db) await self.bot.say("leave message has been set.")
async def togglel(self, ctx): """Toggles the leave message for welcomer.""" server = ctx.message.server db = fileIO(self.load, "load") if not server.id in db: await self.bot.say( "**Please set the channel you want me to send welcoming and leaving messages to with `welcomer channel #channel_name` then you may proceed to setting this message.**" ) return if db[server.id]["leave"] is False: db[server.id]["leave"] = True fileIO(self.load, "save", db) await self.bot.say("leave messages enabled.") elif db[server.id]["leave"] is True: db[server.id]["leave"] = False fileIO(self.load, "save", db) await self.bot.say("leave messages disabled.")
async def _mention_read(self, ctx): """Read all mentions since you've been away.""" user = ctx.message.author if user.id not in self.mail: await self.bot.reply("you're not registered!") temp_context = ctx temp_context.invoked_subcommand = self._mention_register await self.bot.send_cmd_help(temp_context) return if len(self.mail[user.id]['mail']) == 0: await self.bot.say("You have no mentions.") return for mail in self.mail[user.id]['mail']: await self.bot.whisper(self._fmt_mail(mail)) self.mail[user.id]['mail'] = [] self.mail[user.id]['last_notify'] = 0 fileIO("data/mentiontracker/mail.json", "save", self.mail)
async def _channel(self, ctx): """Set the channel to send notifications too""" server = ctx.message.server db = fileIO(self.direct, "load") if ctx.message.server.me.permissions_in(ctx.message.channel).send_messages: if server.id in db: db[server.id]['Channel'] = ctx.message.channel.id fileIO(self.direct, "save", db) await self.bot.say("Channel changed.") return if not server.id in db: db[server.id] = inv_settings db[server.id]["Channel"] = ctx.message.channel.id fileIO(self.direct, "save", db) await self.bot.say("I will now send toggled modlog notifications here") else: return
def __init__(self, bot): self.bot = bot self.settings = fileIO('data/lastfm/settings.json', 'load') self.valid_settings = self.check_settings() if not self.valid_settings: raise RuntimeError("You need to set your lastfm settings.") self.network = self.setup_network() self.audio = None self.last_title = ""
async def embed(self, ctx): """Opt into making all welcome and leave messages embeded""" server = ctx.message.server db = fileIO(self.direct, "load") if not server.id in db: await self.bot.say( ":raised_hand: **Server not found, use welcomer joinmessage to set a channel.** :raised_hand:" ) return if db[server.id]["Embed"] == False: db[server.id]["Embed"] = True fileIO(self.direct, "save", db) await self.bot.say("***Embeds enabled***:thumbsup:") elif db[server.id]["Embed"] == True: db[server.id]["Embed"] = False fileIO(self.direct, "save", db) await self.bot.say( ":bangbang: :x: **Embeds disabled** :x: :bangbang:")
async def timezone(self, ctx, tz): """Set the timezone to put in messages.""" server = ctx.message.server db = fileIO(self.direct, "load") try: check_tz_exists = pytz.timezone(tz) except Exception as e: await self.bot.say( "That timezone is not recognised. Check the following link to see compliant names: {}" .format( "<https://en.wikipedia.org/wiki/List_of_tz_database_time_zones>" )) return if server.id not in db: db[server.id] = inv_settings db[server.id]['Timezone'] = tz fileIO(self.direct, "save", db) await self.bot.say("Timezone updated.")
async def botroletoggle(self, ctx): server = ctx.message.server db = fileIO(self.direct, "load") if not server.id in db: await self.bot.say( "Server not found, use welcomer joinmessage to set a channel.") return if db[server.id]['botrole'] == None: await self.bot.say("Botrole not found set it with welcomer botrole" ) if db[server.id]["botroletoggle"] == False: db[server.id]["botroletoggle"] = True fileIO(self.direct, "save", db) await self.bot.say("Bot role enabled") elif db[server.id]["botroletoggle"] == True: db[server.id]["botroletoggle"] = False fileIO(self.direct, "save", db) await self.bot.say("Bot roledisabled")
async def on_message_edit(self, before, after): server = before.server db = fileIO(self.direct, "load") if not server.id in db: return if db[server.id]['toggleedit'] == False: return if before.content == after.content: return if before.author.bot: return cleanbefore = before.content for i in before.mentions: cleanbefore = cleanbefore.replace(i.mention, "[@ " + str(i) + "]") cleanafter = after.content for i in after.mentions: cleanafter = cleanafter.replace(i.mention, "[@ " + str(i) + "]") for i in before.role_mentions: cleanbefore = cleanbefore.replace(i.mention, "[@ " + str(i) + "]") for i in after.role_mentions: cleanafter = cleanafter.replace(i.mention, "[@ " + str(i) + "]") cleanafter = cleanafter.replace("@everyone", "[@ everyone]") cleanafter = cleanafter.replace("@here", "[@ here]") cleanbefore = cleanbefore.replace("@everyone", "[@ everyone]") cleanbefore = cleanbefore.replace("@here", "[@ here]") channel = db[server.id]["Channel"] time = datetime.datetime.now() fmt = '%H:%M:%S' if db[server.id]["embed"] == True: name = before.author name = " ~ ".join( (name.name, name.nick)) if name.nick else name.name delmessage = discord.Embed(description=name, colour=discord.Color.green()) infomessage = "A message by __{}__, was edited in {}".format( before.author.nick if before.author.nick else before.author.name, before.channel.mention) delmessage.add_field(name="Info:", value=infomessage, inline=False) delmessage.add_field(name="**Before:**", value=cleanbefore, inline=False) delmessage.add_field(name="**After:**", value=cleanafter) delmessage.set_footer(text="User ID: {}".format(before.author.id)) delmessage.set_author(name=time.strftime(fmt) + " - Edited Message", url="http://i.imgur.com/Q8SzUdG.png") delmessage.set_thumbnail(url="http://i.imgur.com/Q8SzUdG.png") try: await self.bot.send_message(server.get_channel(channel), embed=delmessage) except: pass else: msg = ":pencil: `{}` **Channel:** {} **{}'s** message has been edited.\n**Before:** {}\n**After:** {}".format( time.strftime(fmt), before.channel.mention, before.author, cleanbefore, cleanafter) await self.bot.send_message(server.get_channel(channel), msg)
async def quotes_remove(self, ctx, quote : int): """Deletes a quote Example: [p]quotes remove 3""" server = ctx.message.server if server.id not in self.quotes: await self.bot.say("There are no saved quotes!") elif quote > 0 and quote <= len(self.quotes[server.id]): quotes = [] for i in range(len(self.quotes[server.id])): if quote - 1 == i: await self.bot.say("Quote number " + str(quote) + " has been deleted.") else: quotes.append(self.quotes[server.id][i]) self.quotes[server.id] = quotes fileIO("data/quotes/quotes.json", "save", self.quotes) else: await self.bot.say("Quote " + str(quote) + " does not exist.")
async def on_member_remove(self, member): server = member.server db = fileIO(self.load, "load") if not server.id in db: return if db[server.id]['Leave'] == False: return message = db[server.id]['Leavemsg'] channel = db[server.id]["Channel"] await self.bot.send_message(server.get_channel(channel), message.format(member, server))
async def botrole(self, ctx, *, role: discord.Role): """sets the botrole to auto assign roles to bots""" server = ctx.message.server db = fileIO(self.direct, "load") if not server.id in db: await self.bot.say( ":no_good: :x: **Server** ***not found***\n**Use** ***welcome joinmessage*** **to set a channel.**" ) return if ctx.message.server.me.permissions_in( ctx.message.channel).manage_roles: db[server.id]['botrole'] = role.id fileIO(self.direct, "save", db) await self.bot.say( ":raising_hand: ***OI OI*** **Bot role** ***Saved***:punch:") else: await self.bot.say( ":no_good: :x: **I do not have the manage_roles permission :x: :no_good:" )
def getServer(self): self.settings = fileIO("data/redminecraft/settings.json", 'load') self.server_specific_setting_keys = ["SERVER", "PORT"] servername = self.settings["SERVER"] port = self.settings["PORT"] if port == 0: port = 25565 return MinecraftServer(servername, int(port))
async def leavemessage(self, ctx, *, message: str): """ Set a message when a user leaves {0} is the user {1} is the server Example formats: {0.mention} this will mention the user when he joins {1.name} is the name of the server {0.name} is the name Message Examples: Sad to see {0.mention} leave us in {1.name} Crap we lost another ONE {0.name} lEFT!! """ server = ctx.message.server db = fileIO(self.direct, "load") if server.id in db: db[server.id]['leavemessage'] = message fileIO(self.direct, "save", db) await self.bot.say("**Leave message** ***changed.***:thumbsup:") return
def __init__(self, bot): global default_settings self.bot = bot self.profile = Accounts(bot) self.settings = fileIO("data/fakin/settings.json", "load") if "PAYDAY_TIME" in self.settings: #old format default_settings = self.settings self.settings = {} self.settings = defaultdict(lambda: default_settings, self.settings) self.payday_register = defaultdict(dict) self.slot_register = defaultdict(dict)
def get_info_data(self, repo_name, cog): cogs = self.list_cogs(repo_name) if cog in cogs: info_file = os.path.join(cogs[cog].get('folder'), "info.json") if os.path.isfile(info_file): try: data = fileIO(info_file, "load") except: return None return data return None
async def botroletoggle(self, ctx): """toggles bot role du""" server = ctx.message.server db = fileIO(self.direct, "load") if not server.id in db: await self.bot.say( "Server not found, use ~welcome joinmessage to set a channel.") return if db[server.id]['botrole'] == None: await self.bot.say( ":no_good:***Role Not Found***:no_good:\n***__```set it with ~welcomer botrole```__***" ) if db[server.id]["botroletoggle"] == False: db[server.id]["botroletoggle"] = True fileIO(self.direct, "save", db) await self.bot.say("***Bot role enabled*** :thumbsup:") elif db[server.id]["botroletoggle"] == True: db[server.id]["botroletoggle"] = False fileIO(self.direct, "save", db) await self.bot.say("***Bot roledisabled*** :thumbsup:")
def __init__(self, bot): global default_settings self.bot = bot self.bank = Bank(bot, "data/economy/bank.json") self.settings = fileIO("data/economy/settings.json", "load") if "PAYDAY_TIME" in self.settings: #old format default_settings = self.settings self.settings = {} self.settings = defaultdict(lambda: default_settings, self.settings) self.payday_register = defaultdict(dict) self.slot_register = defaultdict(dict)
async def check_for_score(self, message): user = message.author content = message.content mentions = message.mentions if message.author.id == self.bot.user.id: return splitted = content.split(" ") if len(splitted) > 1: if "++" == splitted[0] or "--" == splitted[0]: first_word = "".join(splitted[:2]) elif "++" == splitted[1] or "--" == splitted[1]: first_word = "".join(splitted[:2]) else: first_word = splitted[0] else: first_word = splitted[0] reason = content[len(first_word) + 1:] for member in mentions: if member.id in first_word.lower(): if "++" in first_word.lower() or "--" in first_word.lower(): if member == user: await self.bot.send_message( message.channel, "Du kannst dir nicht selber Karma geben" ",du Schummler.") return if "++" in first_word.lower(): self._process_scores(member, 1) self._add_reason(member.id, reason) elif "--" in first_word.lower(): self._process_scores(member, -1) self._add_reason(member.id, reason) else: return if self.settings['RESPOND_ON_POINT']: msg = "{} now has {} points.".format( member.name, self.scores[member.id]["score"]) await self.bot.send_message(message.channel, msg) fileIO("data/karma/scores.json", "save", self.scores) return
async def _welcome_set(self, ctx, *, message): """You can use $user to mention the member who joins""" server = ctx.message.server.id channel_mentions = ctx.message.channel_mentions if server not in self.welcome_messages: self.welcome_messages[server] = {} if len(channel_mentions) == 0: channel = ctx.message.server.default_channel else: poss_mention = message.split(" ")[0] if not re.compile(r'<#([0-9]+)>').match(poss_mention): channel = ctx.message.server.default_channel else: channel = utils.get(channel_mentions, mention=poss_mention) message = message[len(channel.mention) + 1:] # for the space self.welcome_messages[server][channel.id] = message fileIO("data/botinfo/welcome.json", "save", self.welcome_messages) await self.bot.say('Member join message on ' '{} set to:\n\n{}'.format(channel.mention, message))
async def channel(self, ctx, *, channel : discord.Channel): """Sets the modlog channel setting.""" server = ctx.message.server db = fileIO(self.load, "load") if server.id in db: db[server.id]['Channel'] = channel.id fileIO(self.load, "save", db) await self.bot.say("Channel changed.") return if not ctx.message.server.me.permissions_in(channel).manage_channels: await self.bot.say("I dont have the `manage_channels` permission.") return if ctx.message.server.me.permissions_in(channel).send_messages: if not server.id in db: db[server.id] = settings db[server.id]['Channel'] = channel.id invs = await self.bot.invites_from(server) for i in invs: db[server.id]["Invites"][i.url] = i.uses fileIO(self.load, "save", db) await self.bot.say("Channel set.")
async def joinmessage(self, ctx, *, message: str): """ Set a message when a user joins {0} is the user {1} is the invite that he/her joined using {2} is the server {2.name} <- Example formats: {0.mention} this will mention the user when he joins {2.name} is the name of the server {1.inviter} is the user that made the invite {1.url} is the invite link the user joined with Message Examples: {0.mention} Welcome to {2.name}, User joined with {1.url} referred by {1.inviter} Welcome to {2.name} {0}! I hope you enjoy your stay """ server = ctx.message.server db = fileIO(self.direct, "load") if server.id in db: db[server.id]['joinmessage'] = message fileIO(self.direct, "save", db) await self.bot.say("Join message changed.") return if not ctx.message.server.me.permissions_in( ctx.message.channel).manage_channels: await self.bot.say("I dont have the manage channels permission.") return if ctx.message.server.me.permissions_in( ctx.message.channel).send_messages: if not server.id in db: db[server.id] = inv_settings db[server.id]['joinmessage'] = message invlist = await self.bot.invites_from(server) db[server.id]["Channel"] = ctx.message.channel.id for i in invlist: db[server.id]["Invites"][i.url] = i.uses fileIO(self.direct, "save", db) await self.bot.say( "I will now send welcome notifications here (If toggled)") else: return
async def check_for_score(self, message): user = message.author content = message.content mentions = message.mentions if message.author.id == self.bot.user.id: return splitted = content.split(" ") if len(splitted) > 1: if "++" == splitted[0] or "--" == splitted[0]: first_word = "".join(splitted[:2]) elif "++" == splitted[1] or "--" == splitted[1]: first_word = "".join(splitted[:2]) else: first_word = splitted[0] else: first_word = splitted[0] reason = content[len(first_word) + 1:] for member in mentions: if member.id in first_word.lower(): if "++" in first_word.lower() or "--" in first_word.lower(): if member == user: await self.bot.send_message(message.channel, "You can't modify your own" " rep, jackass.") return if "++" in first_word.lower(): self._process_scores(member, 1) self._add_reason(member.id, reason) elif "--" in first_word.lower(): self._process_scores(member, -1) self._add_reason(member.id, reason) else: return if self.settings['RESPOND_ON_POINT']: msg = "{} now has {} points.".format( member.name, self.scores[member.id]["score"]) await self.bot.send_message(message.channel, msg) fileIO("data/karma/scores.json", "save", self.scores) return
def check_file(): scores = {} settings = {"RESPOND_ON_POINT": True} f = "data/karmaenhanced/scores.json" if not fileIO(f, "check"): print("Creating default karma's scores.json...") fileIO(f, "save", scores) f = "data/karmaenhanced/cooldown.json" if not fileIO(f, "check"): print("Creating default karma's cooldown.json...") fileIO(f, "save", {}) f = "data/karmaenhanced/settings.json" if not fileIO(f, "check"): print("Creating default karma's scores.json...") fileIO(f, "save", settings)
async def on_member_ban(self, member): server = member.server db = fileIO(self.direct, "load") if not server.id in db: return if db[server.id]['toggleban'] == False: return channel = db[server.id]["Channel"] time = datetime.datetime.now() fmt = '%H:%M:%S' msg = ":hammer: `{}` {}({}) has been banned!".format(time.strftime(fmt), member, member.id) await self.bot.send_message(server.get_channel(channel), msg)
async def on_member_remove(self, member): server = member.server db = fileIO(self.direct, 'load') if not server.id in db: return if db[server.id]['toggleleave'] == False: return channel = db[server.id]["Channel"] time = datetime.datetime.now() fmt = "%H:%M:%S" users = len([e.name for e in server.members]) msg = ":x: `{}` **{}** has left the server or was kicked. Total members {}.".format(time.strftime(fmt), member.name, users) await self.bot.send_message(server.get_channel(channel), msg)
async def on_member_join(self, member): server = member.server db = fileIO(self.direct, 'load') if not server.id in db: return if db[server.id]['togglejoin'] == False: return channel = db[server.id]["Channel"] time = datetime.datetime.now() fmt = '%H:%M:%S' users = len([e.name for e in server.members]) msg = ":white_check_mark: `{}` **{}** join the server. Total users: {}.".format(time.strftime(fmt), member.name, users) await self.bot.send_message(server.get_channel(channel), msg)
async def on_channel_create(self, channel): server = channel.server db = fileIO(self.direct, "load") if not server.id in db: return if db[server.id]['togglechannel'] == False: return channel = db[server.id]["Channel"] msg = discord.Embed(colour=discord.Colour.blue()) msg.title = "A channel was created!" msg.add_field(name="Name:", value=css.format(channel.name)) msg.set_footer(text=timef) await self.bot.send_message(server.get_channel(channel), embed=msg)
async def check_for_score(self, message): user = message.author content = message.content mentions = message.mentions if message.author.id == self.bot.user.id: return splitted = content.split(" ") if len(splitted) > 1: if "++" == splitted[0] or "--" == splitted[0]: first_word = "".join(splitted[:2]) elif "++" == splitted[1] or "--" == splitted[1]: first_word = "".join(splitted[:2]) else: first_word = splitted[0] else: first_word = splitted[0] reason = content[len(first_word) + 1:] for member in mentions: if member.id in first_word.lower(): if "++" in first_word.lower() or "--" in first_word.lower(): if member == user: await self.bot.send_message(message.channel, "You can't modify your own" " rep, jackass.") return if "++" in first_word.lower(): self._process_scores(member.id, 1) self._add_reason(member.id, reason) elif "--" in first_word.lower(): self._process_scores(member.id, -1) self._add_reason(member.id, reason) fileIO("data/karma/scores.json", "save", self.scores) return if "++" == first_word or "--" == first_word: if "@" not in first_word: await self.bot.send_message(message.channel, "You need to use an @ mention for" " karma tracking.")
async def set_cal(self, ctx, calendar_ID): page_token = None while True: credentials = get_creds() http = credentials.authorize(httplib2.Http()) service = discovery.build('calendar', 'v3', http=http) calendar_list = service.calendarList().list(pageToken=page_token).execute() calIDList = [] for calendar_list_entry in calendar_list['items']: cal_ids = calendar_list_entry['id'] calIDList.append(str(cal_ids)) calIDList.append('primary') page_token = calendar_list.get('nextPageToken') if not page_token: break if calendar_ID not in calIDList: await self.bot.say("That ID doesn't match any you have access to.") return elif calendar_ID in calIDList: await self.bot.say("Do you want to change the active calendar to '" + str(calendar_ID) + "'? (yes/no)") answer = await self.bot.wait_for_message(timeout=15, author=ctx.message.author) if answer is None: await self.bot.say("No changes have been made to the active calendar.") return elif "yes" not in answer.content.lower(): await self.bot.say("No changes have been made to the active calendar.") return self.settings['cal_id'] = calendar_ID fileIO("data/gcalendar/settings.json", "save", self.settings) await self.bot.say("Active calendar is now set to: " + self.settings['cal_id'])