Pylint Compliance

- Modifies codebase to match conventions set by Pylint.
- Added update command to template.
This commit is contained in:
InValidFire 2021-03-30 18:42:07 -04:00
parent f928c6df20
commit 58ca231454
5 changed files with 54 additions and 30 deletions

View file

@ -7,6 +7,7 @@ import yaml
def read_logging_config(default_path="logging.yaml", env_key="LOG_CFG"): def read_logging_config(default_path="logging.yaml", env_key="LOG_CFG"):
"""Load the logging config into memory"""
path = default_path path = default_path
value = os.getenv(env_key, None) value = os.getenv(env_key, None)
if value: if value:
@ -15,11 +16,11 @@ def read_logging_config(default_path="logging.yaml", env_key="LOG_CFG"):
with open(path, "rt") as f: with open(path, "rt") as f:
logging_config = yaml.safe_load(f.read()) logging_config = yaml.safe_load(f.read())
return logging_config return logging_config
else:
return None return None
def setup_logging(logging_config, default_level=logging.INFO): def setup_logging(logging_config, default_level=logging.INFO):
"""Configure logging"""
if logging_config: if logging_config:
logging.config.dictConfig(logging_config) logging.config.dictConfig(logging_config)
else: else:

13
bot.py
View file

@ -1,9 +1,12 @@
from applog.utils import read_logging_config, setup_logging """Bot startup code"""
import logging import logging
from discord.ext import commands
import core.common as common
from pathlib import Path from pathlib import Path
from discord.ext import commands
from applog.utils import read_logging_config, setup_logging
import core.common as common
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
discord_logger = logging.getLogger('discord') discord_logger = logging.getLogger('discord')
@ -13,14 +16,14 @@ setup_logging(log_config_dict)
common.prompt_config("config.json", "Enter repository URL: ", "repo_link") common.prompt_config("config.json", "Enter repository URL: ", "repo_link")
common.prompt_config("config.json", "Enter bot token: ", "token") common.prompt_config("config.json", "Enter bot token: ", "token")
common.prompt_config("config.json", "Enter bot prefix: ", "prefix") common.prompt_config("config.json", "Enter bot prefix: ", "prefix")
common.prompt_config("config.json", "Enter ServerAPI token: ", "api_token")
config, _ = common.load_config("config.json") config, _ = common.load_config("config.json")
bot = commands.Bot(command_prefix=config['prefix']) bot = commands.Bot(command_prefix=config['prefix'])
def get_extensions(): # Gets extension list dynamically def get_extensions():
"""Gets extension list dynamically"""
extensions = [] extensions = []
for file in Path("cogs").glob("**/*.py"): for file in Path("cogs").glob("**/*.py"):
extensions.append(str(file).replace("/", ".").replace(".py", "")) extensions.append(str(file).replace("/", ".").replace(".py", ""))

View file

