def is_nfsw_enabled(): | def is_nfsw_enabled(): | ||||
return commands.check(lambda ctx: ServerConfig().load_config()[ctx.message.server.id]["nsfw"]["enabled"] == 1) | return commands.check(lambda ctx: ServerConfig().load_config()[ctx.message.server.id]["nsfw"]["enabled"] == 1) | ||||
def is_gss(): | |||||
return commands.check(lambda ctx: ctx.message.server.id == "393764974444675073") |
import checks | |||||
import datetime | import datetime | ||||
import requests | import requests | ||||
import load_config | import load_config | ||||
from discord import utils | |||||
from discord.ext import commands | |||||
from discord.ext.commands import bot | from discord.ext.commands import bot | ||||
from config.server_config import ServerConfig | from config.server_config import ServerConfig | ||||
def is_gss(): | |||||
return commands.check(lambda ctx: ctx.message.server.id == "393764974444675073") | |||||
def is_not_nsfw_disabled(): | |||||
def predicate(ctx): | |||||
role = utils.get(ctx.message.server.roles, id="397866388145831937") | |||||
return role not in ctx.message.author.roles | |||||
return commands.check(lambda ctx: predicate(ctx)) | |||||
class GaySoundsShitposting(): | class GaySoundsShitposting(): | ||||
def __init__(self, Bot): | def __init__(self, Bot): | ||||
self.bot = Bot | self.bot = Bot | ||||
self.con = ServerConfig() | self.con = ServerConfig() | ||||
self.servers = self.con.servers | self.servers = self.con.servers | ||||
self.guild = self.bot.get_server("393764974444675073") | |||||
self.nsfw_image_role = utils.get(self.guild.roles, id="394941004043649036") | |||||
self.selfie_role = utils.get(self.guild.roles, id="394939389823811584") | |||||
def tatsumaki_api_call(self, member): | |||||
base = "https://api.tatsumaki.xyz/" | |||||
url = base + "guilds/" + self.guild.id + "/members/" + member.id + "/stats" | |||||
r = requests.get(url,headers={"Authorization":load_config.tat_token}) | |||||
return r.json() | |||||
@checks.is_gss() | |||||
@is_gss() | |||||
@bot.command(pass_context=True) | @bot.command(pass_context=True) | ||||
async def selfieperms(self, ctx): | async def selfieperms(self, ctx): | ||||
"""Requests the selfie perm role.""" | """Requests the selfie perm role.""" | ||||
member = ctx.message.author | member = ctx.message.author | ||||
server = ctx.message.server | |||||
set_role = "394939389823811584" | |||||
role_obj = None | |||||
required_score = int(self.servers[server.id]["gss"]["required_score"]) | |||||
days = int(self.servers[server.id]["gss"]["required_days"]) | |||||
logging = self.servers[server.id]["gss"]["log_channel"] | |||||
for role in server.roles: | |||||
if role.id == set_role: | |||||
role_obj = role | |||||
required_score = int(self.servers[self.guild.id]["gss"]["required_score"]) | |||||
days = int(self.servers[self.guild.id]["gss"]["required_days"]) | |||||
logging = self.servers[self.guild.id]["gss"]["log_channel"] | |||||
data = self.tatsumaki_api_call(member) | |||||
if role_obj in member.roles: | |||||
return await self.bot.say("You already have the {} role.".format(role_obj.name)) | |||||
base = "https://api.tatsumaki.xyz/" | |||||
url = base + "guilds/" + server.id + "/members/" + member.id + "/stats" | |||||
r = requests.get(url,headers={"Authorization":load_config.tat_token}) | |||||
data = r.json() | |||||
if self.selfie_role in member.roles: | |||||
await self.bot.remove_roles(member, self.selfie_role) | |||||
return await self.bot.say("You already had {}. It has now been removed.".format(self.selfie_role.name)) | |||||
time = datetime.datetime.now() - ctx.message.author.joined_at | time = datetime.datetime.now() - ctx.message.author.joined_at | ||||
if time > datetime.timedelta(days=days) and int(data["score"]) >= required_score: | if time > datetime.timedelta(days=days) and int(data["score"]) >= required_score: | ||||
await self.bot.add_roles(member, role_obj) | |||||
await self.bot.say("You have now got the {} role".format(role_obj.name)) | |||||
await self.bot.add_roles(member, self.selfie_role) | |||||
await self.bot.say("You have now have the {} role".format(self.selfie_role.name)) | |||||
if logging: | if logging: | ||||
return await self.bot.send_message(self.bot.get_channel(logging), content="{} has requested the {} role.".format(member.mention, role_obj.name)) | |||||
return await self.bot.send_message(self.bot.get_channel(logging), content="{} has requested the {} role.".format(member.mention, self.selfie_role.name)) | |||||
else: | else: | ||||
return await self.bot.say( | return await self.bot.say( | ||||
"You do not meet the requirements for this role. You need at least {} score with <@!172002275412279296> and to have been in the server for {} days.".format(required_score, days) | "You do not meet the requirements for this role. You need at least {} score with <@!172002275412279296> and to have been in the server for {} days.".format(required_score, days) | ||||
) | ) | ||||
@checks.is_gss() | |||||
@is_not_nsfw_disabled() | |||||
@is_gss() | |||||
@bot.command(pass_context=True) | @bot.command(pass_context=True) | ||||
async def nsfwperms(self, ctx): | async def nsfwperms(self, ctx): | ||||
"""Requests the NSFW Image Perm role.""" | """Requests the NSFW Image Perm role.""" | ||||
member = ctx.message.author | member = ctx.message.author | ||||
server = ctx.message.server | |||||
set_role = "394941004043649036" | |||||
role_obj = None | |||||
required_score = int(self.servers[server.id]["gss"]["required_score"]) | |||||
days = int(self.servers[server.id]["gss"]["required_days"]) | |||||
logging = self.servers[server.id]["gss"]["log_channel"] | |||||
for role in server.roles: | |||||
if role.id == set_role: | |||||
role_obj = role | |||||
required_score = int(self.servers[self.guild.id]["gss"]["required_score"]) | |||||
days = int(self.servers[self.guild.id]["gss"]["required_days"]) | |||||
logging = self.servers[self.guild.id]["gss"]["log_channel"] | |||||
data = self.tatsumaki_api_call(member) | |||||
if role_obj in member.roles: | |||||
return await self.bot.say("You already have the {} role.".format(role_obj.name)) | |||||
base = "https://api.tatsumaki.xyz/" | |||||
url = base + "guilds/" + server.id + "/members/" + member.id + "/stats" | |||||
r = requests.get(url,headers={"Authorization":load_config.tat_token}) | |||||
data = r.json() | |||||
if self.nsfw_image_role in member.roles: | |||||
await self.bot.remove_roles(member, self.nsfw_image_role) | |||||
return await self.bot.say("You already had {}. It has now been removed.".format(self.nsfw_image_role.name)) | |||||
time = datetime.datetime.now() - ctx.message.author.joined_at | time = datetime.datetime.now() - ctx.message.author.joined_at | ||||
if time > datetime.timedelta(days=days) and int(data["score"]) >= required_score: | if time > datetime.timedelta(days=days) and int(data["score"]) >= required_score: | ||||
await self.bot.add_roles(member, role_obj) | |||||
await self.bot.say("You have now got the {} role".format(role_obj.name)) | |||||
await self.bot.add_roles(member, self.nsfw_image_role) | |||||
await self.bot.say("You have now have the {} role".format(self.nsfw_image_role.name)) | |||||
if logging: | if logging: | ||||
return await self.bot.send_message(self.bot.get_channel(logging), content="{} has requested the {} role.".format(member.mention, role_obj.name)) | |||||
return await self.bot.send_message(self.bot.get_channel(logging), content="{} has requested the {} role.".format(member.mention, self.nsfw_image_role.name)) | |||||
else: | else: | ||||
return await self.bot.say( | return await self.bot.say( | ||||
"You do not meet the requirements for this role. You need at least {} score with <@!172002275412279296> and to have been in the server for {} days.".format(required_score, days) | "You do not meet the requirements for this role. You need at least {} score with <@!172002275412279296> and to have been in the server for {} days.".format(required_score, days) |
{"304048071963312130": {"greets": {"enabled": 0, "welcome-channel": "", "member-role": "", "custom-message": "hellow", "default-message": "Be sure to read the rules."}, "goodbyes": {"enabled": 0, "goodbye-channel": ""}, "self_assign": {"enabled": 0, "roles": []}, "twitch": {"enabled": 0, "twitch-channel": "", "whitelist": {"enabled": 0, "list": []}}, "mute": {"role": "", "admin-role": []}, "nsfw": {"enabled": 0, "channels": []}, "admin_role": {"role": ""}, "custom_commands": {"0": {"test": "\"testedit\"", "hello": "<:tingles:346838411639914506>", "benis": "\ud83c\udd71enis", "sophie": "<@136619052994002944>", "myra": "<@342213251372941312>", "roxieee": "<@!142735312626515979>", "customs": "\"\ud83d\udec3\"", "zzz": "\ud83d\udca4", "lewd!": "\ud83d\udea8 lewd! \ud83d\udea8"}, "1": {}}, "perm_roles": {"admin": [], "mod": []}, "gss": {"logging_channel": "339201847678074880", "required_days": "5", "required_score": "3000000", "log_channel": ""}}, "395632940328943616": {"greets": {"enabled": 0, "welcome-channel": "", "member-role": "", "custom-message": "", "default-message": "Be sure to read the rules."}, "goodbyes": {"enabled": 0, "goodbye-channel": ""}, "self_assign": {"enabled": 0, "roles": []}, "twitch": {"enabled": 0, "twitch-channel": "", "whitelist": {"enabled": 0, "list": []}}, "mute": {"role": ""}, "nsfw": {"enabled": 0, "channels": []}, "perm_roles": {"admin": [], "mod": []}, "custom_commands": {"0": {}, "1": {}}, "gss": {"log_channel": "", "required_days": "", "required_score": ""}}} | |||||
{"304048071963312130": {"greets": {"enabled": 0, "welcome-channel": "", "member-role": "", "custom-message": "hellow", "default-message": "Be sure to read the rules."}, "goodbyes": {"enabled": 0, "goodbye-channel": ""}, "self_assign": {"enabled": 0, "roles": []}, "twitch": {"enabled": 0, "twitch-channel": "", "whitelist": {"enabled": 0, "list": []}}, "mute": {"role": "", "admin-role": []}, "nsfw": {"enabled": 0, "channels": []}, "admin_role": {"role": ""}, "custom_commands": {"0": {"test": "\"testedit\"", "hello": "<:tingles:346838411639914506>", "benis": "\ud83c\udd71enis", "sophie": "<@136619052994002944>", "myra": "<@342213251372941312>", "roxieee": "<@!142735312626515979>", "customs": "\"\ud83d\udec3\"", "zzz": "\ud83d\udca4", "lewd!": "\ud83d\udea8 lewd! \ud83d\udea8"}, "1": {}}, "perm_roles": {"admin": [], "mod": []}, "gss": {"logging_channel": "339201847678074880", "required_days": "5", "required_score": "3000000", "log_channel": ""}}, "395632940328943616": {"greets": {"enabled": 0, "welcome-channel": "", "member-role": "", "custom-message": "", "default-message": "Be sure to read the rules."}, "goodbyes": {"enabled": 0, "goodbye-channel": ""}, "self_assign": {"enabled": 0, "roles": []}, "twitch": {"enabled": 0, "twitch-channel": "", "whitelist": {"enabled": 0, "list": []}}, "mute": {"role": ""}, "nsfw": {"enabled": 0, "channels": []}, "perm_roles": {"admin": [], "mod": []}, "custom_commands": {"0": {}, "1": {}}, "gss": {"log_channel": "", "required_days": "", "required_score": ""}}, "298647714302787595": {"greets": {"enabled": 0, "welcome-channel": "", "member-role": "", "custom-message": "", "default-message": "Be sure to read the rules."}, "goodbyes": {"enabled": 0, "goodbye-channel": ""}, "self_assign": {"enabled": 0, "roles": []}, "twitch": {"enabled": 0, "twitch-channel": "", "whitelist": {"enabled": 0, "list": []}}, "nsfw": {"enabled": 0, "channels": []}, "perm_roles": {"admin": [], "mod": []}, "custom_commands": {"0": {}, "1": {}}, "gss": {"log_channel": "", "required_days": "", "required_score": ""}}, "342276593009557514": {"greets": {"enabled": 0, "welcome-channel": "", "member-role": "", "custom-message": "", "default-message": "Be sure to read the rules."}, "goodbyes": {"enabled": 0, "goodbye-channel": ""}, "self_assign": {"enabled": 0, "roles": []}, "twitch": {"enabled": 0, "twitch-channel": "", "whitelist": {"enabled": 0, "list": []}}, "nsfw": {"enabled": 0, "channels": []}, "perm_roles": {"admin": [], "mod": []}, "custom_commands": {"0": {}, "1": {}}, "gss": {"log_channel": "", "required_days": "", "required_score": ""}}, "358418840872419328": {"greets": {"enabled": 0, "welcome-channel": "", "member-role": "", "custom-message": "", "default-message": "Be sure to read the rules."}, "goodbyes": {"enabled": 0, "goodbye-channel": ""}, "self_assign": {"enabled": 0, "roles": []}, "twitch": {"enabled": 0, "twitch-channel": "", "whitelist": {"enabled": 0, "list": []}}, "nsfw": {"enabled": 0, "channels": []}, "perm_roles": {"admin": [], "mod": []}, "custom_commands": {"0": {}, "1": {}}, "gss": {"log_channel": "", "required_days": "", "required_score": ""}}, "393764974444675073": {"greets": {"enabled": 0, "welcome-channel": "", "member-role": "", "custom-message": "", "default-message": "Be sure to read the rules."}, "goodbyes": {"enabled": 0, "goodbye-channel": ""}, "self_assign": {"enabled": 0, "roles": []}, "twitch": {"enabled": 0, "twitch-channel": "", "whitelist": {"enabled": 0, "list": []}}, "nsfw": {"enabled": 0, "channels": []}, "perm_roles": {"admin": [], "mod": []}, "custom_commands": {"0": {}, "1": {}}, "gss": {"log_channel": "", "required_days": "5", "required_score": "2000"}}} |