196 lines
5.7 KiB
Python
196 lines
5.7 KiB
Python
import sqlite3
|
|
import os
|
|
import pandas as pd
|
|
from tqdm import tqdm
|
|
|
|
# Nombre del archivo de la base de datos
|
|
db_name = "xala_dev.db"
|
|
|
|
# Verificar si la base de datos ya existe
|
|
if os.path.exists(db_name):
|
|
os.remove(db_name)
|
|
print(f"Se elimina la base de datos pre existente.")
|
|
|
|
|
|
# Conectar a SQLite (si no existe, se crea automáticamente)
|
|
conn = sqlite3.connect(db_name)
|
|
cursor = conn.cursor()
|
|
|
|
# ######################################################
|
|
# [1/5] CREAR LA TABLA "home"
|
|
# ######################################################
|
|
cursor.execute('''
|
|
CREATE TABLE home (
|
|
pk TEXT PRIMARY KEY,
|
|
label TEXT,
|
|
icon TEXT,
|
|
description TEXT,
|
|
svg_data TEXT
|
|
);
|
|
''')
|
|
|
|
xlsx_path = lambda x: f'Files/xlsx_n_xlsx/{x}'
|
|
html_path = lambda x: f'Files/html_template/{x}'
|
|
svg_path = lambda x: f'Files/svg/{x}'
|
|
|
|
f_home = xlsx_path("a_home.xlsx")
|
|
|
|
df_home = pd.read_excel(f_home)
|
|
df_home = pd.DataFrame(df_home)
|
|
lst_home = []
|
|
|
|
for row in tqdm(range(df_home.shape[0])):
|
|
pk = df_home['pk'].iloc[row]
|
|
label = df_home['software'].iloc[row]
|
|
icon = df_home['icon'].iloc[row]
|
|
description = df_home['short_desc'].iloc[row]
|
|
with open(f"{svg_path(df_home['svg_file'].iloc[row])}", "r", encoding="utf-8") as f:
|
|
svg_data = f.read()
|
|
|
|
lst_home.append(tuple([pk, label, icon, description, svg_data]))
|
|
|
|
cursor.executemany('INSERT INTO home (pk, label, icon, description, svg_data) VALUES (?, ?, ?, ?, ?)', lst_home)
|
|
del df_home
|
|
print("✔️ home")
|
|
|
|
# ######################################################
|
|
# [2/5] CREAR LA TABLA "all_posts"
|
|
# ######################################################
|
|
cursor.execute('''
|
|
CREATE TABLE all_posts (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
pk TEXT,
|
|
date TEXT,
|
|
status TEXT,
|
|
titulo_tema TEXT,
|
|
sintesis TEXT,
|
|
html_alert TEXT,
|
|
lst_glosary TEXT,
|
|
lst_post_related TEXT
|
|
);
|
|
''')
|
|
|
|
f_all_posts = xlsx_path("b_all_posts.xlsx")
|
|
df_all_posts = pd.read_excel(f_all_posts)
|
|
df_all_posts = pd.DataFrame(df_all_posts)
|
|
lst_all_posts = []
|
|
|
|
for row in tqdm(range(df_all_posts.shape[0])):
|
|
id = int(df_all_posts['index'].iloc[row])
|
|
pk = df_all_posts['pk'].iloc[row]
|
|
date = str(df_all_posts['date'].iloc[row])
|
|
status = df_all_posts['status'].iloc[row]
|
|
titulo_tema = df_all_posts['titulo_tema'].iloc[row]
|
|
sintesis = df_all_posts['sintesis'].iloc[row]
|
|
# file_html_template = f'{str(df_all_posts["index"].iloc[row])}.html'
|
|
# with open(f"{html_path(file_html_template)}", mode='r', encoding='utf-8') as html_temp:
|
|
# html_template = html_temp.read()
|
|
|
|
html_alert = f'{str(df_all_posts["html_alert"].iloc[row])}'
|
|
lst_glosary = str(df_all_posts['lst_glosary'].iloc[row]) # Convertir la lista a una representación de cadena
|
|
lst_post_related = df_all_posts['lst_post_related'].iloc[row] # Convertir la lista a una representación de cadena
|
|
|
|
lst_all_posts.append(tuple([id, pk, date, status, titulo_tema, sintesis, html_alert, lst_glosary, lst_post_related]))
|
|
|
|
cursor.executemany('''
|
|
INSERT INTO all_posts (id, pk, date, status, titulo_tema, sintesis, html_alert, lst_glosary, lst_post_related)
|
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
''', lst_all_posts)
|
|
|
|
del df_all_posts
|
|
print("✔️ All_Posts")
|
|
|
|
# ######################################################
|
|
# [3/5] CREAR LA TABLA DE GLOSARIO.
|
|
# ######################################################
|
|
|
|
cursor.execute('''
|
|
CREATE TABLE glosary (
|
|
pk TEXT,
|
|
word TEXT,
|
|
desc_html TEXT
|
|
);
|
|
''')
|
|
|
|
f_glosary = xlsx_path("d_glorary.xlsx")
|
|
df_glosary = pd.read_excel(f_glosary)
|
|
df_glosary = pd.DataFrame(df_glosary)
|
|
lst_glosary = []
|
|
|
|
for row in tqdm(range(df_glosary.shape[0])):
|
|
pk = df_glosary['id_key_word'].iloc[row]
|
|
word = df_glosary['word'].iloc[row]
|
|
html_template = str(df_glosary['desc_html'].iloc[row])
|
|
|
|
lst_glosary.append(tuple([pk, word, html_template]))
|
|
|
|
cursor.executemany('INSERT INTO glosary (pk, word, desc_html) VALUES (?, ?, ?)', lst_glosary)
|
|
del df_glosary
|
|
print("✔️ glosary")
|
|
|
|
|
|
# ######################################################
|
|
# [4/5] CREAR LA TABLA DE about_me
|
|
# ######################################################
|
|
cursor.execute(
|
|
'''
|
|
CREATE TABLE about_me (
|
|
about_me_html TEXT,
|
|
lst_glosary TEXT
|
|
);
|
|
'''
|
|
)
|
|
|
|
f_about_me = xlsx_path("c_about_me.xlsx")
|
|
df_about_me = pd.read_excel(f_about_me)
|
|
df_about_me = pd.DataFrame(df_about_me)
|
|
lst_about_me = []
|
|
|
|
for index, row in tqdm(df_about_me.iterrows(), total=df_about_me.shape[0]):
|
|
about_me_html = str(row['about_me_html'])
|
|
lst_glosary = row['lst_glosary']
|
|
lst_about_me.append(tuple([about_me_html,lst_glosary]))
|
|
|
|
cursor.executemany("INSERT INTO about_me (about_me_html, lst_glosary) VALUES (?, ?);", lst_about_me)
|
|
|
|
del df_about_me
|
|
print("✔️ about_me")
|
|
|
|
# ######################################################
|
|
# [5/5] CREAR TABLA DE EXTENSIONES
|
|
# ######################################################
|
|
cursor.execute(
|
|
'''
|
|
CREATE TABLE exts (
|
|
pk TEXT,
|
|
ext TEXT,
|
|
name TEXT
|
|
)
|
|
'''
|
|
)
|
|
|
|
f_exts = xlsx_path("e_ext.xlsx")
|
|
df_exts = pd.read_excel(f_exts)
|
|
df_exts = pd.DataFrame(df_exts)
|
|
lst_exts = []
|
|
|
|
for row in tqdm(range(df_exts.shape[0])):
|
|
pk = df_exts['pk'].iloc[row]
|
|
ext = df_exts['ext'].iloc[row]
|
|
name = str(df_exts['name'].iloc[row])
|
|
|
|
lst_exts.append(tuple([pk, ext, name]))
|
|
|
|
cursor.executemany("INSERT INTO exts (pk, ext, name) VALUES (?, ?, ?);", lst_exts)
|
|
|
|
del df_exts
|
|
print("✔️ ext")
|
|
|
|
# ######################################################
|
|
# Confirmar cambios y cerrar conexión
|
|
# ######################################################
|
|
conn.commit()
|
|
conn.close()
|
|
|
|
print(f"DB '{db_name}' creada exitosamente.")
|