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

@@ -11,6 +11,14 @@ A simple Discord Bot used by me personally, written for fun.

## 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
###### Bug Fixes
- Fixed a bug when a user only the '@everyone' role.

+ 2
- 0
checks.py View File

@@ -19,3 +19,5 @@ def is_owner_or_admin():
def is_nfsw_enabled():
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

@@ -0,0 +1,92 @@
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

@@ -37,11 +37,13 @@ class JoinLeave():
The same but the opposite
"""
self.con.load_config()
channel = self.servers[member.server.id]["goodbyes"]["goodbye-channel"]
if not self.servers[member.server.id]["goodbyes"]["enabled"]:
return
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))


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

+ 2
- 2
cogs/reddit.py View File

@@ -247,11 +247,11 @@ class Reddit():


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

+ 22
- 1
cogs/settings.py View File

@@ -144,13 +144,34 @@ class Settings():
self.con.update_config(self.servers)
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):
self.servers = self.con.load_config()
self.servers[ctx.message.server.id]["mute"]["role"] = role.id
self.con.update_config(self.servers)
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)
@checks.is_owner_or_admin()
async def add(self, ctx):

+ 2
- 1
config/cogs.py View File

@@ -7,5 +7,6 @@ cogs = [
"cogs.selfassign",
"cogs.settings",
"cogs.twitch",
"cogs.util"
"cogs.util",
"cogs.gss"
]

+ 1
- 1
config/meta.py View File

@@ -3,5 +3,5 @@ __description__ = """RoxBot, A Discord Bot made by a filthy Mercy Main. Built wi
[Github link](https://github.com/RainbowDinoaur/roxbot)
[Changelog](https://github.com/RainbowDinoaur/roxbot#v100)"""
__author__ = "Roxanne Gibson"
__version__= "1.1.2"
__version__= "1.2.2"
embedcolour = 0xDEADBF

+ 5
- 0
config/server_config.py View File

@@ -41,6 +41,11 @@ class ServerConfig():
"custom_commands":{
"0": {},
"1": {}
},
"gss":{
"log_channel": "",
"required_days": "",
"required_score": "",
}
}
}

+ 1
- 1
config/servers.json View File

@@ -1 +1 @@
{"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

@@ -5,4 +5,5 @@ settings.read("settings/preferences.ini")

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

+ 2
- 0
load_config.py View File

@@ -3,8 +3,10 @@ from config import settings, cogs, meta
command_prefix = settings.command_prefix
token = settings.token
owner = settings.owner
tat_token = settings.tattoken
cogslist = cogs.cogs
description = meta.__description__
version = meta.__version__
author = meta.__author__
embedcolour = meta.embedcolour


+ 1
- 1
main.py View File

@@ -23,7 +23,7 @@ logger.addHandler(handler)

server_config = ServerConfig()
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
# 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.

+ 2
- 1
settings/preferences_example.ini View File

@@ -1,4 +1,5 @@
[Roxbot]
OwnerID=142735312626515979
Token=TokenHere
Command_Prefix=r;
Command_Prefix=r;
Tatsumaki_Token=TokenHere

Loading…
Cancel
Save