Swap learning to global config
This commit is contained in:
parent
ea126db0c5
commit
9f22dfb790
@ -56,14 +56,13 @@ class Chatter(Cog):
|
|||||||
super().__init__()
|
super().__init__()
|
||||||
self.bot = bot
|
self.bot = bot
|
||||||
self.config = Config.get_conf(self, identifier=6710497116116101114)
|
self.config = Config.get_conf(self, identifier=6710497116116101114)
|
||||||
default_global = {}
|
default_global = {"learning": True}
|
||||||
default_guild = {
|
default_guild = {
|
||||||
"whitelist": None,
|
"whitelist": None,
|
||||||
"days": 1,
|
"days": 1,
|
||||||
"convo_delta": 15,
|
"convo_delta": 15,
|
||||||
"chatchannel": None,
|
"chatchannel": None,
|
||||||
"reply": True,
|
"reply": True,
|
||||||
"learning": True,
|
|
||||||
}
|
}
|
||||||
path: pathlib.Path = cog_data_path(self)
|
path: pathlib.Path = cog_data_path(self)
|
||||||
self.data_path = path / "database.sqlite3"
|
self.data_path = path / "database.sqlite3"
|
||||||
@ -85,6 +84,7 @@ class Chatter(Cog):
|
|||||||
self.loop = asyncio.get_event_loop()
|
self.loop = asyncio.get_event_loop()
|
||||||
|
|
||||||
self._guild_cache = defaultdict(dict)
|
self._guild_cache = defaultdict(dict)
|
||||||
|
self._global_cache = {}
|
||||||
|
|
||||||
self._last_message_per_channel: Dict[Optional[discord.Message]] = defaultdict(lambda: None)
|
self._last_message_per_channel: Dict[Optional[discord.Message]] = defaultdict(lambda: None)
|
||||||
|
|
||||||
@ -228,6 +228,7 @@ class Chatter(Cog):
|
|||||||
Base command for this cog. Check help for the commands list.
|
Base command for this cog. Check help for the commands list.
|
||||||
"""
|
"""
|
||||||
self._guild_cache[ctx.guild.id] = {} # Clear cache when modifying values
|
self._guild_cache[ctx.guild.id] = {} # Clear cache when modifying values
|
||||||
|
self._global_cache = {}
|
||||||
|
|
||||||
@commands.admin()
|
@commands.admin()
|
||||||
@chatter.command(name="channel")
|
@chatter.command(name="channel")
|
||||||
@ -270,18 +271,19 @@ class Chatter(Cog):
|
|||||||
"I will not reply to your message if conversation continuity is not present, anymore"
|
"I will not reply to your message if conversation continuity is not present, anymore"
|
||||||
)
|
)
|
||||||
|
|
||||||
@commands.admin()
|
@commands.is_owner()
|
||||||
@chatter.command(name="learning")
|
@chatter.command(name="learning")
|
||||||
async def chatter_learning(self, ctx: commands.Context, toggle: Optional[bool] = None):
|
async def chatter_learning(self, ctx: commands.Context, toggle: Optional[bool] = None):
|
||||||
"""
|
"""
|
||||||
Toggle the bot learning from its conversations.
|
Toggle the bot learning from its conversations.
|
||||||
|
|
||||||
|
This is a global setting.
|
||||||
This is on by default.
|
This is on by default.
|
||||||
"""
|
"""
|
||||||
learning = await self.config.guild(ctx.guild).learning()
|
learning = await self.config.learning()
|
||||||
if toggle is None:
|
if toggle is None:
|
||||||
toggle = not learning
|
toggle = not learning
|
||||||
await self.config.guild(ctx.guild).learning.set(toggle)
|
await self.config.learning.set(toggle)
|
||||||
|
|
||||||
if toggle:
|
if toggle:
|
||||||
await ctx.maybe_send_embed("I will now learn from conversations.")
|
await ctx.maybe_send_embed("I will now learn from conversations.")
|
||||||
@ -686,7 +688,10 @@ class Chatter(Cog):
|
|||||||
None, self.chatbot.generate_response, Statement(text)
|
None, self.chatbot.generate_response, Statement(text)
|
||||||
)
|
)
|
||||||
|
|
||||||
if in_response_to is not None and self._guild_cache[guild.id]["learning"]:
|
if not self._global_cache:
|
||||||
|
self._global_cache = await self.config.all()
|
||||||
|
|
||||||
|
if in_response_to is not None and self._global_cache["learning"]:
|
||||||
log.debug("learning response")
|
log.debug("learning response")
|
||||||
await self.loop.run_in_executor(
|
await self.loop.run_in_executor(
|
||||||
None,
|
None,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user