22
22
#include <kaboutdata.h>
23
23
#include <kcmdlineargs.h>
24
24
#include <kfilemetainfo.h>
25
#include <kcomponentdata.h>
25
26
#include <klocale.h>
27
28
#include <QtCore/QByteArray>
29
#include <QtCore/QCoreApplication>
28
30
#include <QtCore/QDataStream>
29
31
#include <QtCore/QHash>
30
32
#include <QtCore/QString>
33
#include <QtCore/QTimer>
32
35
#define DISABLE_NEPOMUK_LEGACY
33
36
#include "config-nepomuk.h"
47
50
using namespace std;
49
static void sendMetaData(const QHash<KUrl, Nepomuk::Variant>& data)
52
class KFileMetaDataReaderApplication : public QCoreApplication
57
KFileMetaDataReaderApplication(int& argc, char** argv);
60
void readAndSendMetaData();
63
void sendMetaData(const QHash<KUrl, Nepomuk::Variant>& data);
64
QHash<KUrl, Nepomuk::Variant> readFileMetaData(const QList<KUrl>& urls) const;
65
QHash<KUrl, Nepomuk::Variant> readFileAndContextMetaData(const QList<KUrl>& urls) const;
70
KFileMetaDataReaderApplication::KFileMetaDataReaderApplication(int& argc, char** argv) :
71
QCoreApplication(argc, argv)
73
QTimer::singleShot(0, this, SLOT(readAndSendMetaData()));
76
void KFileMetaDataReaderApplication::readAndSendMetaData()
78
const KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
81
for (int i = 0; i < args->count(); ++i) {
82
urls.append(KUrl(args->arg(i)));
85
QHash<KUrl, Nepomuk::Variant> metaData;
86
if (args->isSet("file")) {
87
metaData = readFileMetaData(urls);
89
metaData = readFileAndContextMetaData(urls);
92
sendMetaData(metaData);
97
void KFileMetaDataReaderApplication::sendMetaData(const QHash<KUrl, Nepomuk::Variant>& data)
51
99
QByteArray byteArray;
52
100
QDataStream out(&byteArray, QIODevice::WriteOnly);
73
121
cout << byteArray.toBase64().constData();
76
static QHash<KUrl, Nepomuk::Variant> readFileMetaData(const QList<KUrl>& urls)
124
QHash<KUrl, Nepomuk::Variant> KFileMetaDataReaderApplication::readFileMetaData(const QList<KUrl>& urls) const
78
126
QHash<KUrl, Nepomuk::Variant> data;
98
static QHash<KUrl, Nepomuk::Variant> readFileAndContextMetaData(const QList<KUrl>& urls)
146
QHash<KUrl, Nepomuk::Variant> KFileMetaDataReaderApplication::readFileAndContextMetaData(const QList<KUrl>& urls) const
100
148
QHash<KUrl, Nepomuk::Variant> metaData;
167
215
int main(int argc, char *argv[])
169
KAboutData aboutData("kfilemetadatareader", 0, ki18n("KFileMetaDataReader"),
217
KAboutData aboutData("kfilemetadatareader", "kio4", ki18n("KFileMetaDataReader"),
171
219
ki18n("KFileMetaDataReader can be used to read metadata from a file"),
172
220
KAboutData::License_GPL,
173
221
ki18n("(C) 2011, Peter Penz"));
174
222
aboutData.addAuthor(ki18n("Peter Penz"), ki18n("Current maintainer"), "peter.penz19@gmail.com");
223
KComponentData compData(&aboutData);
176
225
KCmdLineArgs::init(argc, argv, &aboutData);
178
227
KCmdLineOptions options;
179
228
options.add("file", ki18n("Only the meta data that is part of the file is read"));
180
229
options.add("+[arg]", ki18n("List of URLs where the meta-data should be read from"));
182
231
KCmdLineArgs::addCmdLineOptions(options);
183
const KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
186
const int argsCount = args->count();
187
for (int i = 0; i < argsCount; ++i) {
188
urls.append(KUrl(args->arg(i)));
191
QHash<KUrl, Nepomuk::Variant> metaData;
192
if (args->isSet("file")) {
193
metaData = readFileMetaData(urls);
195
metaData = readFileAndContextMetaData(urls);
198
sendMetaData(metaData);
233
KFileMetaDataReaderApplication app(argc, argv);
237
#include "kfilemetadatareaderprocess.moc"