#include "mainwindow.h"
#include "net/net.h"
#include "ofd/ofd.h"
#include "settings/settings.h"
#include "utils/utils.h"
#include <QApplication>
#include <curl/curl.h>
#include <iostream>

int main(int argc, char *argv[]) {
    curl_global_init(CURL_GLOBAL_ALL);

    std::string settings_file_path =
        get_path_relative_to_home(".local/share/checks_parser/settings.json");

    Settings s(settings_file_path);
    OFD ofd;
    Net n;

    std::vector<std::string> ofd_updates = ofd.check_updates();
    for (const std::string &update : ofd_updates) {
        std::cout << "Downloading "
                  << s.get_setting("ofds_modules_url") + update << " to "
                  << get_path_relative_to_home(s.get_setting("ofds_modules_dir") +
                                               "/" + update)
                  << std::endl;
        n.get_file(s.get_setting("ofds_modules_url") + "/" + update,
                   get_path_relative_to_home(s.get_setting("ofds_modules_dir") +
                                             "/" + update));
    }

    Parser p;
    std::vector<std::string> stores_updates = p.check_updates();\
    for (const std::string &update : stores_updates) {
        std::cout << "Downloading "
                  << s.get_setting("stores_modules_url")  + update << " to "
                  << get_path_relative_to_home(s.get_setting("stores_modules_dir") +
                                               "/" + update)
                  << std::endl;

        n.get_file(s.get_setting("stores_modules_url") + "/" + update,
                   get_path_relative_to_home(s.get_setting("stores_modules_dir") +
                                             "/" + update));
    }

    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}
