edditing code
This commit is contained in:
7
.idea/discord.xml
generated
Normal file
7
.idea/discord.xml
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="DiscordProjectSettings">
|
||||
<option name="show" value="PROJECT_FILES" />
|
||||
<option name="description" value="" />
|
||||
</component>
|
||||
</project>
|
||||
25
.idea/jsonSchemas.xml
generated
Normal file
25
.idea/jsonSchemas.xml
generated
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="JsonSchemaMappingsProjectConfiguration">
|
||||
<state>
|
||||
<map>
|
||||
<entry key="JSON Schema version 4">
|
||||
<value>
|
||||
<SchemaInfo>
|
||||
<option name="name" value="JSON Schema version 4" />
|
||||
<option name="relativePathToSchema" value="http://json-schema.org/draft-04/schema" />
|
||||
<option name="applicationDefined" value="true" />
|
||||
<option name="patterns">
|
||||
<list>
|
||||
<Item>
|
||||
<option name="path" value="prefix.json" />
|
||||
</Item>
|
||||
</list>
|
||||
</option>
|
||||
</SchemaInfo>
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</state>
|
||||
</component>
|
||||
</project>
|
||||
64
cogs/admin.py
Normal file
64
cogs/admin.py
Normal file
@@ -0,0 +1,64 @@
|
||||
import logging
|
||||
from asyncio import sleep
|
||||
|
||||
import disnake
|
||||
|
||||
from disnake.ext import commands, tasks
|
||||
|
||||
from lib.Comands import read_json
|
||||
from lib.DB import fill_bd, prepare_db
|
||||
|
||||
|
||||
class Admin(commands.Cog, name='Admin'):
|
||||
def __init__(self, bot):
|
||||
self.bot = bot # defining bot as global var in class
|
||||
# self.activity.start()
|
||||
|
||||
@commands.Cog.listener() # this is a decorator for events/listeners
|
||||
async def on_ready(self):
|
||||
for g in self.bot.get_all_members():
|
||||
await prepare_db(g.guild.id)
|
||||
for g in self.bot.get_all_members():
|
||||
await fill_bd(g.name, g.id, g.bot, g.nick, g.guild.id)
|
||||
|
||||
logging.info(f'Cog {__name__.split(".")[1]} is ready!.')
|
||||
|
||||
@tasks.loop(seconds=20)
|
||||
async def activity(self):
|
||||
await self.bot.change_presence(
|
||||
activity=disnake.Activity(
|
||||
name=f'Users: {str(len(self.bot.users))}',
|
||||
type=3
|
||||
)
|
||||
)
|
||||
await sleep(10)
|
||||
await self.bot.change_presence(
|
||||
activity=disnake.Activity(
|
||||
name=f'Servers: {str(len(self.bot.guilds))}',
|
||||
type=3
|
||||
)
|
||||
)
|
||||
|
||||
@commands.Cog.listener()
|
||||
async def on_guild_join(self, guild):
|
||||
for g in guild.members:
|
||||
await fill_bd(g.name, g.id, g.bot, g.nick, guild.id)
|
||||
|
||||
@commands.Cog.listener()
|
||||
async def on_member_join(self, member):
|
||||
await fill_bd(member.name, member.id, member.bot, member.nick, member.guild.id)
|
||||
|
||||
bot_role = read_json(member.guild.id, 'bot_role') # Get bot role
|
||||
guest_role = read_json(member.guild.id, 'guest_role') # Get guest role
|
||||
|
||||
if bot_role or guest_role:
|
||||
if member.bot == 0:
|
||||
role = disnake.utils.get(member.guild.roles, id=guest_role)
|
||||
else:
|
||||
role = disnake.utils.get(member.guild.roles, id=bot_role)
|
||||
logging.info(f"Adding to {member} role {role}")
|
||||
await member.add_roles(role)
|
||||
|
||||
|
||||
def setup(bot): # an extension must have a setup function
|
||||
bot.add_cog(Admin(bot)) # adding a cog
|
||||
@@ -1,4 +1,5 @@
|
||||
import logging
|
||||
import random
|
||||
import tempfile
|
||||
from os import path, makedirs, rename, remove
|
||||
|
||||
@@ -23,16 +24,6 @@ class Audio(commands.Cog):
|
||||
# Read audio from DB
|
||||
audio_db = await read_db(member.guild.id, member.id, 'usertracks')
|
||||
def_audio_db = await read_db(member.guild.id, member.id, 'defaulttracks')
|
||||
print(f'Trigger role: {_role}')
|
||||
print(f' Memder roles {member.roles}')
|
||||
print(role.id in _role for role in member.roles)
|
||||
|
||||
print(f'Audio DB: {audio_db}')
|
||||
print(f'Def audio DB: {def_audio_db}')
|
||||
print(f' Memder is bot {member.bot}')
|
||||
print(f' Before channel {before.channel}')
|
||||
print('------------------------------------------')
|
||||
|
||||
if audio_db is not None:
|
||||
audio_db = audio_db.split(', ') # Need to fix creating list
|
||||
for i in range(len(audio_db)):
|
||||
@@ -45,16 +36,16 @@ class Audio(commands.Cog):
|
||||
if def_audio_db or audio_db is not None:
|
||||
if def_audio_db is None: def_audio_db = []
|
||||
if audio_db is None: audio_db = []
|
||||
print(audio_db, def_audio_db)
|
||||
logging.info(f'Play audio from DB')
|
||||
full_audio = def_audio_db + audio_db
|
||||
|
||||
if not self.bot.voice_clients:
|
||||
await play_audio(full_audio, self.bot, after.channel)
|
||||
elif (role.id in _role for role in member.roles):
|
||||
audio = random.choice(full_audio)
|
||||
await play_audio(audio, self.bot, after.channel)
|
||||
elif len(member.roles) == 1 or _role is None:
|
||||
logging.info(f'Skip playing')
|
||||
elif any(str(role.id) in _role for role in member.roles):
|
||||
logging.info(f'Play audio from list by role')
|
||||
if not self.bot.voice_clients:
|
||||
await play_audio(def_audio_ls, self.bot, after.channel)
|
||||
audio = random.choice(def_audio_ls)
|
||||
await play_audio(audio, self.bot, after.channel)
|
||||
else:
|
||||
logging.info(f'Skip playing')
|
||||
|
||||
|
||||
16
cogs/fun.py
Normal file
16
cogs/fun.py
Normal file
@@ -0,0 +1,16 @@
|
||||
import logging
|
||||
|
||||
from disnake.ext import commands
|
||||
|
||||
|
||||
class Fun(commands.Cog, name='Fun'):
|
||||
def __init__(self, bot):
|
||||
self.bot = bot # defining bot as global var in class
|
||||
|
||||
@commands.Cog.listener() # this is a decorator for events/listeners
|
||||
async def on_ready(self):
|
||||
logging.info(f'Cog {__name__.split(".")[1]} is ready!.')
|
||||
|
||||
|
||||
def setup(bot): # an extension must have a setup function
|
||||
bot.add_cog(Fun(bot)) # adding a cog
|
||||
@@ -4,8 +4,8 @@ import disnake
|
||||
from disnake import Option, OptionType, Colour
|
||||
from disnake.ext import commands
|
||||
|
||||
from lib.Comands import read_json, write_json
|
||||
from lib.DB import fill_bd, prepare_db, work_with_db, read_db
|
||||
from lib.Comands import write_json
|
||||
from lib.DB import work_with_db, read_db
|
||||
|
||||
|
||||
class General(commands.Cog):
|
||||
@@ -14,33 +14,8 @@ class General(commands.Cog):
|
||||
|
||||
@commands.Cog.listener() # this is a decorator for events/listeners
|
||||
async def on_ready(self):
|
||||
for g in self.bot.get_all_members():
|
||||
await prepare_db(g.guild.id)
|
||||
for g in self.bot.get_all_members():
|
||||
await fill_bd(g.name, g.id, g.bot, g.nick, g.guild.id)
|
||||
|
||||
logging.info(f'Cog {__name__.split(".")[1]} is ready!.')
|
||||
|
||||
@commands.Cog.listener()
|
||||
async def on_guild_join(self, guild):
|
||||
for g in guild.members:
|
||||
await fill_bd(g.name, g.id, g.bot, g.nick, guild.id)
|
||||
|
||||
@commands.Cog.listener()
|
||||
async def on_member_join(self, member):
|
||||
await fill_bd(member.name, member.id, member.bot, member.nick, member.guild.id)
|
||||
|
||||
bot_role = read_json(member.guild.id, 'bot_role') # Get bot role
|
||||
guest_role = read_json(member.guild.id, 'guest_role') # Get guest role
|
||||
|
||||
if bot_role or guest_role:
|
||||
if member.bot == 0:
|
||||
role = disnake.utils.get(member.guild.roles, id=guest_role)
|
||||
else:
|
||||
role = disnake.utils.get(member.guild.roles, id=bot_role)
|
||||
logging.info(f"Adding to {member} role {role}")
|
||||
await member.add_roles(role)
|
||||
|
||||
@commands.Cog.listener()
|
||||
async def on_member_update(self, before: disnake.Member, after: disnake.Member):
|
||||
sql_update_query = f"""UPDATE "{after.guild.id}" set nick = ? where userid = ?"""
|
||||
|
||||
@@ -17,7 +17,7 @@ async def list_files(fold: str = 'audio'):
|
||||
return fl[2]
|
||||
|
||||
|
||||
async def read_json(guild: int, _param: str) -> int or str:
|
||||
async def read_json(guild: int, _param: str):
|
||||
"""
|
||||
Reads Json file to determite config strings
|
||||
:param guild: ID of Guild
|
||||
@@ -25,6 +25,7 @@ async def read_json(guild: int, _param: str) -> int or str:
|
||||
:return: value of parameter
|
||||
"""
|
||||
with open('prefix.json', 'r', encoding='utf-8') as fp: # Open the JSON
|
||||
parameter = None
|
||||
try:
|
||||
_json = json.load(fp) # Load the custom prefixes
|
||||
except TypeError:
|
||||
@@ -35,10 +36,9 @@ async def read_json(guild: int, _param: str) -> int or str:
|
||||
try:
|
||||
parameter = guild_conf[f"{_param}"]
|
||||
except:
|
||||
parameter = None
|
||||
pass
|
||||
except:
|
||||
pass
|
||||
|
||||
return parameter
|
||||
|
||||
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
import logging
|
||||
import random
|
||||
from asyncio import sleep
|
||||
|
||||
from disnake import FFmpegPCMAudio
|
||||
|
||||
|
||||
async def play_audio(full_audio, bot, vc):
|
||||
async def play_audio(audio, bot, vc):
|
||||
if not bot.voice_clients:
|
||||
audio = random.choice(full_audio)
|
||||
logging.info(audio)
|
||||
logging.error(f'Playing: {audio}')
|
||||
await sleep(1)
|
||||
vp = await vc.connect()
|
||||
|
||||
9
test.py
9
test.py
@@ -13,16 +13,19 @@ if not path.isfile('prefix.json'):
|
||||
with open('prefix.json', 'w+', encoding='utf-8') as f:
|
||||
f.write("")
|
||||
|
||||
intents = disnake.Intents(messages=True, guilds=True, message_content=True, voice_states=True, members=True)
|
||||
intents = disnake.Intents(messages=True,
|
||||
guilds=True,
|
||||
message_content=True,
|
||||
voice_states=True,
|
||||
members=True)
|
||||
|
||||
bot = commands.Bot(command_prefix=determine_prefix,
|
||||
intents=intents,
|
||||
status=disnake.Status.idle,
|
||||
reload=True,
|
||||
test_guilds=[929446191270330410, 987120286933602354])
|
||||
|
||||
logging.basicConfig(stream=sys.stdout, filemode='w', level='INFO',
|
||||
format='%(asctime)s - %(levelname)s - %(threadName)s - %(message)s')
|
||||
format='%(asctime)s - %(levelname)s - %(module)s - %(message)s')
|
||||
|
||||
for filename in cog_list():
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user