import pandas as pd
import json
import os
from pathlib import Path

from utils.documents_to_database import documents_to_database
from utils.convert_encoding_meta import convert_encoding_meta

#%% In[ ]:
# Get the current file's directory
try:
    # This will work when running as a script
    script_dir = Path(__file__).parent.parent
except NameError:
    # This will work in interactive environments
    script_dir = Path().absolute()

project_root = script_dir
instagram_data_path = os.path.join(project_root, 'import_data', 'data', 'Instagram', 'comments', 'reels_comments.json')

with open(instagram_data_path, "r", encoding="raw-unicode-escape") as posts:
    reels_comments = json.loads(convert_encoding_meta(posts.read()))

#%% In[ ]:
ig_comments = []
for comment in reels_comments['comments_reels_comments']:
    ig_comments.append({"texte": comment['string_map_data']['Comment']['value'],
                        'creation_timestamp': comment['string_map_data']['Time']['timestamp'],
                        "chemin": instagram_data_path,
                        "index": "rs_instagram_comments",
                        "type": "comments",
                        "network": "Instagram"})

#%% In[ ]:
ig_comments_df = pd.DataFrame(ig_comments)

#%% In[ ]:
ig_comments_df.fillna(value="", inplace=True)

#%% In[ ]:
ig_comments_df.drop_duplicates(subset=['texte', 'creation_timestamp'], inplace=True)

#%% In[ ]:
# Filter empty texte
ig_comments_df = ig_comments_df[~ig_comments_df['texte'].str.strip('\n').str.strip().eq('')]

#%% In[ ]:
documents_to_database(ig_comments_df)
