Browse Source

Merge branch 'master' into development

# Conflicts:
#	README.md
tags/v1.3.0
roxie 6 years ago
parent
commit
4e027b9c7b
14 changed files with 145 additions and 10 deletions
  1. +8
    -0
      README.md
  2. +2
    -0
      checks.py
  3. +92
    -0
      cogs/gss.py
  4. +3
    -1
      cogs/joinleave.py
  5. +2
    -2
      cogs/reddit.py
  6. +22
    -1
      cogs/settings.py
  7. +2
    -1
      config/cogs.py
  8. +1
    -1
      config/meta.py
  9. +5
    -0
      config/server_config.py
  10. +1
    -1
      config/servers.json
  11. +2
    -1
      config/settings.py
  12. +2
    -0
      load_config.py
  13. +1
    -1
      main.py
  14. +2
    -1
      settings/preferences_example.ini

+ 8
- 0
README.md View File



## Changelog ## Changelog


#### v1.2.0
###### New Features
- Added a new cog for the GaySoundsShiposts discord. Just some custom commands needed for modding.

#### v1.1.3
###### Changes
- Changed to traa command to gss and point to the /r/gaysoundsshitposts subreddit

#### v1.1.2 #### v1.1.2
###### Bug Fixes ###### Bug Fixes
- Fixed a bug when a user only the '@everyone' role. - Fixed a bug when a user only the '@everyone' role.

+ 2
- 0
checks.py View File

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")

+ 92
- 0
cogs/gss.py View File

import checks
import datetime
import requests
import load_config
from discord.ext.commands import bot
from config.server_config import ServerConfig


class GaySoundsShitposting():
def __init__(self, Bot):
self.bot = Bot
self.con = ServerConfig()
self.servers = self.con.servers

@checks.is_gss()
@bot.command(pass_context=True)
async def selfieperms(self, ctx):
"""Requests the selfie perm role."""

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

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()

time = datetime.datetime.now() - ctx.message.author.joined_at

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))
if logging:
return await self.bot.send_message(self.bot.get_channel(logging), content="{} has requested the {} role.".format(member.mention, role_obj.name))
else:
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)
)

@checks.is_gss()
@bot.command(pass_context=True)
async def nsfwperms(self, ctx):
"""Requests the NSFW Image Perm role."""

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

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()

time = datetime.datetime.now() - ctx.message.author.joined_at

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))
if logging:
return await self.bot.send_message(self.bot.get_channel(logging), content="{} has requested the {} role.".format(member.mention, role_obj.name))
else:
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)
)

def setup(Bot):
Bot.add_cog(GaySoundsShitposting(Bot))

+ 3
- 1
cogs/joinleave.py View File

The same but the opposite The same but the opposite
""" """
self.con.load_config() self.con.load_config()
channel = self.servers[member.server.id]["goodbyes"]["goodbye-channel"]
if not self.servers[member.server.id]["goodbyes"]["enabled"]: if not self.servers[member.server.id]["goodbyes"]["enabled"]:
return return
else: else:
return await self.bot.send_message(member.server,embed=discord.Embed(
return await self.bot.send_message(self.bot.get_channel(channel) ,embed=discord.Embed(
description="{}#{} has left or been beaned.".format(member.name, member.discriminator), colour=0xDEADBF)) description="{}#{} has left or been beaned.".format(member.name, member.discriminator), colour=0xDEADBF))



def setup(Bot): def setup(Bot):
Bot.add_cog(JoinLeave(Bot)) Bot.add_cog(JoinLeave(Bot))

+ 2
- 2
cogs/reddit.py View File





@bot.command(pass_context=True) @bot.command(pass_context=True)
async def traa(self, ctx):
async def gss(self, ctx):
""" """
Gives you the best trans memes ever Gives you the best trans memes ever
""" """
subreddit = "traaaaaaannnnnnnnnns"
subreddit = "gaysoundsshitposts"
links = Scrapper().linkget(subreddit, True) links = Scrapper().linkget(subreddit, True)
if not links: if not links:
return await self.bot.say("Error ;-; That subreddit probably doesn't exist. Please check your spelling") return await self.bot.say("Error ;-; That subreddit probably doesn't exist. Please check your spelling")

+ 22
- 1
cogs/settings.py View File

self.con.update_config(self.servers) self.con.update_config(self.servers)
return await self.bot.say("Custom message set to '{}'".format(message)) return await self.bot.say("Custom message set to '{}'".format(message))


