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)
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])
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)
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)
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)
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)
def _fill_rule_link(self): if not Storage.get(self)['rule_link']: Storage.get(self)['rule_link'] = self._get_rule_link()
async def dsc_set_status(self, ctx, *points): Storage.get(self)['points'] = "-".join(points) Storage().save(self) await ctx.message.add_reaction(Lang.CMDSUCCESS)
async def dsc_set_status(self, ctx, *message): Storage.get(self)['status'] = " ".join(message) Storage().save(self) await ctx.message.add_reaction(Lang.CMDSUCCESS)
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)
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)
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)
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)
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)
def fantasy_conf(self): return Storage.get(self)