53 lines
1.9 KiB
Python
53 lines
1.9 KiB
Python
from pymongo import MongoClient
|
||
from pymongo.errors import DuplicateKeyError
|
||
import full_img_manga as fim
|
||
import Serch_H
|
||
|
||
def import_from_json():
|
||
|
||
# Получаем данные
|
||
hentai_data = fim.process_hentai_data(hent_data=Serch_H.get_data()) # Это должен быть словарь {название: данные}
|
||
num = 29915 + len(hentai_data)
|
||
|
||
|
||
# Проверяем структуру данных
|
||
if not isinstance(hentai_data, dict):
|
||
print("Ошибка: Данные должны быть в формате словаря {название: данные}")
|
||
return
|
||
|
||
# Обрабатываем данные напрямую без process_hentai_data
|
||
for manga_title, manga_data in hentai_data.items():
|
||
try:
|
||
# Добавляем оригинальное название
|
||
manga_data["original_title"] = manga_title
|
||
|
||
# Проверяем наличие обязательных полей
|
||
if "id" not in manga_data:
|
||
|
||
manga_data["id"] = num
|
||
num -= 1
|
||
|
||
# Добавляем в базу
|
||
collection.insert_one(manga_data)
|
||
print(f"Успешно добавлено: {manga_title} (ID: {manga_data['id']})")
|
||
|
||
except DuplicateKeyError:
|
||
print(f"Дубликат, пропускаем: {manga_title}")
|
||
except Exception as e:
|
||
print(f"Ошибка с '{manga_title}': {str(e)}")
|
||
|
||
|
||
if __name__ == "__main__":
|
||
# Подключение к MongoDB
|
||
client = MongoClient("mongodb://localhost:27017/")
|
||
db = client["Manga"]
|
||
collection = db["Hentai_Manga"]
|
||
|
||
# Создаем индексы
|
||
collection.create_index("id", unique=True)
|
||
collection.create_index("original_title")
|
||
|
||
# Запускаем импорт
|
||
print("Начало импорта...")
|
||
import_from_json()
|
||
print("Импорт завершен!") |