예제 #1
0
파일: lastfm.py 프로젝트: ddday/Skordy-Cogs
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)
예제 #2
0
 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"
예제 #3
0
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)
예제 #4
0
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)
예제 #5
0
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)
예제 #6
0
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)
예제 #7
0
 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.")
예제 #8
0
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)
예제 #9
0
 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))
예제 #10
0
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)
예제 #11
0
파일: lastfm.py 프로젝트: ddday/Skordy-Cogs
 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)
예제 #12
0
 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)
예제 #13
0
 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)
예제 #14
0
 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.")
예제 #15
0
 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)
예제 #16
0
 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)))
예제 #17
0
 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!"
예제 #18
0
 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()
예제 #19
0
 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.")
예제 #20
0
 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))
예제 #21
0
    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.")
예제 #22
0
 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:"
         )
예제 #23
0
    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.")
예제 #24
0
 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)
예제 #25
0
 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.")
예제 #26
0
 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)
예제 #27
0
 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.")
예제 #28
0
 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.")
예제 #29
0
 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)
예제 #30
0
 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
예제 #31
0
파일: lastfm.py 프로젝트: ddday/Skordy-Cogs
 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 = ""
예제 #32
0
 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:")
예제 #33
0
파일: modlog.py 프로젝트: Zizzeren/red-cogs
 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.")
예제 #34
0
 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 = ""
예제 #35
0
 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")
예제 #36
0
 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)
예제 #37
0
    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.")
예제 #38
0
 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))
예제 #39
0
 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:"
         )
예제 #40
0
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))
예제 #41
0
 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
예제 #42
0
파일: profile.py 프로젝트: b0r3d0/kitty
 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)
예제 #43
0
 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
예제 #44
0
 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:")
예제 #45
0
 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
예제 #46
0
 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)
예제 #47
0
 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)
예제 #48
0
    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
예제 #49
0
    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))
예제 #50
0
    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))
예제 #51
0
 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.")
예제 #52
0
 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
예제 #53
0
    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
예제 #54
0
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)
예제 #55
0
 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)
예제 #56
0
 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)
예제 #57
0
 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)
예제 #58
0
 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)
예제 #59
0
    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.")
예제 #60
0
	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'])