57 lines
1.7 KiB
Python
57 lines
1.7 KiB
Python
|
import os
|
||
|
import sys
|
||
|
from dotenv import load_dotenv
|
||
|
import mysql.connector
|
||
|
|
||
|
# Add the project root to the Python path
|
||
|
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||
|
sys.path.append(project_root)
|
||
|
from ktvmanager.lib.encryption import decrypt_password
|
||
|
from ktvmanager.lib.checker import single_account_check
|
||
|
from ktvmanager.lib.get_urls import get_latest_urls_from_dns
|
||
|
|
||
|
def get_all_accounts(db_connection):
|
||
|
cursor = db_connection.cursor(dictionary=True)
|
||
|
query = "SELECT * FROM userAccounts where userId = 1"
|
||
|
cursor.execute(query)
|
||
|
accounts = cursor.fetchall()
|
||
|
cursor.close()
|
||
|
return accounts
|
||
|
|
||
|
def main():
|
||
|
load_dotenv()
|
||
|
|
||
|
db_connection = mysql.connector.connect(
|
||
|
host=os.getenv("DBHOST"),
|
||
|
user=os.getenv("DBUSER"),
|
||
|
password=os.getenv("DBPASS"),
|
||
|
database=os.getenv("DATABASE"),
|
||
|
port=os.getenv("DBPORT")
|
||
|
)
|
||
|
|
||
|
accounts = get_all_accounts(db_connection)
|
||
|
stream_urls = get_latest_urls_from_dns()
|
||
|
|
||
|
for account in accounts:
|
||
|
try:
|
||
|
decrypted_password = decrypt_password(account['password'])
|
||
|
except Exception as e:
|
||
|
print(f"Could not decrypt password for {account['username']}: {e}")
|
||
|
continue
|
||
|
|
||
|
account_data = {
|
||
|
"username": account['username'],
|
||
|
"password": decrypted_password
|
||
|
}
|
||
|
|
||
|
result = single_account_check(account_data, stream_urls)
|
||
|
|
||
|
if result:
|
||
|
print(f"Account {account['username']} on stream {account['stream']} is VALID.")
|
||
|
else:
|
||
|
print(f"Account {account['username']} on stream {account['stream']} is INVALID.")
|
||
|
|
||
|
db_connection.close()
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
main()
|