#include <LocalMyList/MyList>
#include <LocalMyList/Settings>
-#include <LocalMyList/RequestHandler>
-#include <AniDBUdpClient/Client>
+#ifndef LOCALMYLIST_NO_ANIDBUDPCLIENT
+# include <LocalMyList/RequestHandler>
+# include <AniDBUdpClient/Client>
+#endif
#include <QSqlError>
#include <QTimer>
#include <QDebug>
void AniOni::handleUdpClientError()
{
+#ifndef LOCALMYLIST_NO_ANIDBUDPCLIENT
using namespace AniDBUdpClient;
switch (Client::instance()->error())
return;
break;
}
+#endif
}
void AniOni::failRequests()
if (LocalMyList::instance()->isUdpHost() && runUdpClient)
{
+#ifndef LOCALMYLIST_NO_ANIDBUDPCLIENT
LocalMyList::instance()->setupUdpClient();
AniDBUdpClient::Client::instance()->setIdlePolicy(
AniDBUdpClient::IdlePolicy(LocalMyList::instance()->settings()->get("udpClientIdlePolicy").toInt()));
LocalMyList::instance()->setupRequestHandler();
LocalMyList::instance()->requestHandler()->handleRequests();
LocalMyList::instance()->requestHandler()->handleMyListUpdates();
+#else
+ log(QString("AniOni was configured to run the UDP client, but LocalMyList is not compiled with the UDP client."
+ " Recompile LocalMyList with AniDBUdpClient"), QtServiceBase::Error);
+ application()->exit(1);
+ return;
+#endif
}
if (runRenameHandler)
include(../localmylist.pri)
include(qtservice/qtservice.pri)
+noanidbudpclient:DEFINES += LOCALMYLIST_NO_ANIDBUDPCLIENT
target.path = $${PREFIX}/bin
#include "database.h"
#include "mylist.h"
-
-#include <AniDBUdpClient/Hash>
-#include <AniDBUdpClient/Client>
-#include <AniDBUdpClient/FileCommand>
+#ifndef LOCALMYLIST_NO_ANIDBUDPCLIENT
+# include <AniDBUdpClient/Hash>
+# include <AniDBUdpClient/Client>
+# include <AniDBUdpClient/FileCommand>
+#endif
namespace LocalMyList {
+#ifndef LOCALMYLIST_NO_ANIDBUDPCLIENT
using namespace AniDBUdpClient;
+#endif
AddFileTask::AddFileTask(QObject *parent) :
AbstractTask(parent), hashResult(0)
AddFileTask::~AddFileTask()
{
+#ifndef LOCALMYLIST_NO_ANIDBUDPCLIENT
if (hashResult)
hashResult->deleteLater();
+#endif
}
QFileInfo AddFileTask::file() const
void AddFileTask::start()
{
+#ifndef LOCALMYLIST_NO_ANIDBUDPCLIENT
if (!m_file.exists() || !m_file.size())
{
emit finished();
}
hashResult = Hash::instance()->hashFile(HashRequest(m_file));
connect(hashResult, SIGNAL(resultReady()), this, SLOT(hashingFinished()));
+#else
+ emit finished();
+ // Should error if these tasks had errors :)
+#endif
}
void AddFileTask::setFile(const QFileInfo &file)
void AddFileTask::hashingFinished()
{
+#ifndef LOCALMYLIST_NO_ANIDBUDPCLIENT
int fid = db->isKnownFile(hashResult->hash(), m_file.size());
if (fid)
{
request.size = m_file.size();
db->addRequest(request);
-
emit finished();
+#endif
}
} // namespace LocalMyList
public:
explicit AddFileTask(QObject *parent = 0);
~AddFileTask();
-
+
QFileInfo file() const;
QString taskSubject() const;
public slots:
void setFile(const QFileInfo &file);
-
+
private slots:
void hashingFinished();
-
+
private:
QFileInfo m_file;
AniDBUdpClient::HashResult *hashResult;
addfiletask.cpp \
abstracttask.cpp \
directoryscantask.cpp \
- requesthandler.cpp \
mylist.cpp \
mylistmodel.cpp \
mylistnode.cpp \
animetitleparsetask.cpp \
mylistexportparsetask.cpp \
settings.cpp \
- renamehandler.cpp \
unknownfilelookuptask.cpp \
- renameutils.cpp \
directorywatcher.cpp \
addrelatedepisodestask.cpp \
scriptablesql.cpp \
addfiletask.h \
abstracttask.h \
directoryscantask.h \
- requesthandler.h \
mylist.h \
mylistmodel.h \
mylistnode.h \
animetitleparsetask.h \
mylistexportparsetask.h \
settings.h \
- renamehandler.h \
unknownfilelookuptask.h \
- renameutils.h \
directorywatcher.h \
addrelatedepisodestask.h \
scriptablesql.h \
include/LocalMyList/MyListExportParseTask \
include/LocalMyList/MyListModel \
include/LocalMyList/MyListNode \
- include/LocalMyList/RenameUtils \
- include/LocalMyList/RequestHandler \
include/LocalMyList/Settings \
include/LocalMyList/UnknownFileLookupTask
SOURCES += scriptable.cpp
}
+!noanidbudpclient {
+ SOURCES += requesthandler.cpp \
+ renamehandler.cpp \
+ renameutils.cpp
+ HEADERS += requesthandler.h \
+ renamehandler.h \
+ renameutils.h
+ CONV_HEADERS += include/LocalMyList/RenameUtils \
+ include/LocalMyList/RequestHandler
+ LIBS += -lanidbudpclient
+} else {
+ DEFINES += LOCALMYLIST_NO_ANIDBUDPCLIENT
+}
+
+
SHARE += \
share/schema/schema.sql \
share/schema/default_config.sql
-LIBS += -lanidbudpclient
-
target.path = $${PREFIX}/lib
headers.path = $${PREFIX}/include/LocalMyList
#include <QMetaType>
#include <QCoreApplication>
+#include <QHostInfo>
#include "database.h"
#include "abstracttask.h"
#include "animetitleparsetask.h"
#include "mylistexportparsetask.h"
#include "workthread.h"
-#include "requesthandler.h"
-#include "renamehandler.h"
+#ifndef LOCALMYLIST_NO_ANIDBUDPCLIENT
+# include "requesthandler.h"
+# include "renamehandler.h"
+#endif
#include "directorywatcher.h"
-#include <AniDBUdpClient/Client>
-
+#ifndef LOCALMYLIST_NO_ANIDBUDPCLIENT
+# include <AniDBUdpClient/Client>
+#endif
namespace LocalMyList {
MyList::MyList()
void MyList::setupUdpClient()
{
+#ifdef LOCALMYLIST_NO_ANIDBUDPCLIENT
+ return;
+#else
if (!db->isConnected())
return;
Client::instance()->setPass(m_settings->get("udpClientPass").toString());
Client::instance()->setEncryptionEnabled(m_settings->get("udpClientEncryptionEnabled").toBool());
Client::instance()->setApiKey(m_settings->get("udpClientApiKey").toString());
+#endif
}
void MyList::setupRequestHandler()
{
+#ifndef LOCALMYLIST_NO_ANIDBUDPCLIENT
if (m_requestHandler || !db->isConnected())
return;
m_requestHandler = new RequestHandler(db, this);
connect(db, SIGNAL(newPendingRequest()), m_requestHandler, SLOT(handleRequests()));
connect(db, SIGNAL(newPendingMyListUpdate()), m_requestHandler, SLOT(handleMyListUpdates()));
+#endif
}
void MyList::setupRenameHandler()
{
+#ifndef LOCALMYLIST_NO_ANIDBUDPCLIENT
if (m_renameHandler || !db->isConnected())
return;
m_renameHandler = new RenameHandler(workThread->database(), workThread->settings());
m_renameHandler->moveToThread(workThread);
+#endif
}
void MyList::setupDirectoryWatcher()
m_instance = 0;
}
+bool MyList::isUdpClientAvailable()
+{
+#ifdef LOCALMYLIST_NO_ANIDBUDPCLIENT
+ return false;
+#else
+ return true;
+#endif
+}
+
void MyList::init()
{
static bool init = false;
static MyList *instance();
static void destroy();
+ static bool isUdpClientAvailable();
+
static bool REGISTER_QT_TYPES;
static bool MANUAL_CLEANUP;
on_actionStartRenameHandler_triggered();
if (autostartUdpClient)
on_actionStartUDPCLient_triggered();
+
+ if (!MyList::isUdpClientAvailable())
+ {
+ ui->actionStartUDPCLient->setDisabled(true);
+ ui->actionStartRenameHandler->setDisabled(true);
+ ui->actionRenameScript->setDisabled(true);
+ ui->actionRenameFiles->setDisabled(true);
+ }
}
MainWindow::~MainWindow()
void MainWindow::openRenameScriptEditor(int fid)
{
+#ifndef LOCALMYLIST_NO_ANIDBUDPCLIENT
if (!renameSettingsDialog)
renameSettingsDialog = new RenameSettingsDialog();
renameSettingsDialog->setupEnvForFile(fid);
renameSettingsDialog->show();
+#else
+ Q_UNUSED(fid)
+#endif
}
void MainWindow::on_actionConnect_triggered()
SOURCES += main.cpp\
- mainwindow.cpp \
+ mainwindow.cpp \
databaseconnectiondialog.cpp \
mylistview.cpp \
- renamesettingsdialog.cpp \
mylistfiltermodel.cpp \
reporteditordialog.cpp
HEADERS += mainwindow.h \
databaseconnectiondialog.h \
mylistview.h \
- renamesettingsdialog.h \
mylistfiltermodel.h \
reporteditordialog.h
FORMS += mainwindow.ui \
- databaseconnectiondialog.ui \
- renamesettingsdialog.ui
+ databaseconnectiondialog.ui
include(../localmylist.pri)
include(qtsingleapplication/qtsingleapplication.pri)
-LIBS += -lanidbudpclient
-
+!noanidbudpclient {
+ SOURCES += renamesettingsdialog.cpp
+ HEADERS += renamesettingsdialog.h
+ FORMS += renamesettingsdialog.ui
+ LIBS += -lanidbudpclient
+} else {
+ DEFINES += LOCALMYLIST_NO_ANIDBUDPCLIENT
+}
target.path = $${PREFIX}/bin
INSTALLS += target
connect(renameTestAction, SIGNAL(triggered()), this, SLOT(renameTest()));
requestDataAction = new QAction(tr("Request Data"), this);
connect(requestDataAction, SIGNAL(triggered()), this, SLOT(requestData()));
+
+ if (!LocalMyList::MyList::isUdpClientAvailable())
+ {
+ renameFilesAction->setDisabled(true);
+ renameTestAction->setDisabled(true);
+ }
}
MyListFilterModel *MyListView::myListFilterModel() const