Translation downloading!
This commit is contained in:
		@@ -11,11 +11,13 @@ const QString LIBRARY_BASE("libraries.minecraft.net/");
 | 
			
		||||
const QString SKINS_BASE("skins.minecraft.net/MinecraftSkins/");
 | 
			
		||||
const QString AUTH_BASE("authserver.mojang.com/");
 | 
			
		||||
const QString FORGE_LEGACY_URL("http://files.minecraftforge.net/minecraftforge/json");
 | 
			
		||||
const QString FORGE_GRADLE_URL("http://files.minecraftforge.net/maven/net/minecraftforge/forge/json");
 | 
			
		||||
const QString
 | 
			
		||||
	FORGE_GRADLE_URL("http://files.minecraftforge.net/maven/net/minecraftforge/forge/json");
 | 
			
		||||
const QString MOJANG_STATUS_URL("http://status.mojang.com/check");
 | 
			
		||||
const QString MOJANG_STATUS_NEWS_URL("http://status.mojang.com/news");
 | 
			
		||||
const QString LITELOADER_URL("http://dl.liteloader.com/versions/versions.json");
 | 
			
		||||
const QString IMGUR_BASE_URL("https://api.imgur.com/3/");
 | 
			
		||||
const QString FMLLIBS_OUR_BASE_URL("http://files.multimc.org/fmllibs/");
 | 
			
		||||
const QString FMLLIBS_FORGE_BASE_URL("http://files.minecraftforge.net/fmllibs/");
 | 
			
		||||
const QString TRANSLATIONS_BASE_URL("http://files.multimc.org/translations/");
 | 
			
		||||
}
 | 
			
		||||
@@ -36,4 +36,5 @@ extern const QString LITELOADER_URL;
 | 
			
		||||
extern const QString IMGUR_BASE_URL;
 | 
			
		||||
extern const QString FMLLIBS_OUR_BASE_URL;
 | 
			
		||||
extern const QString FMLLIBS_FORGE_BASE_URL;
 | 
			
		||||
extern const QString TRANSLATIONS_BASE_URL;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										51
									
								
								logic/trans/TranslationDownloader.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								logic/trans/TranslationDownloader.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,51 @@
 | 
			
		||||
#include "TranslationDownloader.h"
 | 
			
		||||
#include "logic/net/NetJob.h"
 | 
			
		||||
#include "logic/net/ByteArrayDownload.h"
 | 
			
		||||
#include "logic/net/CacheDownload.h"
 | 
			
		||||
#include "logic/net/URLConstants.h"
 | 
			
		||||
#include "MultiMC.h"
 | 
			
		||||
 | 
			
		||||
TranslationDownloader::TranslationDownloader()
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
void TranslationDownloader::downloadTranslations()
 | 
			
		||||
{
 | 
			
		||||
	QLOG_DEBUG() << "Downloading Translations Index...";
 | 
			
		||||
	m_index_job.reset(new NetJob("Translations Index"));
 | 
			
		||||
	m_index_task = ByteArrayDownload::make(QUrl("http://files.multimc.org/translations/index"));
 | 
			
		||||
	m_index_job->addNetAction(m_index_task);
 | 
			
		||||
	connect(m_index_job.get(), &NetJob::failed, this, &TranslationDownloader::indexFailed);
 | 
			
		||||
	connect(m_index_job.get(), &NetJob::succeeded, this, &TranslationDownloader::indexRecieved);
 | 
			
		||||
	m_index_job->start();
 | 
			
		||||
}
 | 
			
		||||
void TranslationDownloader::indexRecieved()
 | 
			
		||||
{
 | 
			
		||||
	QLOG_DEBUG() << "Got translations index!";
 | 
			
		||||
	m_dl_job.reset(new NetJob("Translations"));
 | 
			
		||||
	QList<QByteArray> lines = m_index_task->m_data.split('\n');
 | 
			
		||||
	for (const auto line : lines)
 | 
			
		||||
	{
 | 
			
		||||
		if (!line.isEmpty())
 | 
			
		||||
		{
 | 
			
		||||
			CacheDownloadPtr dl = CacheDownload::make(
 | 
			
		||||
				QUrl(URLConstants::TRANSLATIONS_BASE_URL + line),
 | 
			
		||||
				MMC->metacache()->resolveEntry("translations", "mmc_" + line));
 | 
			
		||||
			m_dl_job->addNetAction(dl);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	connect(m_dl_job.get(), &NetJob::succeeded, this, &TranslationDownloader::dlGood);
 | 
			
		||||
	connect(m_dl_job.get(), &NetJob::failed, this, &TranslationDownloader::dlFailed);
 | 
			
		||||
	m_dl_job->start();
 | 
			
		||||
}
 | 
			
		||||
void TranslationDownloader::dlFailed()
 | 
			
		||||
{
 | 
			
		||||
	QLOG_ERROR() << "Translations Download Failed!";
 | 
			
		||||
}
 | 
			
		||||
void TranslationDownloader::dlGood()
 | 
			
		||||
{
 | 
			
		||||
	QLOG_DEBUG() << "Got translations!";
 | 
			
		||||
}
 | 
			
		||||
void TranslationDownloader::indexFailed()
 | 
			
		||||
{
 | 
			
		||||
	QLOG_ERROR() << "Translations Index Download Failed!";
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										30
									
								
								logic/trans/TranslationDownloader.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								logic/trans/TranslationDownloader.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <QList>
 | 
			
		||||
#include <QUrl>
 | 
			
		||||
#include <memory>
 | 
			
		||||
#include <QObject>
 | 
			
		||||
 | 
			
		||||
class ByteArrayDownload;
 | 
			
		||||
class NetJob;
 | 
			
		||||
 | 
			
		||||
class TranslationDownloader : public QObject
 | 
			
		||||
{
 | 
			
		||||
	Q_OBJECT
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
	TranslationDownloader();
 | 
			
		||||
 | 
			
		||||
	void downloadTranslations();
 | 
			
		||||
 | 
			
		||||
private slots:
 | 
			
		||||
	void indexRecieved();
 | 
			
		||||
	void indexFailed();
 | 
			
		||||
	void dlFailed();
 | 
			
		||||
	void dlGood();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
	std::shared_ptr<ByteArrayDownload> m_index_task;
 | 
			
		||||
	std::shared_ptr<NetJob> m_dl_job;
 | 
			
		||||
	std::shared_ptr<NetJob> m_index_job;
 | 
			
		||||
};
 | 
			
		||||
		Reference in New Issue
	
	Block a user