From f35f32110e91f0feafcca30dca5386e07a2df55f Mon Sep 17 00:00:00 2001 From: suti7yk5032 Date: Tue, 4 Jun 2024 09:36:29 +0900 Subject: [PATCH] 1st --- .gitignore | 1 + dislocker.py | 67 ++++++++++++++++++++++ docs/データベースセットアップ.txt | 13 +++++ resource/console.js | 9 +++ resource/damedesu.webp | Bin 0 -> 11530 bytes templates/dacs.html | 45 +++++++++++++++ templates/damedesu.html | 9 +++ templates/login.html | 15 +++++ test.py | 34 ++++++++++++ webui.py | 89 ++++++++++++++++++++++++++++++ 10 files changed, 282 insertions(+) create mode 100644 dislocker.py create mode 100644 docs/データベースセットアップ.txt create mode 100644 resource/console.js create mode 100644 resource/damedesu.webp create mode 100644 templates/dacs.html create mode 100644 templates/damedesu.html create mode 100644 templates/login.html create mode 100644 test.py create mode 100644 webui.py diff --git a/.gitignore b/.gitignore index 5d381cc..8165e1f 100644 --- a/.gitignore +++ b/.gitignore @@ -160,3 +160,4 @@ cython_debug/ # option (not recommended) you can uncomment the following to ignore the entire idea folder. #.idea/ +config diff --git a/dislocker.py b/dislocker.py new file mode 100644 index 0000000..01595be --- /dev/null +++ b/dislocker.py @@ -0,0 +1,67 @@ +import json +import discord +import os +import psycopg2 + +class Bot(discord.Client): + async def on_ready(self): + print("ログイン成功") + + async def on_message(self, message): + if message.author.bot: + return + + if message.content == "/hello": + await message.channel.send("こんにちは!!!!") + + if message.content == "/password": + await message.channel.send("gjhioragiopwjhgiopweap") + + +class Cert(): + def __init__(self): + self.db = psycopg2.connect("host=localhost dbname=dislocker user=suti7 password=testing") + + def register(self, username, userid): + cursor = self.db.cursor() + insert_sql = "INSERT INTO user_list (discord_username, discord_userid) VALUES (%s, %s);" + cursor.execute(insert_sql, (username, userid)) + self.db.commit() + + def get_username(self, username, password): + cursor = self.db.cursor() + get_sql = "SELECT * FROM web_auth WHERE username = %s AND password = %s " + cursor.execute(get_sql, (username, password)) + result = cursor.fetchall() + print(result) + if result == []: + return 1 + elif result[0][1] == username and result[0][2] == password: + return 0 + +class Web(flask.Flask): + async def temp(self): + print("") + + +cert = Cert() +print(cert.get_username("suti7", "0126")) + + +bot_config_path = "./config/bot.json" +if not os.path.isfile(bot_config_path): + bot_config = { + "token": "" + } + with open(bot_config_path, "w") as w: + json.dump(bot_config, w, indent=4) + +elif os.path.isfile(bot_config_path): + with open("./config/bot.json", "r") as r: + bot_config = json.load(r) + +intents = discord.Intents.default() +intents.message_content = True + +bot = Bot(intents=intents) +bot.run(bot_config["token"]) \ No newline at end of file diff --git a/docs/データベースセットアップ.txt b/docs/データベースセットアップ.txt new file mode 100644 index 0000000..d719e70 --- /dev/null +++ b/docs/データベースセットアップ.txt @@ -0,0 +1,13 @@ +# ログイン +psql -U suti7 -d dislocker + +CREATE TABLE user +(user_id INTEGER PRIMARY KEY NOT NULL, +discord_id INTEGER NOT NULL, +discord_username VARCHAR(32) NOT NULL, +PRIMARY KEY (user_id)); + +CREATE TABLE user_list (user_id INTEGER NOT NULL, discord_username VARCHAR(32) NOT NULL, discord_userid INTEGER NOT NULL, PRIMARY KEY (user_id)); + +# テーブルを作る +CREATE TABLE web_auth (id SERIAL, username VARCHAR(10) NOT NULL, password VARCHAR(32) NOT NULL, PRIMARY KEY(id)); \ No newline at end of file diff --git a/resource/console.js b/resource/console.js new file mode 100644 index 0000000..53d9dca --- /dev/null +++ b/resource/console.js @@ -0,0 +1,9 @@ +const send_button = document.querySelector("#send_button"); +const success_alert = document.querySelector("#alert_success"); + +const main = function(){ + send_button.addEventListener("click", function(){ + success_alert. + + }) +} \ No newline at end of file diff --git a/resource/damedesu.webp b/resource/damedesu.webp new file mode 100644 index 0000000000000000000000000000000000000000..adb5b02fa0f65a4270e705df31915767eb3ceb24 GIT binary patch literal 11530 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 + + 管理コンソール + + + + +
+
+
+
+
+
+

