Uploading JuicyBot Base v0.0.1
This commit is contained in:
parent
67ebd2071f
commit
edd8fcc9ad
3
.idea/.gitignore
vendored
Normal file
3
.idea/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
19
.idea/dictionaries/cekey.xml
Normal file
19
.idea/dictionaries/cekey.xml
Normal file
@ -0,0 +1,19 @@
|
||||
<component name="ProjectDictionaryState">
|
||||
<dictionary name="cekey">
|
||||
<words>
|
||||
<w>cooldown</w>
|
||||
<w>couldn</w>
|
||||
<w>dataframe</w>
|
||||
<w>emoji</w>
|
||||
<w>gamertag</w>
|
||||
<w>platformid</w>
|
||||
<w>playerdata</w>
|
||||
<w>playerid</w>
|
||||
<w>psyonix</w>
|
||||
<w>qqfcwij</w>
|
||||
<w>racker</w>
|
||||
<w>rlstats</w>
|
||||
<w>xbox</w>
|
||||
</words>
|
||||
</dictionary>
|
||||
</component>
|
10
.idea/discordbotto.iml
Normal file
10
.idea/discordbotto.iml
Normal file
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="PYTHON_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<excludeFolder url="file://$MODULE_DIR$/.idea" />
|
||||
</content>
|
||||
<orderEntry type="jdk" jdkName="Python 3.7 (untitled)" jdkType="Python SDK" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
6
.idea/inspectionProfiles/profiles_settings.xml
Normal file
6
.idea/inspectionProfiles/profiles_settings.xml
Normal file
@ -0,0 +1,6 @@
|
||||
<component name="InspectionProjectProfileManager">
|
||||
<settings>
|
||||
<option name="USE_PROJECT_PROFILE" value="false" />
|
||||
<version value="1.0" />
|
||||
</settings>
|
||||
</component>
|
4
.idea/misc.xml
Normal file
4
.idea/misc.xml
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.7 (untitled)" project-jdk-type="Python SDK" />
|
||||
</project>
|
8
.idea/modules.xml
Normal file
8
.idea/modules.xml
Normal file
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/discordbotto.iml" filepath="$PROJECT_DIR$/.idea/discordbotto.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
BIN
__pycache__/configloader.cpython-37.pyc
Normal file
BIN
__pycache__/configloader.cpython-37.pyc
Normal file
Binary file not shown.
BIN
__pycache__/index.cpython-37.pyc
Normal file
BIN
__pycache__/index.cpython-37.pyc
Normal file
Binary file not shown.
BIN
commands/__pycache__/admin.cpython-37.pyc
Normal file
BIN
commands/__pycache__/admin.cpython-37.pyc
Normal file
Binary file not shown.
BIN
commands/__pycache__/help.cpython-37.pyc
Normal file
BIN
commands/__pycache__/help.cpython-37.pyc
Normal file
Binary file not shown.
65
commands/admin.py
Normal file
65
commands/admin.py
Normal file
@ -0,0 +1,65 @@
|
||||
from discord.ext import commands
|
||||
from config import cogs
|
||||
import configloader
|
||||
|
||||
|
||||
class Admin(commands.Cog):
|
||||
def __init__(self, bot):
|
||||
self.bot = bot
|
||||
|
||||
async def cog_check(self, ctx):
|
||||
return await ctx.bot.is_owner(ctx.author)
|
||||
|
||||
@commands.command(description='Shows existing Cogs',
|
||||
usage=f'{configloader.__prefix__}cogs',
|
||||
hidden=True)
|
||||
@commands.cooldown(1, 2, commands.BucketType.user)
|
||||
async def cogs(self, ctx):
|
||||
await ctx.send(cogs.__cogs__)
|
||||
|
||||
@commands.command(name='load',
|
||||
description='Loads a Module',
|
||||
usage=f'{configloader.__prefix__}load <cog>',
|
||||
hidden=True)
|
||||
@commands.cooldown(1, 2, commands.BucketType.user)
|
||||
async def load_cog(self, ctx, cog):
|
||||
try:
|
||||
self.bot.load_extension(f"commands.{cog}")
|
||||
except Exception as err:
|
||||
print(f"{cog} couldn't be loaded")
|
||||
raise err
|
||||
else:
|
||||
await ctx.send(f'{cog} : Successfully loaded')
|
||||
|
||||
@commands.command(name='unload',
|
||||
description='Unloads a Module',
|
||||
usage=f'{configloader.__prefix__}unload <cog>',
|
||||
hidden=True)
|
||||
@commands.cooldown(1, 2, commands.BucketType.user)
|
||||
async def unload_cog(self, ctx, cog):
|
||||
try:
|
||||
self.bot.unload_extension(f"commands.{cog}")
|
||||
except Exception as err:
|
||||
print(f"{cog} : couldn't be unloaded")
|
||||
raise err
|
||||
else:
|
||||
await ctx.send(f'{cog} : Successfully unloaded')
|
||||
|
||||
@commands.command(name='reload',
|
||||
description='Reloads a Module',
|
||||
usage=f'{configloader.__prefix__}reload <cog>',
|
||||
hidden=True)
|
||||
@commands.cooldown(1, 2, commands.BucketType.user)
|
||||
async def reload_cog(self, ctx, cog):
|
||||
try:
|
||||
self.bot.unload_extension(f"commands.{cog}")
|
||||
self.bot.load_extension(f'commands.{cog}')
|
||||
except Exception as err:
|
||||
print(f"'{cog} : couldn't be reloaded")
|
||||
raise err
|
||||
else:
|
||||
await ctx.send(f'{cog} : Successfully reloaded')
|
||||
|
||||
|
||||
def setup(bot):
|
||||
bot.add_cog(Admin(bot))
|
12
commands/help.py
Normal file
12
commands/help.py
Normal file
@ -0,0 +1,12 @@
|
||||
from discord.ext import commands
|
||||
import configloader
|
||||
|
||||
|
||||
class Help(commands.Cog):
|
||||
def __init__(self, bot):
|
||||
pass
|
||||
|
||||
|
||||
def setup(bot):
|
||||
bot.remove_command("help")
|
||||
bot.add_cog(Help(bot))
|
BIN
config/__pycache__/cogs.cpython-37.pyc
Normal file
BIN
config/__pycache__/cogs.cpython-37.pyc
Normal file
Binary file not shown.
BIN
config/__pycache__/config.cpython-37.pyc
Normal file
BIN
config/__pycache__/config.cpython-37.pyc
Normal file
Binary file not shown.
5
config/cogs.py
Normal file
5
config/cogs.py
Normal file
@ -0,0 +1,5 @@
|
||||
__cogs__ = [
|
||||
'commands.admin',
|
||||
'commands.help',
|
||||
'handlers.errorHandling'
|
||||
]
|
4
config/config.py
Normal file
4
config/config.py
Normal file
@ -0,0 +1,4 @@
|
||||
__token__ = "YOUR TOKEN"
|
||||
__prefix__ = "!"
|
||||
__greet_channel__ = "YOUR GREET CHANNEL ID"
|
||||
__api_key__ = ""
|
11
configloader.py
Normal file
11
configloader.py
Normal file
@ -0,0 +1,11 @@
|
||||
from config.cogs import __cogs__
|
||||
from utils import embed
|
||||
|
||||
try:
|
||||
from config.config import __token__, __prefix__, __greet_channel__, __api_key__
|
||||
except ImportError:
|
||||
import os
|
||||
__token__ = os.environ.get('DISCORD_TOKEN')
|
||||
__prefix__ = os.environ.get('DISCORD_PREFIX')
|
||||
__greet_channel__ = os.environ.get('DISCORD_GREET_CHANNEL')
|
||||
__api_key__ = os.environ.get('DISCORD_API_KEY')
|
BIN
db/db.db
Normal file
BIN
db/db.db
Normal file
Binary file not shown.
BIN
handlers/__pycache__/errorHandling.cpython-37.pyc
Normal file
BIN
handlers/__pycache__/errorHandling.cpython-37.pyc
Normal file
Binary file not shown.
41
handlers/errorHandling.py
Normal file
41
handlers/errorHandling.py
Normal file
@ -0,0 +1,41 @@
|
||||
import traceback
|
||||
import sys
|
||||
from discord.ext import commands
|
||||
import discord
|
||||
import configloader
|
||||
|
||||
|
||||
class ErrorHandler(commands.Cog):
|
||||
def __init__(self, bot):
|
||||
self.bot = bot
|
||||
|
||||
@commands.Cog.listener()
|
||||
async def on_command_error(self, ctx, error):
|
||||
bot_app_info = await self.bot.application_info()
|
||||
|
||||
ignore_error = (commands.CommandNotFound, commands.UserInputError)
|
||||
|
||||
if isinstance(error, ignore_error):
|
||||
return
|
||||
elif isinstance(error, commands.CommandOnCooldown):
|
||||
embed = configloader.embed.messageEmbed(f"This command is ratelimited, please try again in",
|
||||
"{:.2f}s".format(error.retry_after),
|
||||
f"{bot_app_info.owner}", f"{bot_app_info.icon_url}")
|
||||
return await ctx.send(embed=embed)
|
||||
elif isinstance(error, commands.NoPrivateMessage):
|
||||
try:
|
||||
embed = configloader.embed.messageEmbed(f"This Command can't be used in Private Messages.",
|
||||
"{:.2f}s".format(ctx.command),
|
||||
f"{bot_app_info.owner}", f"{bot_app_info.icon_url}")
|
||||
return await ctx.author.send(embed=embed)
|
||||
except:
|
||||
pass
|
||||
elif isinstance(error, commands.MissingPermissions):
|
||||
embed = configloader.embed.messageEmbed(f"You don't have Permissions to use this command",
|
||||
"{:.2f}s".format(ctx.command),
|
||||
f"{bot_app_info.owner}", f"{bot_app_info.icon_url}")
|
||||
return await ctx.send(embed=embed)
|
||||
|
||||
|
||||
def setup(bot):
|
||||
bot.add_cog(ErrorHandler(bot))
|
60
index.py
Normal file
60
index.py
Normal file
@ -0,0 +1,60 @@
|
||||
import discord
|
||||
from discord.ext import commands
|
||||
import sqlite3
|
||||
import configloader
|
||||
import random
|
||||
import logging
|
||||
from logging.handlers import RotatingFileHandler
|
||||
|
||||
logger = logging.getLogger('discord')
|
||||
logger.setLevel(logging.WARNING)
|
||||
handler = RotatingFileHandler(filename='logs/bot.log', maxBytes=1024 * 5, backupCount=2, encoding='utf-8', mode='w')
|
||||
handler.setFormatter(logging.Formatter('%(asctime)s:%(levelname)s:%(name)s: %(message)s'))
|
||||
logger.addHandler(handler)
|
||||
|
||||
__version__ = '0.0.1'
|
||||
bot = commands.Bot(command_prefix=configloader.__prefix__)
|
||||
|
||||
|
||||
def Database(db):
|
||||
with sqlite3.connect(db) as con:
|
||||
c = con.cursor()
|
||||
c.execute('''CREATE TABLE IF NOT EXISTS `users` (`name`,`id`, `platform`);''')
|
||||
con.commit()
|
||||
c.close()
|
||||
|
||||
|
||||
@bot.event
|
||||
async def on_ready():
|
||||
bot_app_info = await bot.application_info()
|
||||
print("------------------------------------")
|
||||
print(f"Owner: {bot_app_info.owner}")
|
||||
print(f"Bot-Name: {bot.user.name}")
|
||||
print(f"Bot-ID: {bot.user.id}")
|
||||
print(f"Bot Version: {__version__}")
|
||||
print("------------------------------------")
|
||||
for cog in configloader.__cogs__:
|
||||
try:
|
||||
bot.load_extension(cog)
|
||||
print(f"{cog} loaded")
|
||||
except Exception as err:
|
||||
print(f"Couldn't load cog: {cog}")
|
||||
raise err
|
||||
Database("db/db.db")
|
||||
await bot.change_presence(activity=discord.Activity(type=discord.ActivityType.watching, name="Juicy developing."))
|
||||
|
||||
|
||||
@bot.event
|
||||
async def on_member_join(member):
|
||||
bot_app_info = await bot.application_info()
|
||||
emoji = [':wink:', ':wave:', ':tada:']
|
||||
channel = bot.get_channel(int(configloader.__greet_channel__))
|
||||
guild = member.guild
|
||||
embed = configloader.embed.messageEmbed(f"Willkommen bei {guild.name} {random.choice(emoji)}",
|
||||
f"{member.mention}",
|
||||
f"{bot_app_info.owner}", f"{bot_app_info.icon_url}")
|
||||
await channel.send(embed=embed)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
bot.run(configloader.__token__)
|
10
logs/bot.log
Normal file
10
logs/bot.log
Normal file
@ -0,0 +1,10 @@
|
||||
2020-05-05 11:41:55,808:WARNING:discord.client: PyNaCl is not installed, voice will NOT be supported
|
||||
2020-05-05 11:42:44,589:WARNING:discord.client: PyNaCl is not installed, voice will NOT be supported
|
||||
2020-05-05 12:02:46,688:WARNING:discord.client: PyNaCl is not installed, voice will NOT be supported
|
||||
2020-05-05 12:05:01,635:WARNING:discord.client: PyNaCl is not installed, voice will NOT be supported
|
||||
2020-05-05 12:08:16,694:WARNING:discord.client: PyNaCl is not installed, voice will NOT be supported
|
||||
2020-05-05 12:10:00,026:WARNING:discord.client: PyNaCl is not installed, voice will NOT be supported
|
||||
2020-05-05 12:11:03,303:WARNING:discord.client: PyNaCl is not installed, voice will NOT be supported
|
||||
2020-05-05 12:13:57,539:WARNING:discord.client: PyNaCl is not installed, voice will NOT be supported
|
||||
2020-05-05 12:14:11,853:WARNING:discord.client: PyNaCl is not installed, voice will NOT be supported
|
||||
2020-05-05 12:21:59,614:WARNING:discord.client: PyNaCl is not installed, voice will NOT be supported
|
3
requirements.txt
Normal file
3
requirements.txt
Normal file
@ -0,0 +1,3 @@
|
||||
discord.py
|
||||
pandas
|
||||
requests
|
BIN
utils/__pycache__/embed.cpython-37.pyc
Normal file
BIN
utils/__pycache__/embed.cpython-37.pyc
Normal file
Binary file not shown.
9
utils/embed.py
Normal file
9
utils/embed.py
Normal file
@ -0,0 +1,9 @@
|
||||
import discord
|
||||
from datetime import date
|
||||
|
||||
|
||||
def messageEmbed(title, text, owner, icon):
|
||||
embed = discord.Embed(color=0xffd540)
|
||||
embed.add_field(name=f"{title}", value=f"{text}")
|
||||
embed.set_footer(text=f"© {owner} • {date.today()}", icon_url=f"{icon}")
|
||||
return embed
|
Loading…
Reference in New Issue
Block a user