スラッシュコマンドテスト用
This commit is contained in:
parent
99fd556319
commit
71ca2c0cda
1 changed files with 142 additions and 0 deletions
142
dislocker_slash.py
Normal file
142
dislocker_slash.py
Normal file
|
@ -0,0 +1,142 @@
|
||||||
|
import discord
|
||||||
|
import os
|
||||||
|
import json
|
||||||
|
import psycopg2
|
||||||
|
import datetime
|
||||||
|
import asyncio
|
||||||
|
|
||||||
|
class DL():
|
||||||
|
def __init__(self):
|
||||||
|
self.config_dir_path = "./config/"
|
||||||
|
self.export_dir_path = "./export/"
|
||||||
|
self.log_dir_path = "./log/"
|
||||||
|
self.server_config_path = self.config_dir_path + "server.json"
|
||||||
|
self.onetime_config_path = self.config_dir_path + "onetime.json"
|
||||||
|
self.log_path = self.log_dir_path + "dislocker.txt"
|
||||||
|
try:
|
||||||
|
if not os.path.isdir(self.config_dir_path):
|
||||||
|
print("config ディレクトリが見つかりません... 作成します。")
|
||||||
|
os.mkdir(self.config_dir_path)
|
||||||
|
|
||||||
|
if not os.path.isfile(self.server_config_path):
|
||||||
|
print("config ファイルが見つかりません... 作成します。")
|
||||||
|
self.server_config = {
|
||||||
|
"db": {
|
||||||
|
"host": "localhost",
|
||||||
|
"port": "5432",
|
||||||
|
"db_name": "dislocker",
|
||||||
|
"username": "user",
|
||||||
|
"password": "password"
|
||||||
|
},
|
||||||
|
"bot": {
|
||||||
|
"token": "TYPE HERE BOTS TOKEN KEY",
|
||||||
|
"activity": {
|
||||||
|
"name": "Dislocker",
|
||||||
|
"details": "ロック中...",
|
||||||
|
"type": "playing",
|
||||||
|
"state": "ロック中..."
|
||||||
|
},
|
||||||
|
"log_channel_id" : "TYPE HERE CHANNEL ID (YOU MUST USE INT !!!!)",
|
||||||
|
"config_channel_id": "TYPE HERE CHANNEL ID (YOU MUST USE INT !!!!)",
|
||||||
|
"config_public_channel_id": "TYPE HERE CHANNEL ID (YOU MUST USE INT !!!!)",
|
||||||
|
"monitor": {
|
||||||
|
"search_frequency": 1,
|
||||||
|
"allowable_time": 180,
|
||||||
|
"fstop_time": "21:00:00"
|
||||||
|
},
|
||||||
|
"preset_games": ["TEST1", "TEST2", "TEST3", "TEST4", "TEST5"],
|
||||||
|
"admin_user_id": "TYPE HERE CHANNEL ID (YOU MUST USE INT !!!!)",
|
||||||
|
"debug": False
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
with open(self.server_config_path, "w", encoding="utf-8") as w:
|
||||||
|
json.dump(self.server_config, w, indent=4, ensure_ascii=False)
|
||||||
|
|
||||||
|
|
||||||
|
elif os.path.isfile(self.server_config_path):
|
||||||
|
with open(self.server_config_path, "r", encoding="utf-8") as r:
|
||||||
|
self.server_config = json.load(r)
|
||||||
|
print("config ファイルを読み込みました。")
|
||||||
|
|
||||||
|
|
||||||
|
if not os.path.isdir(self.export_dir_path):
|
||||||
|
print("export ディレクトリが見つかりません... 作成します。")
|
||||||
|
os.mkdir(self.export_dir_path)
|
||||||
|
|
||||||
|
if not os.path.isdir(self.log_dir_path):
|
||||||
|
print("log ディレクトリが見つかりません... 作成します。")
|
||||||
|
os.mkdir(self.log_dir_path)
|
||||||
|
|
||||||
|
|
||||||
|
self.init_result = "ok"
|
||||||
|
|
||||||
|
except (Exception) as error:
|
||||||
|
print("初回処理でエラーが発生しました。\nエラー内容\n" + str(error))
|
||||||
|
self.init_result = "error"
|
||||||
|
|
||||||
|
finally:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def log(self, **kwargs):
|
||||||
|
if self.debug == True:
|
||||||
|
flag = 1
|
||||||
|
else:
|
||||||
|
if "flag" in kwargs:
|
||||||
|
if kwargs["flag"] == 1:
|
||||||
|
flag = 1
|
||||||
|
else:
|
||||||
|
flag = 0
|
||||||
|
else:
|
||||||
|
flag = 0
|
||||||
|
|
||||||
|
if flag == 1:
|
||||||
|
title = str(kwargs["title"])
|
||||||
|
if "message" in kwargs:
|
||||||
|
message = str(kwargs["message"])
|
||||||
|
else:
|
||||||
|
message = None
|
||||||
|
|
||||||
|
current_datetime = str(datetime.now())
|
||||||
|
|
||||||
|
if message == None:
|
||||||
|
detail = f"{current_datetime} | {title}\n"
|
||||||
|
else:
|
||||||
|
detail = f"{current_datetime} | {title}\n{message}\n"
|
||||||
|
|
||||||
|
print(detail)
|
||||||
|
|
||||||
|
if os.path.isfile(self.log_path):
|
||||||
|
try:
|
||||||
|
with open(self.log_path, "a", encoding="utf-8") as a:
|
||||||
|
a.write(detail)
|
||||||
|
except:
|
||||||
|
print("LOGGING ERROR mode a")
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
with open(self.log_path, "w", encoding="utf-8") as w:
|
||||||
|
w.write(detail)
|
||||||
|
except:
|
||||||
|
print("LOGGING ERROR mode w")
|
||||||
|
|
||||||
|
intents = discord.Intents.default()
|
||||||
|
intents.message_content = True
|
||||||
|
|
||||||
|
client = discord.Client(intents=intents)
|
||||||
|
tree = discord.app_commands.CommandTree(client)
|
||||||
|
|
||||||
|
@client.event
|
||||||
|
async def on_ready():
|
||||||
|
print("Bot is ready.")
|
||||||
|
print("Logged in as")
|
||||||
|
print(client.user.name)
|
||||||
|
print(client.user.id)
|
||||||
|
print("------")
|
||||||
|
await tree.sync()
|
||||||
|
|
||||||
|
@tree.command(name="use", description="パソコンの使用登録をします。")
|
||||||
|
async def use(interaction: discord.Interaction):
|
||||||
|
await interaction.response.send_message("パソコンの使用登録をします。", ephemeral=True)
|
||||||
|
|
||||||
|
dislocker = DL()
|
||||||
|
client.run(dislocker.server_config["bot"]["token"])
|
Loading…
Reference in a new issue