@set.command(pass_context=True, hidden=True, enabled=False)
@set.command(pass_context=True, hidden=True)
async def muterole(self, ctx, role: discord.Role = None): async def muterole(self, ctx, role: discord.Role = None):
self.servers = self.con.load_config() self.servers = self.con.load_config()
self.servers[ctx.message.server.id]["mute"]["role"] = role.id self.servers[ctx.message.server.id]["mute"]["role"] = role.id
self.con.update_config(self.servers) self.con.update_config(self.servers)
return await self.bot.say("Muted role set to '{}'".format(role.name)) return await self.bot.say("Muted role set to '{}'".format(role.name))


@set.command(pass_context=True, hidden=True)
async def loggingchannel(self, ctx, channel: discord.Channel = None):
self.servers = self.con.load_config()
self.servers[ctx.message.server.id]["gss"]["logging_channel"] = channel.id
self.con.update_config(self.servers)
return await self.bot.say("Logging Channel set to '{}'".format(channel.name))

@set.command(pass_context=True, hidden=True)
async def requireddays(self, ctx, days: int):
self.servers = self.con.load_config()
self.servers[ctx.message.server.id]["gss"]["required_days"] = str(days)
self.con.update_config(self.servers)
return await self.bot.say("Required days set to '{}'".format(str(days)))

@set.command(pass_context=True, hidden=True)
async def requiredscore(self, ctx, score: int):
self.servers = self.con.load_config()
self.servers[ctx.message.server.id]["gss"]["required_score"] = str(score)
self.con.update_config(self.servers)
return await self.bot.say("Required score set to '{}'".format(str(score)))

@group(pass_context=True) @group(pass_context=True)
@checks.is_owner_or_admin() @checks.is_owner_or_admin()
async def add(self, ctx): async def add(self, ctx):

+ 2
- 1
config/cogs.py View File

"cogs.selfassign", "cogs.selfassign",
"cogs.settings", "cogs.settings",
"cogs.twitch", "cogs.twitch",
"cogs.util"
"cogs.util",
"cogs.gss"
] ]

+ 1
- 1
config/meta.py View File

[Github link](https://github.com/RainbowDinoaur/roxbot) [Github link](https://github.com/RainbowDinoaur/roxbot)
[Changelog](https://github.com/RainbowDinoaur/roxbot#v100)""" [Changelog](https://github.com/RainbowDinoaur/roxbot#v100)"""
__author__ = "Roxanne Gibson" __author__ = "Roxanne Gibson"
__version__= "1.1.2"
__version__= "1.2.2"
embedcolour = 0xDEADBF embedcolour = 0xDEADBF

+ 5
- 0
config/server_config.py View File

"custom_commands":{ "custom_commands":{
"0": {}, "0": {},
"1": {} "1": {}
},
"gss":{
"log_channel": "",
"required_days": "",
"required_score": "",
} }
} }
} }

+ 1
- 1
config/servers.json View File

{"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}, "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": []}}}
{"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}, "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": ""}}}

+ 2
- 1
config/settings.py View File



command_prefix = settings["Roxbot"]["Command_Prefix"] command_prefix = settings["Roxbot"]["Command_Prefix"]
token = settings["Roxbot"]["Token"] token = settings["Roxbot"]["Token"]
owner = settings["Roxbot"]["OwnerID"]
owner = settings["Roxbot"]["OwnerID"]
tattoken = settings["Roxbot"]["Tatsumaki_Token"]

+ 2
- 0
load_config.py View File

command_prefix = settings.command_prefix command_prefix = settings.command_prefix
token = settings.token token = settings.token
owner = settings.owner owner = settings.owner
tat_token = settings.tattoken
cogslist = cogs.cogs cogslist = cogs.cogs
description = meta.__description__ description = meta.__description__
version = meta.__version__ version = meta.__version__
author = meta.__author__ author = meta.__author__
embedcolour = meta.embedcolour embedcolour = meta.embedcolour


+ 1
- 1
main.py View File



server_config = ServerConfig() server_config = ServerConfig()
bot = commands.Bot(command_prefix=load_config.command_prefix, description=load_config.description) bot = commands.Bot(command_prefix=load_config.command_prefix, description=load_config.description)
bot.dev = False # For debugging
bot.dev = True # For debugging
bot.owner = load_config.owner bot.owner = load_config.owner
# TODO: Put load_config variables into the bot variable so we can pass all of it to the cogs as one. # TODO: Put load_config variables into the bot variable so we can pass all of it to the cogs as one.
# Can't do this with server config in any meaningful way since it still needs updating. # Can't do this with server config in any meaningful way since it still needs updating.

+ 2
- 1
settings/preferences_example.ini View File

[Roxbot] [Roxbot]
OwnerID=142735312626515979 OwnerID=142735312626515979
Token=TokenHere Token=TokenHere
Command_Prefix=r;
Command_Prefix=r;
Tatsumaki_Token=TokenHere

Loading…
Cancel
Save