sqlのインポートを修正、日本語テスト

This commit is contained in:
suti7yk5032 2024-09-26 09:25:31 +09:00
parent 4f78a54b2f
commit f7f3e5d40b

View file

@ -2,6 +2,7 @@ import discord
import os import os
import json import json
import psycopg2 import psycopg2
from psycopg2 import sql
from datetime import datetime from datetime import datetime
import asyncio import asyncio
import string import string
@ -531,19 +532,19 @@ class DL():
excel_file_path = self.export_dir_path + "pc_usage_history.xlsx" excel_file_path = self.export_dir_path + "pc_usage_history.xlsx"
# メインテーブルの列情報を取得user_idを除く # メインテーブルの列情報を取得user_idを除く
cursor.execute(psycopg2.sql.SQL("SELECT * FROM {} LIMIT 0").format(psycopg2.sql.Identifier(main_table))) cursor.execute(sql.SQL("SELECT * FROM {} LIMIT 0").format(sql.Identifier(main_table)))
main_columns = [desc[0] for desc in cursor.description if desc[0] != 'member_id'] main_columns = [desc[0] for desc in cursor.description if desc[0] != 'member_id']
# クエリを作成(列名を明確に指定) # クエリを作成(列名を明確に指定)
query = psycopg2.sql.SQL(""" query = sql.SQL("""
SELECT {main_columns}, {related_table}.name SELECT {main_columns}, {related_table}.name
FROM {main_table} FROM {main_table}
LEFT JOIN {related_table} ON {main_table}.member_id = {related_table}.member_id LEFT JOIN {related_table} ON {main_table}.member_id = {related_table}.member_id
ORDER BY id ORDER BY id
""").format( """).format(
main_columns=psycopg2.sql.SQL(', ').join([psycopg2.sql.SQL("{}.{}").format(psycopg2.sql.Identifier(main_table), psycopg2.sql.Identifier(col)) for col in main_columns]), main_columns=sql.SQL(', ').join([sql.SQL("{}.{}").format(sql.Identifier(main_table), sql.Identifier(col)) for col in main_columns]),
main_table=psycopg2.sql.Identifier(main_table), main_table=sql.Identifier(main_table),
related_table=psycopg2.sql.Identifier(related_table) related_table=sql.Identifier(related_table)
) )
cursor.execute(query) cursor.execute(query)
@ -787,7 +788,9 @@ async def devicereg(interaction: discord.Interaction):
await interaction.response.send_message(":x: 内部エラーが発生しました。\nサーバーでエラーが発生しています。管理者に問い合わせてください。", ephemeral=True) await interaction.response.send_message(":x: 内部エラーが発生しました。\nサーバーでエラーが発生しています。管理者に問い合わせてください。", ephemeral=True)
@tree.command(name="fstop", description="PCの使用を強制終了します。") @tree.command(name="fstop", description="PCの使用を強制終了します。")
async def fstop(interaction: discord.Interaction, pc_number: int, bot_about: str): async def fstop(interaction: discord.Interaction, PC番号: int, 理由: str):
pc_number = PC番号
bot_about = 理由
force_stop = dislocker.force_stop(pc_number=pc_number, bot_about=bot_about) force_stop = dislocker.force_stop(pc_number=pc_number, bot_about=bot_about)
if force_stop["result"] == 0: if force_stop["result"] == 0:
await interaction.response.send_message(f":white_check_mark: PC {pc_number} の使用を強制終了しました。", ephemeral=True) await interaction.response.send_message(f":white_check_mark: PC {pc_number} の使用を強制終了しました。", ephemeral=True)