mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-11-21 18:27:59 -05:00
Begin work on a data request API (#4045)
[Core] Data Deletion And Disclosure APIs - Adds a Data Deletion API - Deletion comes in a few forms based on who is requesting - Deletion must be handled by 3rd party - Adds a Data Collection Disclosure Command - Provides a dynamically generated statement from 3rd party extensions - Modifies the always available commands to be cog compatible - Also prevents them from being unloaded accidentally
This commit is contained in:
@@ -90,6 +90,30 @@ class AliasCache:
|
||||
self._loaded = False
|
||||
self._aliases: Dict[Optional[int], Dict[str, AliasEntry]] = {None: {}}
|
||||
|
||||
async def anonymize_aliases(self, user_id: int):
|
||||
|
||||
async with self.config.entries() as global_aliases:
|
||||
for a in global_aliases:
|
||||
if a.get("creator", 0) == user_id:
|
||||
a["creator"] = 0xDE1
|
||||
if self._cache_enabled:
|
||||
self._aliases[None][a["name"]] = AliasEntry.from_json(a)
|
||||
|
||||
all_guilds = await self.config.all_guilds()
|
||||
async for guild_id, guild_data in AsyncIter(all_guilds.items(), steps=100):
|
||||
for a in guild_data["entries"]:
|
||||
if a.get("creator", 0) == user_id:
|
||||
break
|
||||
else:
|
||||
continue
|
||||
# basically, don't build a context manager wihout a need.
|
||||
async with self.config.guild_from_id(guild_id).entries() as entry_list:
|
||||
for a in entry_list:
|
||||
if a.get("creator", 0) == user_id:
|
||||
a["creator"] = 0xDE1
|
||||
if self._cache_enabled:
|
||||
self._aliases[guild_id][a["name"]] = AliasEntry.from_json(a)
|
||||
|
||||
async def load_aliases(self):
|
||||
if not self._cache_enabled:
|
||||
self._loaded = True
|
||||
|
||||
Reference in New Issue
Block a user