import os
import shutil
from aiogram import types
import sqlite3


def loging(message: types.Message, service: str, file_path: str, text: str, f: float) -> None:
    """
    Функция логирует каждое сообщение

    :param message: types.Message - объект сообщения
    :param service: str - название сервиса для генерации
    :param file_path: str - путь до файла
    :param text: str - текст который был разобран
    :param f: float - длинна аудиофайла
    :return: None
    """
    if not os.path.isdir(f"logs/{message.chat.id}"):  # если папки нет
        os.makedirs(f"logs/{message.chat.id}")  # создаю папку
    file_name = file_path.split("/")[-1].split(".")  # достаю имя файла
    try:  # защита
        os.makedirs(f"logs/{message.chat.id}/{file_name[0]}")  # создание папки
    except FileExistsError:
        pass
    shutil.copy(file_path, f"logs/{message.chat.id}/{file_name[0]}/audio.{file_name[1]}")  # копирование файла
    with open(f'logs/{message.chat.id}/{file_name[0]}/{service}-text.txt', 'w+') as the_file:  # открываю файл в запись
        the_file.write(text)  # записываю
    user_id = message.from_user.id
    group_id = message.chat.id
    time = f
    user_name = message.from_user.first_name
    if message.chat.first_name:
        chat_title = message.chat.first_name
    else:
        chat_title = message.chat.title
    print(user_id, group_id, service, time, user_name, chat_title)
    conn = sqlite3.connect("db.sql")
    cur = conn.cursor()
    user = (user_id, group_id, service, time, user_name, chat_title)
    cur.execute("INSERT INTO statistic(user_id, group_id, service, time, user_name, chat_title) "
                "VALUES(?, ?, ?, ?, ?, ?);", user)
    conn.commit()
