В связи с не хваткой времени вынужден добавить темп скрипт для добавления сервера, в дальнейшем убрать нахуй
This commit is contained in:
@@ -83,7 +83,7 @@ async def balance_callback_handler(callback: types.CallbackQuery):
|
|||||||
|
|
||||||
if user:
|
if user:
|
||||||
await callback.message.edit_text(
|
await callback.message.edit_text(
|
||||||
f"Ваш баланс: {user.balance} ₽",
|
f"Ваш баланс: {user.balance} ₽. Выберите сумму для пополнения 🐥",
|
||||||
reply_markup=balance_keyboard()
|
reply_markup=balance_keyboard()
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
|
|||||||
70
temp_scripts/insert_server_in_mongodb.py
Normal file
70
temp_scripts/insert_server_in_mongodb.py
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
import argparse
|
||||||
|
from datetime import datetime
|
||||||
|
import json
|
||||||
|
import base64
|
||||||
|
from pymongo import MongoClient
|
||||||
|
|
||||||
|
def connect_to_mongo(uri, db_name):
|
||||||
|
"""Подключение к MongoDB."""
|
||||||
|
client = MongoClient(uri)
|
||||||
|
db = client[db_name]
|
||||||
|
return db
|
||||||
|
|
||||||
|
def load_json(json_path):
|
||||||
|
"""Загружает JSON-данные из файла."""
|
||||||
|
with open(json_path, "r", encoding="utf-8") as f:
|
||||||
|
return json.load(f)
|
||||||
|
|
||||||
|
def encode_file(file_path):
|
||||||
|
"""Читает файл и кодирует его в Base64."""
|
||||||
|
with open(file_path, "rb") as f:
|
||||||
|
return base64.b64encode(f.read()).decode("utf-8")
|
||||||
|
|
||||||
|
def insert_certificate(data, cert_path, cert_location):
|
||||||
|
"""Добавляет сертификат в указанное место внутри структуры JSON."""
|
||||||
|
# Читаем и кодируем сертификат
|
||||||
|
certificate_data = encode_file(cert_path)
|
||||||
|
|
||||||
|
# Разбиваем путь на вложенные ключи
|
||||||
|
keys = cert_location.split(".")
|
||||||
|
target = data
|
||||||
|
for key in keys[:-1]:
|
||||||
|
if key not in target:
|
||||||
|
target[key] = {} # Создаем вложенные ключи, если их нет
|
||||||
|
target = target[key]
|
||||||
|
target[keys[-1]] = {
|
||||||
|
"data": certificate_data,
|
||||||
|
"uploaded_at": datetime.utcnow()
|
||||||
|
}
|
||||||
|
|
||||||
|
def insert_data(db, collection_name, data):
|
||||||
|
"""Вставляет данные в указанную коллекцию MongoDB."""
|
||||||
|
collection = db[collection_name]
|
||||||
|
collection.insert_one(data)
|
||||||
|
print(f"Данные успешно вставлены в коллекцию '{collection_name}'.")
|
||||||
|
|
||||||
|
def main():
|
||||||
|
parser = argparse.ArgumentParser(description="Insert JSON data into MongoDB with certificate")
|
||||||
|
parser.add_argument("--mongo-uri",default="mongodb://root:itOj4CE2miKR@mongodb:27017" ,required=True, help="MongoDB URI")
|
||||||
|
parser.add_argument("--db-name",default="MongoDBSub&Ser" ,required=True, help="MongoDB database name")
|
||||||
|
parser.add_argument("--collection",default="servers", required=True, help="Collection name")
|
||||||
|
parser.add_argument("--json-path", required=True, help="Path to the JSON file with data")
|
||||||
|
parser.add_argument("--cert-path", required=True, help="Path to the certificate file (.crt)")
|
||||||
|
parser.add_argument("--cert-location", required=True, help="Path inside JSON structure to store certificate (e.g., 'server.certificate')")
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
# Подключение к MongoDB
|
||||||
|
db = connect_to_mongo(args.mongo_uri, args.db_name)
|
||||||
|
|
||||||
|
# Загрузка данных из JSON-файла
|
||||||
|
data = load_json(args.json_path)
|
||||||
|
|
||||||
|
# Вставка сертификата в структуру данных
|
||||||
|
insert_certificate(data, args.cert_path, args.cert_location)
|
||||||
|
|
||||||
|
# Вставка данных в MongoDB
|
||||||
|
insert_data(db, args.collection, data)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
Reference in New Issue
Block a user