mirror of
https://github.com/Telecominfraproject/wlan-cloud-owprov.git
synced 2025-10-30 02:02:36 +00:00
Fix: https://telecominfraproject.atlassian.net/browse/WIFI-10017 Fix: https://telecominfraproject.atlassian.net/browse/WIFI-10019 Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
45 lines
1.6 KiB
C++
45 lines
1.6 KiB
C++
//
|
|
// Created by stephane bourque on 2022-03-11.
|
|
//
|
|
|
|
#include "FileDownloader.h"
|
|
#include "Daemon.h"
|
|
|
|
namespace OpenWifi {
|
|
int FileDownloader::Start() {
|
|
TimerCallback_ = std::make_unique<Poco::TimerCallback<FileDownloader>>(*this,&FileDownloader::onTimer);
|
|
Timer_.setStartInterval( 20 * 1000); // first run in 20 seconds
|
|
Timer_.setPeriodicInterval(2 * 60 * 60 * 1000); // 1 hours
|
|
Timer_.start(*TimerCallback_);
|
|
return 0;
|
|
}
|
|
|
|
void FileDownloader::Stop() {
|
|
Timer_.stop();
|
|
Logger().notice("Stopping.");
|
|
}
|
|
|
|
void FileDownloader::onTimer([[maybe_unused]] Poco::Timer &timer) {
|
|
const static std::vector<std::pair<std::string,std::string>> Files
|
|
{
|
|
{"https://raw.githubusercontent.com/blogic/ucentral-schema/main/ucentral.schema.json", "ucentral.schema.json" },
|
|
{"https://ucentral.io/ucentral.schema.pretty.json", "ucentral.schema.pretty.json" }
|
|
};
|
|
|
|
Utils::SetThreadName("file-dmnldr");
|
|
|
|
for(const auto &[url,filename]:Files) {
|
|
try {
|
|
std::string FileContent;
|
|
if (Utils::wgets(url, FileContent)) {
|
|
std::ofstream OutputStream(Daemon()->AssetDir() + "/" + filename,
|
|
std::ios_base::out | std::ios_base::trunc);
|
|
OutputStream << FileContent;
|
|
Logger().warning(Poco::format("File %s was downloaded",url));
|
|
}
|
|
} catch(...) {
|
|
Logger().warning(Poco::format("File %s could not be downloaded",url));
|
|
}
|
|
}
|
|
}
|
|
} |