Compare commits
49 Commits
1ddf767074
...
946590a3a1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
946590a3a1 | ||
|
|
222760f6a0 | ||
|
|
6f7e3b4bbc | ||
|
|
ba27d7c390 | ||
|
|
0a9ab007e5 | ||
|
|
66d994023e | ||
|
|
08f1903871 | ||
|
|
63d852f37b | ||
|
|
776b8d009c | ||
|
|
b189f2ca5e | ||
|
|
fe143678fe | ||
|
|
8f70fcc142 | ||
|
|
6b8bda9223 | ||
|
|
0a4baee373 | ||
|
|
1bd8873803 | ||
|
|
3fa91bbcce | ||
|
|
38b6ff65a4 | ||
|
|
057e1210b7 | ||
|
|
76b5d1df8f | ||
|
|
f2fd478dc8 | ||
|
|
b7f90c990e | ||
|
|
edfebad791 | ||
|
|
d5194bba3d | ||
|
|
2a9c202436 | ||
|
|
7f14b015ce | ||
|
|
2eb5ac124c | ||
|
|
788da95c11 | ||
|
|
40a182cc43 | ||
|
|
113737f2fd | ||
|
|
9267acf8fb | ||
|
|
871a5f73be | ||
|
|
327a5e74d2 | ||
|
|
02c3f1e685 | ||
|
|
7321413c90 | ||
|
|
c6efae9635 | ||
|
|
239261eeaf | ||
|
|
423edf1a3a | ||
|
|
6b1dd09a98 | ||
|
|
0f80146172 | ||
|
|
6ae7113f5d | ||
|
|
cd286222c1 | ||
|
|
db0391d8af | ||
|
|
7f2f4a32ca | ||
|
|
39838d3e79 | ||
|
|
a76394b568 | ||
|
|
3ebf0e22f8 | ||
|
|
becc2d3ade | ||
|
|
6b9a9cc968 | ||
|
|
09384a7efa |
@ -26,6 +26,8 @@ from .shared_libs.loggable import Loggable
|
||||
# Init logging to output on INFO level to stderr.
|
||||
logging.basicConfig(level="INFO")
|
||||
|
||||
REBOOT_FILE = "sebimachine/config/reboot"
|
||||
|
||||
|
||||
# If uvloop is installed, change to that eventloop policy as it
|
||||
# is more efficient
|
||||
@ -75,13 +77,11 @@ class SebiMachine(commands.Bot, LoadConfig, Loggable):
|
||||
# Load plugins
|
||||
# Add your cog file name in this list
|
||||
with open(in_here("extensions.txt")) as cog_file:
|
||||
cogs = cog_file.readlines()
|
||||
cogs = {f'sebimachine.cogs.{c.strip()}' for c in cog_file.readlines()}
|
||||
|
||||
for cog in cogs:
|
||||
# Could this just be replaced with `strip()`?
|
||||
try:
|
||||
cog = cog.replace("\n", "")
|
||||
self.load_extension(f"src.cogs.{cog}")
|
||||
self.load_extension(cog)
|
||||
self.logger.info(f"Loaded: {cog}")
|
||||
except (ModuleNotFoundError, ImportError) as ex:
|
||||
logging.exception(f'Could not load {cog}', exc_info=(type(ex), ex, ex.__traceback__))
|
||||
@ -90,7 +90,8 @@ class SebiMachine(commands.Bot, LoadConfig, Loggable):
|
||||
async def on_ready(self):
|
||||
"""On ready function"""
|
||||
self.maintenance and self.logger.warning("MAINTENANCE ACTIVE")
|
||||
with open(f"src/config/reboot", "r") as f:
|
||||
if os.path.exists(REBOOT_FILE):
|
||||
with open(REBOOT_FILE, "r") as f:
|
||||
reboot = f.readlines()
|
||||
if int(reboot[0]) == 1:
|
||||
await self.get_channel(int(reboot[1])).send("Restart Finished.")
|
||||
@ -100,7 +101,7 @@ class SebiMachine(commands.Bot, LoadConfig, Loggable):
|
||||
f'FAILED TO LOAD {cog} BECAUSE OF {type(ex).__name__}: {ex}\n'
|
||||
f'{tb}'
|
||||
)
|
||||
with open(f"src/config/reboot", "w") as f:
|
||||
with open(REBOOT_FILE, "w") as f:
|
||||
f.write(f"0")
|
||||
|
||||
async def on_command_error(self, ctx, error):
|
||||
|
||||
@ -11,7 +11,7 @@ class BotManager:
|
||||
return
|
||||
else:
|
||||
# The member is a bot
|
||||
bot_owner = member.guild.get_member((await self.bot.db_con.fetchval('select owner from bots where id = $1', member.id))
|
||||
bot_owner = member.guild.get_member(await self.bot.db_con.fetchval('select owner from bots where id = $1', member.id))
|
||||
await bot_owner.add_roles(discord.utils.get(member.guild.roles, name='Bot Developers'))
|
||||
|
||||
await member.add_roles(discord.utils.get(member.guild.roles, name='Bots'))
|
||||
@ -61,7 +61,7 @@ class BotManager:
|
||||
await ctx.send(embed=em)
|
||||
|
||||
em = discord.Embed(title="Bot invite", colour=discord.Color(0x363941))
|
||||
em.description = discord.utils.oauth_url(client_id, permissions=None, guild=ctx.guild))
|
||||
em.description = discord.utils.oauth_url(client_id, permissions=None, guild=ctx.guild)
|
||||
em.set_thumbnail(url=bot.avatar_url)
|
||||
em.add_field(name="Bot name", value=bot.name)
|
||||
em.add_field(name="Bot id", value="`" + str(bot.id) + "`")
|
||||
|
||||
@ -8,7 +8,7 @@ import asyncio
|
||||
class Tag:
|
||||
def __init__(self, bot):
|
||||
self.bot = bot
|
||||
with open("src/shared_libs/tags.json", "r") as fp:
|
||||
with open("sebimachine/shared_libs/tags.json", "r") as fp:
|
||||
json_data = fp.read()
|
||||
global tags
|
||||
tags = json.loads(json_data)
|
||||
|
||||
@ -160,7 +160,7 @@ class Capturing(list):
|
||||
sys.stdout = self._stdout
|
||||
|
||||
|
||||
def to_list_of_str(items, out: list = list(), level=1, recurse=0):
|
||||
def to_list_of_str(items, out: list=list(), level=1, recurse=0):
|
||||
def rec_loop(item, key, out, level):
|
||||
quote = '"'
|
||||
if type(item) == list:
|
||||
@ -174,42 +174,40 @@ def to_list_of_str(items, out: list = list(), level=1, recurse=0):
|
||||
out = to_list_of_str(item, out, new_level, 1)
|
||||
out.append(f'{" "*level}}}')
|
||||
else:
|
||||
out.append(
|
||||
f'{" "*level}{quote+key+quote+": " if key else ""}{repr(item)},'
|
||||
)
|
||||
out.append(f'{" "*level}{quote+key+quote+": " if key else ""}{repr(item)},')
|
||||
|
||||
if type(items) == list:
|
||||
if not recurse:
|
||||
out = list()
|
||||
out.append("[")
|
||||
out.append('[')
|
||||
for item in items:
|
||||
rec_loop(item, None, out, level)
|
||||
if not recurse:
|
||||
out.append("]")
|
||||
out.append(']')
|
||||
elif type(items) == dict:
|
||||
if not recurse:
|
||||
out = list()
|
||||
out.append("{")
|
||||
out.append('{')
|
||||
for key in items:
|
||||
rec_loop(items[key], key, out, level)
|
||||
if not recurse:
|
||||
out.append("}")
|
||||
out.append('}')
|
||||
|
||||
return out
|
||||
|
||||
|
||||
def paginate(text, maxlen=1990):
|
||||
paginator = Paginator(prefix="```py", max_size=maxlen + 10)
|
||||
paginator = Paginator(prefix='```py', max_size=maxlen+10)
|
||||
if type(text) == list:
|
||||
data = to_list_of_str(text)
|
||||
elif type(text) == dict:
|
||||
data = to_list_of_str(text)
|
||||
else:
|
||||
data = str(text).split("\n")
|
||||
data = str(text).split('\n')
|
||||
for line in data:
|
||||
if len(line) > maxlen:
|
||||
n = maxlen
|
||||
for l in [line[i : i + n] for i in range(0, len(line), n)]:
|
||||
for l in [line[i:i+n] for i in range(0, len(line), n)]:
|
||||
paginator.add_line(l)
|
||||
else:
|
||||
paginator.add_line(line)
|
||||
@ -221,8 +219,7 @@ async def run_command(args):
|
||||
process = await asyncio.create_subprocess_shell(
|
||||
args,
|
||||
# stdout must a pipe to be accessible as process.stdout
|
||||
stdout=asyncio.subprocess.PIPE,
|
||||
)
|
||||
stdout=asyncio.subprocess.PIPE)
|
||||
# Wait for the subprocess to finish
|
||||
stdout, stderr = await process.communicate()
|
||||
# Return stdout
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user