Compare commits
2 Commits
2a49e280c2
...
1c3918354c
Author | SHA1 | Date | |
---|---|---|---|
1c3918354c | |||
b3054b3dda |
@ -6,7 +6,8 @@ def build_url(stream_url, username, password):
|
||||
|
||||
def check_url(url):
|
||||
try:
|
||||
tr = RequestsTor()
|
||||
# tr = RequestsTor()
|
||||
tr = requests
|
||||
response = tr.get(url, timeout=5)
|
||||
response.raise_for_status()
|
||||
if response.json().get("user_info", {}).get("auth"):
|
||||
|
@ -1,10 +1,16 @@
|
||||
import mysql.connector
|
||||
import mysql.connector.pooling
|
||||
from flask import jsonify, request, current_app
|
||||
from ktvmanager.lib.checker import single_account_check
|
||||
from ktvmanager.lib.encryption import encrypt_password, decrypt_password
|
||||
from ktvmanager.lib.get_urls import get_latest_urls_from_dns
|
||||
|
||||
def _create_connection():
|
||||
return mysql.connector.connect(
|
||||
db_pool = None
|
||||
|
||||
def initialize_db_pool():
|
||||
global db_pool
|
||||
db_pool = mysql.connector.pooling.MySQLConnectionPool(
|
||||
pool_name="ktv_pool",
|
||||
pool_size=5,
|
||||
host=current_app.config["DBHOST"],
|
||||
user=current_app.config["DBUSER"],
|
||||
password=current_app.config["DBPASS"],
|
||||
@ -13,7 +19,7 @@ def _create_connection():
|
||||
)
|
||||
|
||||
def _execute_query(query, params=None):
|
||||
conn = _create_connection()
|
||||
conn = db_pool.get_connection()
|
||||
cursor = conn.cursor(dictionary=True)
|
||||
try:
|
||||
cursor.execute(query, params)
|
||||
@ -33,7 +39,6 @@ def get_user_id_from_username(username):
|
||||
if result:
|
||||
return result[0]['id']
|
||||
return None
|
||||
|
||||
def get_user_accounts(user_id):
|
||||
query = "SELECT * FROM userAccounts WHERE userID = %s"
|
||||
accounts = _execute_query(query, (user_id,))
|
||||
@ -61,17 +66,18 @@ def single_check():
|
||||
return jsonify(result)
|
||||
return jsonify({"message": "All checks failed"}), 400
|
||||
|
||||
def add_account():
|
||||
data = request.get_json()
|
||||
def add_account(user_id):
|
||||
data = request.form
|
||||
res = single_account_check(data, get_latest_urls_from_dns())
|
||||
encrypted_password = encrypt_password(data['password'])
|
||||
query = "INSERT INTO userAccounts (username, stream, streamURL, expiaryDate, password, userID) VALUES (%s, %s, %s, %s, %s, %s)"
|
||||
params = (data['username'], data['stream'], data['streamURL'], data['expiaryDate'], encrypted_password, data['userID'])
|
||||
params = (data['username'], data['stream'], res['url'], res['data']['user_info']['exp_date'], encrypted_password, user_id)
|
||||
result = _execute_query(query, params)
|
||||
return jsonify(result)
|
||||
|
||||
def delete_account():
|
||||
data = request.get_json()
|
||||
query = "DELETE FROM userAccounts WHERE id = %s"
|
||||
params = (data['id'],)
|
||||
def delete_account(user_id):
|
||||
data = request.form
|
||||
query = "DELETE FROM userAccounts WHERE username = %s AND stream = %s AND userId = %s"
|
||||
params = (data['user'],data['stream'],user_id)
|
||||
result = _execute_query(query, params)
|
||||
return jsonify(result)
|
||||
|
@ -3,6 +3,7 @@ from flask import Flask, jsonify
|
||||
from dotenv import load_dotenv
|
||||
from ktvmanager.config import DevelopmentConfig, ProductionConfig
|
||||
from routes.api import api_blueprint
|
||||
from ktvmanager.lib.database import initialize_db_pool
|
||||
|
||||
def create_app():
|
||||
app = Flask(__name__)
|
||||
@ -13,6 +14,9 @@ def create_app():
|
||||
else:
|
||||
app.config.from_object(DevelopmentConfig)
|
||||
|
||||
with app.app_context():
|
||||
initialize_db_pool()
|
||||
|
||||
# Register blueprints
|
||||
app.register_blueprint(api_blueprint)
|
||||
|
||||
|
@ -31,9 +31,11 @@ def single_check_route(username):
|
||||
@api_blueprint.route("/addAccount", methods=["POST"])
|
||||
@requires_basic_auth
|
||||
def add_account_route(username):
|
||||
return add_account()
|
||||
user_id = get_user_id_from_username(username)
|
||||
return add_account(user_id)
|
||||
|
||||
@api_blueprint.route("/deleteAccount", methods=["POST"])
|
||||
@requires_basic_auth
|
||||
def delete_account_route(username):
|
||||
return delete_account()
|
||||
user_id = get_user_id_from_username(username)
|
||||
return delete_account(user_id)
|
Loading…
x
Reference in New Issue
Block a user