@ -1,27 +1,33 @@
from discord.ext import commands """System Module from Bot Template"""
import discord
import core.common as common
import sys import sys
import subprocess import subprocess
import logging import logging
from discord.ext import commands
import discord
import core.common as common
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
class System(commands.Cog): class System(commands.Cog):
"""System Cog from Bot Template"""
def __init__(self, bot): def __init__(self, bot):
self.bot = bot self.bot = bot
self.commit = subprocess.run(["git", "show", "-s", "--format=%h"], self.commit = subprocess.run(["git", "show", "-s", "--format=%h"],
capture_output=True, capture_output=True,
encoding="utf-8").stdout.strip() encoding="utf-8", check=True).stdout.strip()
@commands.group() @commands.group()
async def bot(self, ctx): async def bot_group(self, ctx):
"""Command group for core bot commands"""
if ctx.invoked_subcommand is None: if ctx.invoked_subcommand is None:
await ctx.send('No subcommand invoked.') await ctx.send('No subcommand invoked.')
@bot.command() @bot_group.command()
async def ping(self, ctx): async def ping(self, ctx):
"""Ping the bot"""
await ctx.message.delete() await ctx.message.delete()
embed = discord.Embed(title="Pong!", embed = discord.Embed(title="Pong!",
description=str(round(self.bot.latency * 1000, 1)) + "ms", description=str(round(self.bot.latency * 1000, 1)) + "ms",
@ -30,9 +36,10 @@ class System(commands.Cog):
icon_url=ctx.author.avatar_url) icon_url=ctx.author.avatar_url)
await ctx.send(embed=embed) await ctx.send(embed=embed)
@bot.command() @bot_group.command()
@commands.is_owner() @commands.is_owner()
async def stop(self, ctx): async def stop(self, ctx):
"""Stop the bot"""
await ctx.message.delete() await ctx.message.delete()
embed = discord.Embed(title="Stopping Bot!", embed = discord.Embed(title="Stopping Bot!",
color=common.random_rgb()) color=common.random_rgb())
@ -41,9 +48,10 @@ class System(commands.Cog):
await ctx.send(embed=embed) await ctx.send(embed=embed)
sys.exit() sys.exit()
@bot.command() @bot_group.command()
@commands.is_owner() @commands.is_owner()
async def restart(self, ctx): async def restart(self, ctx):
"""Restart the bot"""
await ctx.message.delete() await ctx.message.delete()
embed = discord.Embed(title="Restarting Bot!", embed = discord.Embed(title="Restarting Bot!",
color=common.random_rgb()) color=common.random_rgb())
@ -52,31 +60,28 @@ class System(commands.Cog):
await ctx.send(embed=embed) await ctx.send(embed=embed)
sys.exit(26) sys.exit(26)
@commands.group() @bot_group.command()
async def git(self, ctx):
if ctx.invoked_subcommand is None:
await ctx.send('No subcommand invoked.')
@git.command()
async def version(self, ctx): async def version(self, ctx):
"""Get bot version"""
await ctx.message.delete() await ctx.message.delete()
d = subprocess.run(["git", "show", "-s", "--format=%ci", self.commit], commit_date = subprocess.run(["git", "show", "-s", "--format=%ci", self.commit],
capture_output=True, capture_output=True, check=True,
encoding="utf-8") encoding="utf-8").stdout.strip()
m = subprocess.run(['git', 'show', '-s', '--format=%B', self.commit], commit_msg = subprocess.run(['git', 'show', '-s', '--format=%B', self.commit],
capture_output=True, capture_output=True, check=True,
encoding="utf-8") encoding="utf-8").stdout.strip()
embed = discord.Embed(title="Bot Version", embed = discord.Embed(title="Bot Version",
description="Current Bot Version", description="Current Bot Version",
color=common.random_rgb(self.commit)) color=common.random_rgb(self.commit))
embed.set_footer(text=f"requested by {ctx.author}", icon_url=ctx.author.avatar_url) embed.set_footer(text=f"requested by {ctx.author}", icon_url=ctx.author.avatar_url)
embed.add_field(name="ID", value=self.commit, inline=False) embed.add_field(name="ID", value=self.commit, inline=False)
embed.add_field(name="Date", value=d.stdout, inline=False) embed.add_field(name="Date", value=commit_date, inline=False)
embed.add_field(name="Changelog", value=m.stdout, inline=False) embed.add_field(name="Changelog", value=commit_msg, inline=False)
await ctx.send(embed=embed) await ctx.send(embed=embed)
@git.command() @bot_group.command()
async def repo(self, ctx): async def repo(self, ctx):
"""Display the bot repository"""
await ctx.message.delete() await ctx.message.delete()
embed = discord.Embed(title="Code Repository", embed = discord.Embed(title="Code Repository",
description="You can find my source code on [GitDab](" description="You can find my source code on [GitDab]("
@ -85,6 +90,19 @@ class System(commands.Cog):
embed.set_footer(text=f"requested by {ctx.author}", icon_url=ctx.author.avatar_url) embed.set_footer(text=f"requested by {ctx.author}", icon_url=ctx.author.avatar_url)
await ctx.send(embed=embed) await ctx.send(embed=embed)
@bot_group.command()
@commands.is_owner()
async def update(self, ctx):
"""Update the bot"""
ctx: commands.Context
await ctx.message.delete()
response = subprocess.run(["git", "pull"], capture_output=True, check=True,
encoding="utf-8").stdout.strip()
embed=discord.Embed(title="Update Report", description=response, color=common.random_rgb())
embed.set_footer(text=f"requested by {ctx.author}", icon_url=ctx.author.avatar_url)
await ctx.send(embed=embed)
def setup(bot): def setup(bot):
"""Initialize the cog"""
bot.add_cog(System(bot)) bot.add_cog(System(bot))

0
core/__init__.py Normal file
View file

View file

@ -1,4 +1,5 @@
#!/usr/bin/env/python #!/usr/bin/env/python
"""Main process for Bot program"""
import subprocess import subprocess
import logging import logging
import sys import sys
@ -14,6 +15,7 @@ logger.info("Bot Manager Started!")
def start_bot(): def start_bot():
"""Start the bot process"""
bot_process = subprocess.Popen(["python3", "-B", "bot.py"], stdout=sys.stdout) bot_process = subprocess.Popen(["python3", "-B", "bot.py"], stdout=sys.stdout)
return bot_process return bot_process