Добавление таблицы категорий и .env линков на API ВОЛК
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
@@ -6,6 +6,8 @@ LOG_FILE = /opt/testbot-git/logs/testzilantposter.log
|
||||
WORKMODE = "VOLK"
|
||||
|
||||
|
||||
|
||||
|
||||
# Webhook Responder-bot
|
||||
WEBHOOK_URL = "https://bot.aabpro.ru/testbot"
|
||||
WEBHOOK_PORT = 5005
|
||||
@@ -84,9 +86,6 @@ CHANNEL_ID = "@posto1638"
|
||||
MAX_CAPTION_LENGTH = 1000
|
||||
MAX_TEXT_LENGTH = 4000
|
||||
|
||||
# Button scripts
|
||||
# RESCAN_SCRIPT = "vk_load.py"
|
||||
# PUBLISH_SCRIPT = "tg_publish.py"
|
||||
|
||||
# Zilant API call - План Захвата
|
||||
#
|
||||
@@ -96,6 +95,12 @@ PZK_PREFIX = "https://reg.konvent.ru/zk2025/draft/plan/api/add/"
|
||||
EVT_PREFIX = "https://reg.konvent.ru/zk2025/events/actions/api/"
|
||||
DESC_PREFIX = "https://reg.konvent.ru/zk2025/events/actions/"
|
||||
|
||||
# VOLK mode API links
|
||||
# add category ID (volk24_larp for ex.)
|
||||
VOLK_CATEGORY_LIST = "https://base-dev.volk-nn.ru/api/categories?event=volk24&form=volk24_event"
|
||||
VOLK_CATEGORY_DESC_PREFIX = "https://base-dev.volk-nn.ru/api/category?event=volk24&form=volk24_event&category="
|
||||
VOLK_EVENT_LIST_PREFIX = "https://base-dev.volk-nn.ru/api/applications?event=volk24&form=volk24_event&apps_on_page=100&page=0&category="
|
||||
|
||||
# Event status
|
||||
IS_EVENT = true
|
||||
AUTO_PUBLISH = false
|
||||
@@ -106,7 +111,7 @@ USE_SUBSCRIPTION_BOT = false
|
||||
|
||||
# OpenRouter
|
||||
OR_KEY = "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"
|
||||
# OR_MODEL_NAME = "deepseek/deepseek-chat-v3.1"
|
||||
OR_MODEL_NAME = "qwen/qwen3-vl-235b-a22b-instruct"
|
||||
# OR_MODEL_NAME = "deepseek/deepseek-chat-v3.1"
|
||||
# OR_MODEL_NAME = "deepseek/deepseek-r1-0528:free"
|
||||
# OR_MODEL_NAME = "qwen/qwen3-coder:free"
|
||||
|
||||
-45
@@ -1472,51 +1472,6 @@ def init_db():
|
||||
ensure_database_structure()
|
||||
print("Структура базы данных проверена и создана при необходимости")
|
||||
|
||||
# Проверяем и создаем таблицу events, если она не существует
|
||||
# with db.conn.cursor() as cursor:
|
||||
# cursor.execute("""
|
||||
# CREATE TABLE IF NOT EXISTS events (
|
||||
# id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
# id_event BIGINT NOT NULL,
|
||||
# number BIGINT NOT NULL,
|
||||
# unit_name VARCHAR(255),
|
||||
# name VARCHAR(255),
|
||||
# about VARCHAR(2048),
|
||||
# about_social_picture VARCHAR(2048),
|
||||
# modified DATETIME NULL,
|
||||
# added DATETIME NULL,
|
||||
# tags VARCHAR(255),
|
||||
# is_canceled BOOLEAN DEFAULT 0,
|
||||
# accepted BOOLEAN DEFAULT 0,
|
||||
# denied BOOLEAN DEFAULT 0,
|
||||
# is_visible BOOLEAN DEFAULT 0,
|
||||
# marked_to_publication BOOLEAN DEFAULT 0,
|
||||
# is_posted_tg BOOLEAN DEFAULT 0,
|
||||
# tg_message_id BIGINT NULL DEFAULT NULL,
|
||||
# tg_posted_date DATETIME NULL,
|
||||
# announcement_link BIGINT NULL DEFAULT NULL
|
||||
# ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
|
||||
# """)
|
||||
# db.conn.commit()
|
||||
# print("Таблица events проверена и создана при необходимости")
|
||||
|
||||
# Создаем администратора по умолчанию
|
||||
with db.conn.cursor() as cursor:
|
||||
cursor.execute("SELECT COUNT(*) as count FROM users")
|
||||
if cursor.fetchone()['count'] == 0:
|
||||
username = os.getenv('DEFNM')
|
||||
password = os.getenv('DEFPW')
|
||||
if username and password:
|
||||
hashed_password = generate_password_hash(password)
|
||||
cursor.execute(
|
||||
"INSERT INTO users (username, password) VALUES (%s, %s)",
|
||||
(username, hashed_password)
|
||||
)
|
||||
print(f"Created default user: {username}")
|
||||
else:
|
||||
print("Environment variables DEFNM/DEFPW not set. Admin not created.")
|
||||
|
||||
db.conn.commit()
|
||||
except Exception as e:
|
||||
print(f"Database initialization error: {str(e)}")
|
||||
raise
|
||||
|
||||
+36
-2
@@ -6,6 +6,7 @@ import random
|
||||
from datetime import datetime
|
||||
from mysql.connector import errorcode
|
||||
from dotenv import load_dotenv
|
||||
from werkzeug.security import generate_password_hash
|
||||
|
||||
# Загрузка переменных окружения
|
||||
load_dotenv()
|
||||
@@ -123,7 +124,7 @@ def ensure_database_structure():
|
||||
number BIGINT NOT NULL,
|
||||
unit_name VARCHAR(255),
|
||||
name VARCHAR(255),
|
||||
about VARCHAR(2048),
|
||||
about VARCHAR(4096),
|
||||
about_social_picture VARCHAR(2048),
|
||||
modified DATETIME NULL,
|
||||
added DATETIME NULL,
|
||||
@@ -154,6 +155,14 @@ def ensure_database_structure():
|
||||
REFERENCES events(id)
|
||||
ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
|
||||
''',
|
||||
'categories': '''
|
||||
CREATE TABLE categories (
|
||||
AUTO_ID INT AUTO_INCREMENT PRIMARY KEY,
|
||||
NUMBER BIGINT,
|
||||
ID VARCHAR(255),
|
||||
TITLE VARCHAR(2048)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
|
||||
'''
|
||||
}
|
||||
|
||||
@@ -178,6 +187,25 @@ def ensure_database_structure():
|
||||
log_message(f"Error checking/creating table {table_name}: {err}")
|
||||
raise err
|
||||
|
||||
# Создание дефолтного админа, если таблица users пуста
|
||||
try:
|
||||
cursor.execute("SELECT COUNT(*) as count FROM users")
|
||||
user_count = cursor.fetchone()[0]
|
||||
if user_count == 0:
|
||||
username = os.getenv('DEFNM')
|
||||
password = os.getenv('DEFPW')
|
||||
if username and password:
|
||||
hashed_password = generate_password_hash(password)
|
||||
cursor.execute(
|
||||
"INSERT INTO users (username, password) VALUES (%s, %s)",
|
||||
(username, hashed_password)
|
||||
)
|
||||
log_message(f"Created default admin user: {username}")
|
||||
else:
|
||||
log_message("Environment variables DEFNM/DEFPW not set. Admin not created.")
|
||||
except mysql.connector.Error as err:
|
||||
log_message(f"Error creating default admin: {err}")
|
||||
|
||||
# Проверка и добавление новых полей в существующие таблицы
|
||||
table_alterations = {
|
||||
'posts': [
|
||||
@@ -254,8 +282,14 @@ def ensure_database_structure():
|
||||
'CREATE UNIQUE INDEX IF NOT EXISTS uniq_post_event ON interlinks (post_id, event_id)'
|
||||
]
|
||||
|
||||
# Создание индексов для таблицы categories
|
||||
categories_indexes = [
|
||||
'CREATE INDEX IF NOT EXISTS idx_categories_number ON categories (NUMBER)',
|
||||
'CREATE INDEX IF NOT EXISTS idx_categories_id ON categories (ID)'
|
||||
]
|
||||
|
||||
# Объединяем все индексы
|
||||
all_indexes = marks_indexes + marks_evt_indexes + events_indexes + interlinks_indexes
|
||||
all_indexes = marks_indexes + marks_evt_indexes + events_indexes + interlinks_indexes + categories_indexes
|
||||
|
||||
for index_sql in all_indexes:
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user