General Clean Code
This commit is contained in:
@@ -1,2 +1,2 @@
|
||||
from .lyrics import getLyrics
|
||||
from .settings import Settings
|
||||
from .lyrics import lyricsPlatform
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
|
||||
class Settings:
|
||||
def __init__(self, settings: dict) -> None:
|
||||
self.invite_link = "https://discord.gg/wRCgB7vBQv"
|
||||
@@ -15,4 +18,20 @@ class Settings:
|
||||
"port": 8000,
|
||||
"enable": False
|
||||
}
|
||||
)
|
||||
)
|
||||
|
||||
class TOKENS:
|
||||
def __init__(self) -> None:
|
||||
load_dotenv()
|
||||
|
||||
self.token = os.getenv("TOKEN")
|
||||
self.client_id = os.getenv("CLIENT_ID")
|
||||
self.client_secret_id = os.getenv("CLIENT_SECRET_ID")
|
||||
self.sercet_key = os.getenv("SERCET_KEY")
|
||||
self.bug_report_channel_id = int(os.getenv("BUG_REPORT_CHANNEL_ID"))
|
||||
self.spotify_client_id = os.getenv("SPOTIFY_CLIENT_ID")
|
||||
self.spotify_client_secret = os.getenv("SPOTIFY_CLIENT_SECRET")
|
||||
self.youtube_api_key = os.getenv("YOUTUBE_API_KEY")
|
||||
self.genius_token = os.getenv("GENIUS_TOKEN")
|
||||
self.mongodb_url = os.getenv("MONGODB_URL")
|
||||
self.mongodb_name = os.getenv("MONGODB_NAME")
|
||||
@@ -8,9 +8,9 @@ from function import (
|
||||
time as ctime,
|
||||
formatTime,
|
||||
emoji_source,
|
||||
youtube_api_key,
|
||||
requests_api,
|
||||
get_lang,
|
||||
tokens,
|
||||
settings,
|
||||
cooldown_check,
|
||||
get_aliases,
|
||||
@@ -716,7 +716,7 @@ class Basic(commands.Cog):
|
||||
if track.source != 'youtube':
|
||||
return await ctx.send(player.get_msg('chatpersNotSupport'), ephemeral=True)
|
||||
|
||||
request_uri = "https://youtube.googleapis.com/youtube/v3/videos?part=snippet&id={videoId}&key={key}".format(videoId=track.identifier, key=youtube_api_key)
|
||||
request_uri = "https://youtube.googleapis.com/youtube/v3/videos?part=snippet&id={videoId}&key={key}".format(videoId=track.identifier, key=tokens.youtube_api_key)
|
||||
|
||||
data = await requests_api(request_uri)
|
||||
if not data:
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
import voicelink
|
||||
import asyncio
|
||||
import discord
|
||||
import json
|
||||
import function as func
|
||||
|
||||
from os import getenv
|
||||
from discord.ext import commands
|
||||
|
||||
class Nodes(commands.Cog):
|
||||
@@ -22,8 +20,8 @@ class Nodes(commands.Cog):
|
||||
for n in func.settings.nodes.values():
|
||||
try:
|
||||
await self.voicelink.create_node(bot=self.bot,
|
||||
spotify_client_id=getenv('SPOTIFY_CLIENT_ID'),
|
||||
spotify_client_secret=getenv('SPOTIFY_CLIENT_SECRET'),
|
||||
spotify_client_id=func.tokens.spotify_client_id,
|
||||
spotify_client_secret=func.tokens.spotify_client_secret,
|
||||
**n)
|
||||
except:
|
||||
print(f'Node {n["identifier"]} is not able to connect!')
|
||||
|
||||
@@ -22,20 +22,17 @@ from function import (
|
||||
from datetime import datetime
|
||||
from views import PlaylistView, InboxView, HelpView
|
||||
|
||||
|
||||
def assign_playlistId(existed: list) -> str:
|
||||
for i in range(200, 210):
|
||||
if str(i) not in existed:
|
||||
return str(i)
|
||||
|
||||
|
||||
async def check_playlist_perms(userid: int, authorid: int, dId: str) -> dict:
|
||||
playlist = await get_playlist(authorid, 'playlist', dId)
|
||||
if not playlist or userid not in playlist['perms']['read']:
|
||||
return {}
|
||||
return playlist
|
||||
|
||||
|
||||
async def check_playlist(ctx: commands.Context, name: str = None, full: bool = False, share: bool = True) -> dict:
|
||||
user = await get_playlist(ctx.author.id, 'playlist')
|
||||
if not user:
|
||||
@@ -56,7 +53,6 @@ async def check_playlist(ctx: commands.Context, name: str = None, full: bool = F
|
||||
return {'playlist': playlist, 'position': index, 'id': data}
|
||||
return {'playlist': None, 'position': None, 'id': None}
|
||||
|
||||
|
||||
async def search_playlist(url: str, requester: discord.Member, timeNeed=True):
|
||||
try:
|
||||
tracks = await voicelink.NodePool.get_node().get_tracks(url, requester=requester)
|
||||
|
||||
27
function.py
27
function.py
@@ -5,14 +5,13 @@ import os
|
||||
|
||||
from importlib import import_module
|
||||
from discord.ext import commands
|
||||
from dotenv import load_dotenv
|
||||
from random import choice
|
||||
from datetime import datetime
|
||||
from time import strptime
|
||||
from io import BytesIO
|
||||
from pymongo import MongoClient
|
||||
from typing import Optional, Union
|
||||
from addons import Settings
|
||||
from addons import Settings, TOKENS
|
||||
|
||||
root_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
@@ -20,29 +19,22 @@ if not os.path.exists(os.path.join(root_dir, "settings.json")):
|
||||
raise Exception("Settings file not set!")
|
||||
|
||||
#-------------- API Clients --------------
|
||||
load_dotenv() #Load .env settings
|
||||
MONGODB_NAME = os.getenv('MONGODB_NAME')
|
||||
MONGODB_URL = os.getenv('MONGODB_URL')
|
||||
if not (MONGODB_NAME and MONGODB_URL):
|
||||
tokens: TOKENS = TOKENS();
|
||||
|
||||
if not (tokens.mongodb_name and tokens.mongodb_url):
|
||||
raise Exception("MONGODB_NAME and MONGODB_URL can't not be empty in .env")
|
||||
|
||||
try:
|
||||
mongodb = MongoClient(host=MONGODB_URL, serverSelectionTimeoutMS=5000)
|
||||
mongodb = MongoClient(host=tokens.mongodb_url, serverSelectionTimeoutMS=5000)
|
||||
mongodb.server_info()
|
||||
print("Successfully connected to MongoDB!")
|
||||
except Exception as e:
|
||||
raise Exception("Not able to connect MongoDB! Reason:", e)
|
||||
|
||||
collection = mongodb[MONGODB_NAME]['Settings']
|
||||
Playlist = mongodb[MONGODB_NAME]['Playlist']
|
||||
youtube_api_key = os.getenv('YOUTUBE_API_KEY')
|
||||
collection = mongodb[tokens.mongodb_name]['Settings']
|
||||
Playlist = mongodb[tokens.mongodb_name]['Playlist']
|
||||
|
||||
#--------------- Cache Var ---------------
|
||||
try:
|
||||
report_channel_id = int(os.getenv("BUG_REPORT_CHANNEL_ID"))
|
||||
except:
|
||||
report_channel_id = 0
|
||||
|
||||
settings: Settings
|
||||
error_log = {} #Stores error that not a Voicelink Exception
|
||||
langs = {} #Stores all the languages in ./langs
|
||||
@@ -50,7 +42,6 @@ guild_settings = {} #Cache guild language
|
||||
local_langs = {} #Stores all the localization languages in ./local_langs
|
||||
playlist_name = {} #Cache the user's playlist name
|
||||
|
||||
|
||||
#-------------- Vocard Functions --------------
|
||||
def get_settings(guild_id:int):
|
||||
settings = guild_settings.get(guild_id, None)
|
||||
@@ -178,7 +169,7 @@ async def similar_track(player) -> bool:
|
||||
if randomTrack.source != 'youtube':
|
||||
return False
|
||||
|
||||
if not youtube_api_key:
|
||||
if not tokens.youtube_api_key:
|
||||
return False
|
||||
|
||||
request_url = "https://youtube.googleapis.com/youtube/v3/search?part={part}&relatedToVideoId={videoId}&type={type}&videoCategoryId={videoCategoryId}&key={key}".format(
|
||||
@@ -186,7 +177,7 @@ async def similar_track(player) -> bool:
|
||||
videoId=randomTrack.identifier,
|
||||
type="video",
|
||||
videoCategoryId="10",
|
||||
key=youtube_api_key
|
||||
key=tokens.youtube_api_key
|
||||
)
|
||||
|
||||
try:
|
||||
|
||||
8
main.py
8
main.py
@@ -8,11 +8,9 @@ import function as func
|
||||
|
||||
from discord.ext import commands
|
||||
from web import IPCServer
|
||||
from dotenv import load_dotenv
|
||||
from datetime import datetime
|
||||
from voicelink import VoicelinkException
|
||||
|
||||
load_dotenv()
|
||||
func.init()
|
||||
|
||||
class Translator(discord.app_commands.Translator):
|
||||
@@ -35,7 +33,7 @@ class Vocard(commands.Bot):
|
||||
self,
|
||||
host=func.settings.ipc_server["host"],
|
||||
port=func.settings.ipc_server["port"],
|
||||
sercet_key=os.getenv("SERCET_KEY")
|
||||
sercet_key=func.tokens.sercet_key
|
||||
)
|
||||
|
||||
async def on_message(self, message: discord.Message, /) -> None:
|
||||
@@ -72,6 +70,8 @@ class Vocard(commands.Bot):
|
||||
print(f"Python Version: {sys.version}")
|
||||
print("------------------")
|
||||
|
||||
func.tokens.client_id = self.user.id
|
||||
|
||||
async def on_command_error(self, ctx: commands.Context, exception, /) -> None:
|
||||
error = getattr(exception, 'original', exception)
|
||||
if ctx.interaction:
|
||||
@@ -130,4 +130,4 @@ bot = Vocard(command_prefix=get_prefix,
|
||||
|
||||
if __name__ == "__main__":
|
||||
update.checkVersion(withMsg=True)
|
||||
bot.run(os.getenv("TOKEN"), log_handler=None)
|
||||
bot.run(func.tokens.token, log_handler=None)
|
||||
@@ -24,7 +24,6 @@ SOFTWARE.
|
||||
import discord
|
||||
from discord.ext import commands
|
||||
|
||||
from os import getenv
|
||||
import function as func
|
||||
|
||||
class HelpDropdown(discord.ui.Select):
|
||||
@@ -59,7 +58,7 @@ class HelpView(discord.ui.View):
|
||||
self.categorys = [ name.capitalize() for name, cog in bot.cogs.items() if len([c for c in cog.walk_commands()]) ]
|
||||
|
||||
self.add_item(discord.ui.Button(label='Support', emoji=':support:915152950471581696', url=func.settings.invite_link))
|
||||
self.add_item(discord.ui.Button(label='Invite', emoji=':invite:915152589056790589', url='https://discord.com/oauth2/authorize?client_id={}&permissions=2184260928&scope=bot%20applications.commands'.format(getenv('CLIENT_ID'))))
|
||||
self.add_item(discord.ui.Button(label='Invite', emoji=':invite:915152589056790589', url='https://discord.com/oauth2/authorize?client_id={}&permissions=2184260928&scope=bot%20applications.commands'.format(func.tokens.client_id)))
|
||||
self.add_item(discord.ui.Button(label='Github', url='https://github.com/ChocoMeow/Vocard'))
|
||||
self.add_item(discord.ui.Button(label='Donate', emoji=':patreon:913397909024800878', url='https://www.patreon.com/Vocard'))
|
||||
self.add_item(HelpDropdown(self.categorys))
|
||||
|
||||
@@ -24,14 +24,14 @@ SOFTWARE.
|
||||
from __future__ import annotations
|
||||
|
||||
import asyncio
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
import aiohttp
|
||||
|
||||
from discord import Client, Member
|
||||
from typing import Dict, Optional, TYPE_CHECKING, Union
|
||||
from urllib.parse import quote
|
||||
|
||||
import aiohttp
|
||||
from discord import Client, Member
|
||||
import function as func
|
||||
|
||||
|
||||
from . import (
|
||||
@@ -122,7 +122,7 @@ class Node:
|
||||
|
||||
self._headers = {
|
||||
"Authorization": self._password,
|
||||
"User-Id": str(os.getenv('CLIENT_ID')),
|
||||
"User-Id": str(func.tokens.client_id),
|
||||
"Client-Name": f"Voicelink/{__version__}",
|
||||
'Resume-Key': self.resume_key
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user