2016-01-04 14:58:00 -05:00
|
|
|
#include "STDInclude.hpp"
|
2015-12-30 18:55:08 -05:00
|
|
|
|
2016-02-23 09:52:31 -05:00
|
|
|
#define NEWS_MOTD_DEFUALT "Welcome to IW4x Multiplayer!"
|
2016-02-04 15:58:49 -05:00
|
|
|
|
2015-12-30 18:55:08 -05:00
|
|
|
namespace Components
|
|
|
|
{
|
2016-06-02 09:11:31 -04:00
|
|
|
std::thread News::Thread;
|
2016-02-04 15:58:49 -05:00
|
|
|
|
|
|
|
bool News::UnitTest()
|
|
|
|
{
|
|
|
|
bool result = true;
|
|
|
|
|
2016-06-02 09:11:31 -04:00
|
|
|
if (News::Thread.joinable())
|
2016-02-04 15:58:49 -05:00
|
|
|
{
|
|
|
|
Logger::Print("Awaiting thread termination...\n");
|
2016-06-02 09:11:31 -04:00
|
|
|
News::Thread.join();
|
2016-02-04 15:58:49 -05:00
|
|
|
|
2016-06-26 08:25:54 -04:00
|
|
|
if (!strlen(Localization::Get("MPUI_CHANGELOG_TEXT")) || Localization::Get("MPUI_CHANGELOG_TEXT") == "Loading..."s)
|
2016-02-04 15:58:49 -05:00
|
|
|
{
|
|
|
|
Logger::Print("Failed to fetch changelog!\n");
|
|
|
|
result = false;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Logger::Print("Successfully fetched changelog.\n");
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!strcmp(Localization::Get("MPUI_MOTD_TEXT"), NEWS_MOTD_DEFUALT))
|
|
|
|
{
|
|
|
|
Logger::Print("Failed to fetch motd!\n");
|
|
|
|
result = false;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Logger::Print("Successfully fetched motd.\n");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return result;
|
|
|
|
}
|
2015-12-30 18:55:08 -05:00
|
|
|
|
|
|
|
News::News()
|
|
|
|
{
|
2016-03-17 14:11:59 -04:00
|
|
|
Localization::Set("MPUI_CHANGELOG_TEXT", "Loading...");
|
2016-02-04 15:58:49 -05:00
|
|
|
Localization::Set("MPUI_MOTD_TEXT", NEWS_MOTD_DEFUALT);
|
2016-01-11 18:48:27 -05:00
|
|
|
|
2016-06-02 09:11:31 -04:00
|
|
|
News::Thread = std::thread([] ()
|
2015-12-30 18:55:08 -05:00
|
|
|
{
|
2016-02-04 18:33:06 -05:00
|
|
|
Localization::Set("MPUI_CHANGELOG_TEXT", Utils::WebIO("IW4x", "https://iw4xcachep26muba.onion.to/iw4/changelog.txt").SetTimeout(5000)->Get().data());
|
2016-01-26 18:50:20 -05:00
|
|
|
|
2016-02-04 18:33:06 -05:00
|
|
|
std::string data = Utils::WebIO("IW4x", "https://iw4xcachep26muba.onion.to/iw4/motd.txt").SetTimeout(5000)->Get();
|
2015-12-30 18:55:08 -05:00
|
|
|
|
2016-02-12 09:06:06 -05:00
|
|
|
if (!data.empty())
|
2016-01-26 18:50:20 -05:00
|
|
|
{
|
|
|
|
Localization::Set("MPUI_MOTD_TEXT", data.data());
|
|
|
|
}
|
2016-01-07 18:59:59 -05:00
|
|
|
|
2016-01-26 18:50:20 -05:00
|
|
|
// TODO: Implement update checks here!
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
News::~News()
|
|
|
|
{
|
2016-06-02 09:11:31 -04:00
|
|
|
if (News::Thread.joinable())
|
2016-01-26 18:50:20 -05:00
|
|
|
{
|
2016-06-02 09:11:31 -04:00
|
|
|
News::Thread.join();
|
2016-01-26 18:50:20 -05:00
|
|
|
}
|
2015-12-30 18:55:08 -05:00
|
|
|
}
|
|
|
|
}
|