Exemplo n.º 1
0
    async def dsc_status(self, ctx):
        if Storage.get(self)['status']:
            status_msg = Lang.lang(self, 'status_base', Storage.get(self)['status'])
        else:
            status_msg = Lang.lang(self, 'status_base', Lang.lang(self, 'status_none'))

        await ctx.send(status_msg)
Exemplo n.º 2
0
    def load(self):
        """Loads the commands"""
        # Update from old config versions
        if "_prefix" in Storage.get(self):
            self.update_config_from_1_to_2(Storage.get(self))
        if "_prefix" in Config.get(self):
            self.update_config_from_1_to_2(Config.get(self))

        # actually load the commands
        for k in Storage.get(self).keys():
            self.commands[k] = Cmd.deserialize(k, Storage.get(self)[k])
Exemplo n.º 3
0
 def _load(self):
     """
     Loads the ignore list from json
     """
     Storage.load(self)
     for el in Storage.get(self):
         self.add(IgnoreDataset.deserialize(self.bot, el, self), True)
Exemplo n.º 4
0
 def write(self):
     r = {}
     for el in self.complaints:
         complaint = self.complaints[el]
         r[complaint.id] = complaint.serialize()
     Storage.get(self)["complaints"] = r
     Storage.save(self)
Exemplo n.º 5
0
    async def storagedump(self, ctx, name):
        plugin = converter.get_plugin_by_name(self.bot, name)
        if plugin is None:
            await ctx.message.add_reaction(Lang.CMDERROR)
            await ctx.send("Plugin {} not found.".format(name))
            return
        await ctx.message.add_reaction(Lang.CMDSUCCESS)

        dump = pprint.pformat(Storage.get(plugin), indent=4).split("\n")
        prefix = ""
        if not Storage.has_structure(plugin):
            prefix = "**Warning: plugin {} does not have a storage structure.** " \
                     "This is the default storage.".format(name)
        for el in utils.paginate(dump,
                                 prefix=prefix,
                                 msg_prefix="```",
                                 msg_suffix="```"):
            await ctx.send(el)
Exemplo n.º 6
0
    def __init__(self, bot):
        super().__init__(bot)
        bot.register(self)

        self.storage = Storage.get(self)
        self.complaints = {}
        self.highest_id = None

        # Load complaints from storage
        if self.storage is None:
            self.storage = deepcopy(self.default_storage())
        else:
            print("Feedback storage: {}".format(self.storage))
            str_keys_to_int(self.storage["complaints"])
        for cid in self.storage["complaints"]:
            self.complaints[cid] = Complaint.deserialize(
                self.bot, cid, self.storage["complaints"][cid])

        # Migration 1.7 -> 1.8
        if "bugscore" not in self.storage:
            self.storage["bugscore"] = {}
            Storage.save(self)

        self.get_new_id(init=True)
Exemplo n.º 7
0
 def _fill_rule_link(self):
     if not Storage.get(self)['rule_link']:
         Storage.get(self)['rule_link'] = self._get_rule_link()
Exemplo n.º 8
0
 async def dsc_set_status(self, ctx, *points):
     Storage.get(self)['points'] = "-".join(points)
     Storage().save(self)
     await ctx.message.add_reaction(Lang.CMDSUCCESS)
Exemplo n.º 9
0
 async def dsc_set_status(self, ctx, *message):
     Storage.get(self)['status'] = " ".join(message)
     Storage().save(self)
     await ctx.message.add_reaction(Lang.CMDSUCCESS)
Exemplo n.º 10
0
 async def dsc_set_date(self, ctx, date_str, time_str=None):
     if not time_str:
         time_str = "23:59"
     Storage.get(self)['state_end'] = datetime.strptime(f"{date_str} {time_str}", "%d.%m.%Y %H:%M")
     Storage().save(self)
     await ctx.message.add_reaction(Lang.CMDSUCCESS)
Exemplo n.º 11
0
 async def dsc_set_yt_link(self, ctx, link):
     link = utils.clear_link(link)
     Storage.get(self)['yt_link'] = link
     Storage().save(self)
     await ctx.message.add_reaction(Lang.CMDSUCCESS)
Exemplo n.º 12
0
 async def _dsc_save_state(self, ctx, new_state: DscState):
     Storage.get(self)['state'] = new_state
     Storage().save(self)
     await ctx.message.add_reaction(Lang.CMDSUCCESS)
Exemplo n.º 13
0
 async def dsc_set_host(self, ctx, user: discord.Member):
     Storage.get(self)['host_id'] = user.id
     Storage().save(self)
     await ctx.message.add_reaction(Lang.CMDSUCCESS)
Exemplo n.º 14
0
    async def dsc_info(self, ctx):
        host_nick = None
        date_out_str = Lang.lang(self, 'info_date_str', Storage.get(self)['state_end'].strftime('%d.%m.%Y, %H:%M'))
        if not Storage.get(self)['host_id']:
            await ctx.send(Lang.lang(self, 'must_set_host'))
        else:
            host_nick = discord.utils.get(ctx.guild.members, id=Storage.get(self)['host_id']).mention

        if Storage.get(self)['state'] == DscState.Sign_up:
            if Storage.get(self)['state_end'] > datetime.now():
                date_out_str = Lang.lang(self, 'info_date_str', Storage.get(self)['state_end'].strftime('%d.%m.%Y'))
            else:
                date_out_str = ""

            embed = discord.Embed(title=Lang.lang(self, 'signup_phase_info', date_out_str))
            embed.add_field(name=Lang.lang(self, 'current_host'), value=host_nick)
            embed.add_field(name=Lang.lang(self, 'sign_up'), value=self._get_doc_link())
            if Storage.get(self)['status']:
                embed.description = Storage.get(self)['status']
            await ctx.send(embed=embed)

        elif Storage.get(self)['state'] == DscState.Voting:
            embed = discord.Embed(title=Lang.lang(self, 'voting_phase_info', date_out_str))
            embed.add_field(name=Lang.lang(self, 'current_host'), value=host_nick)
            embed.add_field(name=Lang.lang(self, 'all_songs'), value=self._get_doc_link())
            embed.add_field(name=Lang.lang(self, 'yt_playlist'), value=Storage.get(self)['yt_link'])
            embed.add_field(name=Lang.lang(self, 'points'), value=Storage.get(self)['points'])
            if Storage.get(self)['status']:
                embed.description = Storage.get(self)['status']
            await ctx.send(embed=embed)

        else:
            await ctx.send(Lang.lang(self, 'config_error_reset'))
            embed = discord.Embed(title=Lang.lang(self, 'config_error'))
            embed.add_field(name="Host ID", value=str(Storage.get(self)['host_id']))
            embed.add_field(name="Host Nick", value=host_nick)
            embed.add_field(name="State", value=str(Storage.get(self)['state']))
            embed.add_field(name="YT Link", value=str(Storage.get(self)['yt_link']))
            embed.add_field(name="State End", value=str(Storage.get(self)['state_end']))
            embed.add_field(name="Status", value=str(Storage.get(self)['status']))
            await utils.write_debug_channel(self.bot, embed)
Exemplo n.º 15
0
 def fantasy_conf(self):
     return Storage.get(self)