mirror of
https://github.com/brandons209/Red-bot-Cogs.git
synced 2024-06-09 22:15:05 +12:00
add admin view all subs for guild, fix bug when removing members from subscribers
This commit is contained in:
parent
d58d426bf1
commit
2c18fd4a5f
|
@ -1,6 +1,7 @@
|
||||||
from redbot.core import commands, Config, checks
|
from redbot.core import commands, Config, checks
|
||||||
from redbot.core.commands import Context, Cog
|
from redbot.core.commands import Context, Cog
|
||||||
from redbot.core.utils.chat_formatting import *
|
from redbot.core.utils.chat_formatting import *
|
||||||
|
from redbot.core.utils.menus import menu, DEFAULT_CONTROLS
|
||||||
|
|
||||||
import discord
|
import discord
|
||||||
|
|
||||||
|
@ -126,10 +127,10 @@ class Subscriber(commands.Cog):
|
||||||
del roles[role]
|
del roles[role]
|
||||||
await self.config.member(member).roles.set(roles)
|
await self.config.member(member).roles.set(roles)
|
||||||
|
|
||||||
if rm_members:
|
if rm_members:
|
||||||
for mem in rm_members:
|
for mem in rm_members:
|
||||||
members.remove(mem)
|
members.remove(mem)
|
||||||
await self.config.guild(guild).members.set(members)
|
await self.config.guild(guild).subscribers.set(members)
|
||||||
|
|
||||||
# sleep for 30 minutes
|
# sleep for 30 minutes
|
||||||
await asyncio.sleep(1800)
|
await asyncio.sleep(1800)
|
||||||
|
@ -308,6 +309,47 @@ class Subscriber(commands.Cog):
|
||||||
|
|
||||||
await ctx.tick()
|
await ctx.tick()
|
||||||
|
|
||||||
|
@commands.command(name="subviewall")
|
||||||
|
@checks.admin_or_permissions(administrator=True)
|
||||||
|
@commands.guild_only()
|
||||||
|
async def subview_all(self, ctx):
|
||||||
|
"""
|
||||||
|
View all subscriptions in the server
|
||||||
|
"""
|
||||||
|
members = await self.config.guild(ctx.guild).subscribers()
|
||||||
|
if not members:
|
||||||
|
await ctx.send(error("No users have subscriptions in your server."), delete_after=60)
|
||||||
|
return
|
||||||
|
|
||||||
|
msg = ""
|
||||||
|
for member in members:
|
||||||
|
member = ctx.guild.get_member(member)
|
||||||
|
if not member:
|
||||||
|
continue
|
||||||
|
|
||||||
|
msg += f"{member.mention}:\n"
|
||||||
|
roles = await self.config.member(member).roles()
|
||||||
|
for role, end_date in roles.items():
|
||||||
|
role = ctx.guild.get_role(int(role))
|
||||||
|
if not role:
|
||||||
|
continue
|
||||||
|
msg += f"\t- `@{role.name}`: <t:{int(end_date)}>\n"
|
||||||
|
|
||||||
|
msg += "\n"
|
||||||
|
|
||||||
|
pages = list(pagify(msg, page_length=1700, delims=["\n"], priority=True))
|
||||||
|
pages = [f"{page}\n\n-----------------\n**Page {i+1} of {len(pages)}**" for i, page in enumerate(pages)]
|
||||||
|
|
||||||
|
if not pages: # should never happen
|
||||||
|
await ctx.send(
|
||||||
|
error(
|
||||||
|
"There are subscribed users, but I couldn't get any of their information. Please contact the bot developer for help."
|
||||||
|
),
|
||||||
|
delete_after=60,
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
await menu(ctx, pages, DEFAULT_CONTROLS)
|
||||||
|
|
||||||
@commands.command(name="subview")
|
@commands.command(name="subview")
|
||||||
@commands.guild_only()
|
@commands.guild_only()
|
||||||
async def subview(self, ctx):
|
async def subview(self, ctx):
|
||||||
|
@ -341,9 +383,6 @@ class Subscriber(commands.Cog):
|
||||||
await ctx.send(embed=embed)
|
await ctx.send(embed=embed)
|
||||||
|
|
||||||
async def red_delete_data_for_user(
|
async def red_delete_data_for_user(
|
||||||
self,
|
self, *, requester: Literal["discord_deleted_user", "owner", "user", "user_strict"], user_id: int,
|
||||||
*,
|
|
||||||
requester: Literal["discord_deleted_user", "owner", "user", "user_strict"],
|
|
||||||
user_id: int,
|
|
||||||
):
|
):
|
||||||
pass
|
pass
|
||||||
|
|
Loading…
Reference in a new issue