From 41885e9228272db59b3a173a83d43ca6137163c1 Mon Sep 17 00:00:00 2001 From: Jocadbz Date: Thu, 12 Jan 2023 14:12:58 -0300 Subject: [PATCH] feat: Add main source code --- src/main.py | 199 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 199 insertions(+) create mode 100644 src/main.py diff --git a/src/main.py b/src/main.py new file mode 100644 index 0000000..9d289ff --- /dev/null +++ b/src/main.py @@ -0,0 +1,199 @@ +# Code written by Jocadbz(madureirajoaquim95@gmail.com) +# Code revised by BodgeMaster +# Code Licensed under GPL 3.0 + +import discord +from discord import app_commands +import typing +from discord.ext import commands +import discord.utils +import psutil +import time +from sys import platform + + +def seconds_elapsed(): + return time.time() - psutil.boot_time() + + +class MyClient(discord.Client): + def __init__(self, *, intents: discord.Intents): + super().__init__(intents=intents) + self.tree = app_commands.CommandTree(self) + + async def setup_hook(self): + await self.tree.sync() + + +intents = discord.Intents.default() +client = MyClient(intents=intents) +bot = commands.Bot(command_prefix='lb!', intents=intents) + + +@client.event +async def on_ready(): + print(f'Logged in as {client.user} (ID: {client.user.id})') + print('------') + + +@client.tree.command(name="change_hostname") +@app_commands.describe(distro='Assign yourself a role') +async def distro(interaction: discord.Interaction, distro: typing.Literal['LFS', 'Kiss', 'Gentoo', 'Void', 'NixOS', 'Alpine', 'Arch', 'Arch-based', 'Red Hat', 'Bedrock', 'SuSE Based', 'OpenSuSE', + 'Debian', 'Debian based', 'Solus', 'Fedora', 'Ubuntu', 'Ubuntu Based', 'BSD', 'MacOS', 'Windows']): + user = interaction.user + if distro == 'LFS': + user = interaction.user + role = discord.utils.get(user.guild.roles, id=813200239778856971) + await user.add_roles(role) + await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') + print(f"`{role}` assigned to {user.mention}.") + if distro == 'Kiss': + user = interaction.user + role = discord.utils.get(user.guild.roles, id=884819839212982342) + await user.add_roles(role) + await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') + print(f"`{role}` assigned to {user.mention}.") + if distro == 'Gentoo': + user = interaction.user + role = discord.utils.get(user.guild.roles, id=1813139495049232384) + await user.add_roles(role) + await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') + print(f"`{role}` assigned to {user.mention}.") + if distro == 'Void': + user = interaction.user + role = discord.utils.get(user.guild.roles, id=813139633797988394) + await user.add_roles(role) + await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') + print(f"`{role}` assigned to {user.mention}.") + if distro == 'NixOS': + user = interaction.user + role = discord.utils.get(user.guild.roles, id=827228988585279538) + await user.add_roles(role) + await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') + print(f"`{role}` assigned to {user.mention}.") + if distro == 'Alpine': + user = interaction.user + role = discord.utils.get(user.guild.roles, id=932684264967925850) + await user.add_roles(role) + await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') + print(f"`{role}` assigned to {user.mention}.") + if distro == 'Arch': + user = interaction.user + role = discord.utils.get(user.guild.roles, id=813139868678225991) + await user.add_roles(role) + await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') + print(f"`{role}` assigned to {user.mention}.") + if distro == 'Arch-based': + user = interaction.user + role = discord.utils.get(user.guild.roles, id=813186782534828043) + await user.add_roles(role) + await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') + print(f"`{role}` assigned to {user.mention}.") + if distro == 'Red Hat': + user = interaction.user + role = discord.utils.get(user.guild.roles, id=816823482318979094) + await user.add_roles(role) + await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') + print(f"`{role}` assigned to {user.mention}.") + if distro == 'Bedrock': + user = interaction.user + role = discord.utils.get(user.guild.roles, id=825427559604027412) + await user.add_roles(role) + await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') + print(f"`{role}` assigned to {user.mention}.") + if distro == 'SuSE Based': + user = interaction.user + role = discord.utils.get(user.guild.roles, id=1034793985715224587) + await user.add_roles(role) + await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') + print(f"`{role}` assigned to {user.mention}.") + if distro == 'OpenSuSE': + user = interaction.user + role = discord.utils.get(user.guild.roles, id=813147179367661589) + await user.add_roles(role) + await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') + print(f"`{role}` assigned to {user.mention}.") + if distro == 'Debian': + user = interaction.user + role = discord.utils.get(user.guild.roles, id=813142935247388672) + await user.add_roles(role) + await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') + print(f"`{role}` assigned to {user.mention}.") + if distro == 'Debian based': + user = interaction.user + role = discord.utils.get(user.guild.roles, id=842882283504926756) + await user.add_roles(role) + await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') + print(f"`{role}` assigned to {user.mention}.") + if distro == 'Solus': + user = interaction.user + role = discord.utils.get(user.guild.roles, id=820840553704325160) + await user.add_roles(role) + await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') + print(f"`{role}` assigned to {user.mention}.") + if distro == 'Fedora': + user = interaction.user + role = discord.utils.get(user.guild.roles, id=820621219040591884) + await user.add_roles(role) + await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') + print(f"`{role}` assigned to {user.mention}.") + if distro == 'Ubuntu': + user = interaction.user + role = discord.utils.get(user.guild.roles, id=813139746180038697) + await user.add_roles(role) + await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') + print(f"`{role}` assigned to {user.mention}.") + if distro == 'Ubuntu Based': + user = interaction.user + role = discord.utils.get(user.guild.roles, id=813581408052183042) + await user.add_roles(role) + await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') + print(f"`{role}` assigned to {user.mention}.") + if distro == 'BSD': + user = interaction.user + role = discord.utils.get(user.guild.roles, id=879444277330055228) + await user.add_roles(role) + await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') + print(f"`{role}` assigned to {user.mention}.") + if distro == 'MacOS': + user = interaction.user + role = discord.utils.get(user.guild.roles, id=813147204772167680) + await user.add_roles(role) + await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') + print(f"`{role}` assigned to {user.mention}.") + if distro == 'Windows': + user = interaction.user + role = discord.utils.get(user.guild.roles, id=813147019631788083) + await user.add_roles(role) + await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') + print(f"`{role}` assigned to {user.mention}.") + + +# This context menu command only works on messages +@client.tree.context_menu(name='Report to Moderators') +async def report_message(interaction: discord.Interaction, message: discord.Message): + await interaction.response.send_message( + f'Thanks for reporting this message by {message.author.mention} to our moderators.', ephemeral=True + ) + log_channel = interaction.guild.get_channel(929345959501115422) # replace with your channel id + embed = discord.Embed(title='Reported Message') + if message.content: + embed.description = message.content + embed.set_author(name=message.author.display_name, icon_url=message.author.display_avatar.url) + embed.timestamp = message.created_at + url_view = discord.ui.View() + url_view.add_item(discord.ui.Button(label='Go to Message', style=discord.ButtonStyle.url, url=message.jump_url)) + await log_channel.send(embed=embed, view=url_view) + + +@client.tree.command(name="status") +async def status(interaction: discord.Interaction): + embed = discord.Embed(title='System Stats') + embed.description = f"""Uptime: {seconds_elapsed()} +System: {platform}""" + url_view = discord.ui.View() + await interaction.response.send_message(embed=embed, view=url_view) + + +client.tree.sync() +client.run('TOKEN')