登録

+
+
+
+
+
+
+
+ +

+ +
+
+ +

+ +
+
+

+ +
+
+ +

+ +
+ + + + + + \ No newline at end of file diff --git a/templates/damedesu.html b/templates/damedesu.html new file mode 100644 index 0000000..58e1c5d --- /dev/null +++ b/templates/damedesu.html @@ -0,0 +1,9 @@ + + + + だめです いいえ 帰ってください + + + + + diff --git a/templates/login.html b/templates/login.html new file mode 100644 index 0000000..f694639 --- /dev/null +++ b/templates/login.html @@ -0,0 +1,15 @@ + + + + Login + + +
+ + + + + +
+ + diff --git a/test.py b/test.py new file mode 100644 index 0000000..594a38d --- /dev/null +++ b/test.py @@ -0,0 +1,34 @@ +# インストールした discord.py を読み込む +import discord +import secrets +import string + + +# 接続に必要なオブジェクトを生成 +client = discord.Client() + +# 起動時に動作する処理 +@client.event +async def on_ready(): + # 起動したらターミナルにログイン通知が表示される + print('ログインしました') + +# メッセージ受信時に動作する処理 +@client.event +async def on_message(message): + # メッセージ送信者がBotだった場合は無視する + if message.author.bot: + return + # 「/neko」と発言したら「にゃーん」が返る処理 + if message.content == '/neko': + await message.channel.send('にゃーん') + + if message.content == '/password': + await message.channel.send(get_random_password_string(4)) +def get_random_password_string(length): + pass_chars = string.ascii_letters + string.digits + password = ''.join(secrets.choice(pass_chars) for x in range(length)) + return password + +# Botの起動とDiscordサーバーへの接続 +client.run('MTI0NzA1Mzc1NzUxOTM2NDEyNw.Gh5gIt.kz1acBMxphff9mEZLLWrEdEoVD4RJwgBW5P14o') diff --git a/webui.py b/webui.py new file mode 100644 index 0000000..db12a9d --- /dev/null +++ b/webui.py @@ -0,0 +1,89 @@ +from flask import Flask, request, render_template, redirect, url_for +from flask_login import LoginManager, UserMixin, login_user, login_required, logout_user +import psycopg2 + +app = Flask(__name__, static_folder="./resource/") +app.secret_key = 'your_secret_key' +login_manager = LoginManager() +login_manager.init_app(app) + +class Cert(): + def __init__(self): + self.db = psycopg2.connect("host=localhost dbname=dislocker user=suti7 password=testing") + + def register(self, username, userid): + cursor = self.db.cursor() + insert_sql = "INSERT INTO user_list (discord_username, discord_userid) VALUES (%s, %s);" + cursor.execute(insert_sql, (username, userid)) + self.db.commit() + + def login(self, username, password): + cursor = self.db.cursor() + get_sql = "SELECT * FROM web_auth WHERE username = %s AND password = %s " + cursor.execute(get_sql, (username, password)) + result = cursor.fetchall() + print(result) + if result == []: + return 1 + elif result[0][1] == username and result[0][2] == password: + return 0 + +cert = Cert() + +class User(UserMixin): + def __init__(self, id): + self.id = id + + def get_id(self): + return self.id + +@login_manager.user_loader +def load_user(user_id): + return User(user_id) + +@app.route('/login', methods=['GET', 'POST']) +def login(): + if request.method == 'POST': + user_id = request.form.get('user_id') + password = request.form.get('password') + + # ユーザーIDとパスワードの検証を行う + # ここでは省略しますが、実際にはデータベースなどからユーザー情報を取得し、パスワードを検証します + if cert.login(user_id, password) == 0: + user = User(user_id) + login_user(user) + return redirect(url_for('dacs')) + else: + print("WEB UI LOGIN ERROR") + return redirect(url_for("damedesu")) + + return render_template('login.html') + +@app.route('/logout') +@login_required +def logout(): + logout_user() + return redirect(url_for('login')) + +@app.route('/dacs', methods=["GET", "POST"]) +@login_required +def dacs(): + if request.method == "POST": + discord_userid = request.form.get("discord_userid") + discord_username = request.form.get("discord_username") + + cert.register(discord_username, discord_userid) + + return render_template("dacs.html") + +@app.route("/damedesu") +def damedesu(): + return render_template("damedesu.html") + + +@app.route("/") +def hello_world(): + return "

Hello world!

" + +if __name__ == "__main__": + app.run(host="0.0.0.0", port=5000, debug=True) \ No newline at end of file