2020-10-28 11:47:39 +00:00
|
|
|
import discord
|
|
|
|
import os
|
|
|
|
import time
|
2020-11-21 12:38:59 +00:00
|
|
|
import logscript
|
|
|
|
import re
|
2020-10-28 11:47:39 +00:00
|
|
|
|
2020-11-21 13:44:46 +00:00
|
|
|
from unicode import *
|
2020-10-28 12:23:49 +00:00
|
|
|
from datetime import datetime
|
2020-10-28 11:47:39 +00:00
|
|
|
from discord.ext import commands
|
|
|
|
from dotenv import load_dotenv
|
2020-11-21 12:38:59 +00:00
|
|
|
from checks import *
|
|
|
|
from functions import *
|
|
|
|
|
|
|
|
print = logscript.logging.getLogger().critical
|
2020-10-28 11:47:39 +00:00
|
|
|
|
|
|
|
load_dotenv()
|
|
|
|
botToken = os.getenv('botToken')
|
|
|
|
|
|
|
|
intents = discord.Intents.all()
|
2020-12-02 21:59:01 +00:00
|
|
|
bot = commands.Bot(command_prefix=os.getenv('prefix'),
|
|
|
|
description='TotalFreedom bot help command', intents=intents)
|
2020-10-28 11:47:39 +00:00
|
|
|
|
2020-11-21 12:38:59 +00:00
|
|
|
|
2020-10-28 11:47:39 +00:00
|
|
|
extensions = [
|
2020-10-28 12:23:49 +00:00
|
|
|
"commands.moderation",
|
|
|
|
"commands.server_commands",
|
2020-10-28 11:47:39 +00:00
|
|
|
"commands.help",
|
2020-10-28 12:23:49 +00:00
|
|
|
"commands.miscellaneous",
|
|
|
|
"events"
|
2020-10-28 11:47:39 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
for extension in extensions:
|
|
|
|
try:
|
|
|
|
bot.load_extension(extension)
|
2020-12-02 21:59:01 +00:00
|
|
|
print(
|
|
|
|
f"[{str(datetime.utcnow().replace(microsecond=0))[11:]} INFO]: [Extensions] {extension} loaded successfully")
|
2020-10-28 11:47:39 +00:00
|
|
|
except Exception as e:
|
2020-12-02 21:59:01 +00:00
|
|
|
print(
|
|
|
|
f"[{str(datetime.utcnow().replace(microsecond=0))[11:]} INFO]: [Extensions] {extension} didn't load {e}")
|
2020-10-28 11:47:39 +00:00
|
|
|
|
2020-11-21 12:38:59 +00:00
|
|
|
|
|
|
|
@bot.event
|
|
|
|
async def on_message(message):
|
|
|
|
if message.guild and message.author is message.guild.me and message.channel.id == reports_channel_id:
|
|
|
|
await message.add_reaction(clipboard)
|
|
|
|
if message.type == discord.MessageType.new_member:
|
|
|
|
if re.search('discord\.gg\/[a-zA-z0-9\-]{1,16}', message.author.name.lower()) or re.search('discordapp\.com\/invite\/[a-z0-9]+/ig', message.author.name.lower()):
|
|
|
|
await message.author.ban(reason="Name is an invite link.")
|
|
|
|
await message.delete()
|
|
|
|
bypass_roles = [discord_admin, discord_mod]
|
|
|
|
bypass = False
|
|
|
|
if message.author != bot.user:
|
|
|
|
for role in message.author.roles:
|
|
|
|
if role.id in bypass_roles:
|
|
|
|
bypass = True
|
|
|
|
else:
|
2020-12-02 21:59:01 +00:00
|
|
|
if 'Server has started' in message.content: # Telnet reconnect script
|
2020-11-21 12:38:59 +00:00
|
|
|
try:
|
|
|
|
bot.telnet_object.connect()
|
|
|
|
except Exception as e:
|
|
|
|
print(f'Failed to reconnect telnet: {e}')
|
|
|
|
time.sleep(5)
|
|
|
|
try:
|
|
|
|
bot.telnet_object.connect()
|
|
|
|
except Exception as fuckup:
|
2020-12-02 21:59:01 +00:00
|
|
|
print(
|
|
|
|
f'Second attempt failed to reconnect telnet: {fuckup}')
|
2020-11-21 12:38:59 +00:00
|
|
|
if not bypass:
|
|
|
|
if re.search('discord\.gg\/[a-zA-z0-9\-]{1,16}', message.content) or re.search('discordapp\.com\/invite\/[a-z0-9]+/ig', message.content):
|
|
|
|
await message.delete()
|
|
|
|
await message.channel.send(f"{message.author.mention} do not post invite links to other discord servers.")
|
2020-12-02 21:59:01 +00:00
|
|
|
|
2020-11-21 12:38:59 +00:00
|
|
|
if message.content.lower().startswith(os.getenv('prefix')):
|
|
|
|
await bot.process_commands(message)
|
|
|
|
|
2020-10-28 12:23:49 +00:00
|
|
|
bot.run(botToken)
|