37
37
#include <KStandardDirs>
38
38
#include <KFileItem>
40
#include <Nepomuk/Thing>
41
#include <Nepomuk/ResourceManager>
42
#include <Nepomuk/Variant>
43
#include <Nepomuk/Query/QueryServiceClient>
44
#include <Nepomuk/Query/ComparisonTerm>
45
#include <Nepomuk/Query/ResourceTypeTerm>
46
#include <Nepomuk/Query/AndTerm>
47
#include <Nepomuk/Query/NegationTerm>
48
#include <Nepomuk/Query/Query>
40
#include <Nepomuk2/Thing>
41
#include <Nepomuk2/ResourceManager>
42
#include <Nepomuk2/Variant>
43
#include <Nepomuk2/Query/QueryServiceClient>
44
#include <Nepomuk2/Query/ComparisonTerm>
45
#include <Nepomuk2/Query/ResourceTypeTerm>
46
#include <Nepomuk2/Query/AndTerm>
47
#include <Nepomuk2/Query/NegationTerm>
48
#include <Nepomuk2/Query/Query>
50
50
#include <Soprano/Vocabulary/RDF>
51
51
#include <Soprano/Vocabulary/RDFS>
52
52
#include <Soprano/Vocabulary/NRL>
53
53
#include <Soprano/Vocabulary/NAO>
54
54
#include <Soprano/Vocabulary/XMLSchema>
55
#include <Nepomuk/Vocabulary/NFO>
56
#include <Nepomuk/Vocabulary/NIE>
57
#include <Nepomuk/Vocabulary/PIMO>
55
#include <Nepomuk2/Vocabulary/NFO>
56
#include <Nepomuk2/Vocabulary/NIE>
57
#include <Nepomuk2/Vocabulary/PIMO>
59
59
#include <sys/types.h>
60
60
#include <unistd.h>
69
69
uds.insert( KIO::UDSEntry::UDS_MIME_TYPE, QString::fromLatin1( "inode/directory" ) );
70
70
uds.insert( KIO::UDSEntry::UDS_ICON_OVERLAY_NAMES, QLatin1String( "nepomuk" ) );
71
71
uds.insert( KIO::UDSEntry::UDS_DISPLAY_TYPE, i18n( "Query folder" ) );
72
uds.insert( KIO::UDSEntry::UDS_NAME, Nepomuk::Query::Query::titleFromQueryUrl( url ) );
73
uds.insert( KIO::UDSEntry::UDS_DISPLAY_NAME, Nepomuk::Query::Query::titleFromQueryUrl( url ) );
72
uds.insert( KIO::UDSEntry::UDS_NAME, Nepomuk2::Query::Query::titleFromQueryUrl( url ) );
73
uds.insert( KIO::UDSEntry::UDS_DISPLAY_NAME, Nepomuk2::Query::Query::titleFromQueryUrl( url ) );
74
74
if ( url.hasQueryItem( QLatin1String( "resource" ) ) ) {
75
Nepomuk::addGenericNepomukResourceData( Nepomuk::Resource( KUrl( url.queryItemValue( QLatin1String( "resource" ) ) ) ), uds );
75
Nepomuk2::addGenericNepomukResourceData( Nepomuk2::Resource( KUrl( url.queryItemValue( QLatin1String( "resource" ) ) ) ), uds );
77
Nepomuk::Query::Query query = Nepomuk::Query::Query::fromQueryUrl( url );
77
Nepomuk2::Query::Query query = Nepomuk2::Query::Query::fromQueryUrl( url );
78
78
if ( query.isValid() )
79
79
uds.insert( KIO::UDSEntry::UDS_NEPOMUK_QUERY, query.toString() );
104
104
KUrl convertLegacyQueryUrl( const KUrl& url ) {
105
KUrl newUrl(QLatin1String("nepomuksearch:/") + Nepomuk::Query::Query::titleFromQueryUrl(url));
106
Nepomuk::Query::Query query = Nepomuk::Query::Query::fromQueryUrl(url);
105
KUrl newUrl(QLatin1String("nepomuksearch:/") + Nepomuk2::Query::Query::titleFromQueryUrl(url));
106
Nepomuk2::Query::Query query = Nepomuk2::Query::Query::fromQueryUrl(url);
107
107
if(query.isValid())
108
108
newUrl.addQueryItem(QLatin1String("encodedquery"), query.toString());
110
newUrl.addQueryItem(QLatin1String("sparql"), Nepomuk::Query::Query::sparqlFromQueryUrl(url));
110
newUrl.addQueryItem(QLatin1String("sparql"), Nepomuk2::Query::Query::sparqlFromQueryUrl(url));
114
Nepomuk::Query::Query rootQuery() {
114
Nepomuk2::Query::Query rootQuery() {
115
115
KConfig config( "kio_nepomuksearchrc" );
116
116
QString queryStr = config.group( "General" ).readEntry( "Root query", QString() );
117
Nepomuk::Query::Query query;
117
Nepomuk2::Query::Query query;
118
118
if ( queryStr.isEmpty() )
119
query = Nepomuk::lastModifiedFilesQuery();
119
query = Nepomuk2::lastModifiedFilesQuery();
121
query = Nepomuk::Query::Query::fromString( queryStr );
121
query = Nepomuk2::Query::Query::fromString( queryStr );
122
122
query.setLimit( config.group( "General" ).readEntry( "Root query limit", 10 ) );
129
Nepomuk::SearchProtocol::SearchProtocol( const QByteArray& poolSocket, const QByteArray& appSocket )
129
Nepomuk2::SearchProtocol::SearchProtocol( const QByteArray& poolSocket, const QByteArray& appSocket )
130
130
: KIO::ForwardingSlaveBase( "nepomuksearch", poolSocket, appSocket )
135
Nepomuk::SearchProtocol::~SearchProtocol()
135
Nepomuk2::SearchProtocol::~SearchProtocol()
140
bool Nepomuk::SearchProtocol::ensureNepomukRunning( bool emitError )
140
bool Nepomuk2::SearchProtocol::ensureNepomukRunning( bool emitError )
142
if ( Nepomuk::ResourceManager::instance()->init() ) {
142
if ( Nepomuk2::ResourceManager::instance()->init() ) {
143
143
kDebug() << "Failed to init Nepomuk";
145
145
error( KIO::ERR_SLAVE_DEFINED, i18n( "The desktop search service is not activated. Unable to answer queries without it." ) );
148
else if ( !Nepomuk::Query::QueryServiceClient::serviceAvailable() ) {
148
else if ( !Nepomuk2::Query::QueryServiceClient::serviceAvailable() ) {
149
149
kDebug() << "Nepomuk Query service is not running.";
151
151
error( KIO::ERR_SLAVE_DEFINED, i18n( "The desktop search query service is not running. Unable to answer queries without it." ) );
211
void Nepomuk::SearchProtocol::put( const KUrl& url, int permissions, KIO::JobFlags flags )
211
void Nepomuk2::SearchProtocol::put( const KUrl& url, int permissions, KIO::JobFlags flags )
213
213
kDebug() << url << permissions << flags;
286
void Nepomuk::SearchProtocol::del(const KUrl& url, bool isFile)
286
void Nepomuk2::SearchProtocol::del(const KUrl& url, bool isFile)
288
288
ForwardingSlaveBase::del( url, isFile );
292
bool Nepomuk::SearchProtocol::rewriteUrl( const KUrl& url, KUrl& newURL )
292
bool Nepomuk2::SearchProtocol::rewriteUrl( const KUrl& url, KUrl& newURL )
294
294
// we do it the speedy but slightly umpf way: decode the encoded URI from the filename
295
newURL = Nepomuk::udsNameToResourceUri( url.fileName() );
295
newURL = Nepomuk2::udsNameToResourceUri( url.fileName() );
296
296
kDebug() << "URL:" << url << "NEW URL:" << newURL << newURL.protocol() << newURL.path() << newURL.fileName();
297
297
return !newURL.isEmpty();
301
void Nepomuk::SearchProtocol::prepareUDSEntry( KIO::UDSEntry& uds, bool listing ) const
301
void Nepomuk2::SearchProtocol::prepareUDSEntry( KIO::UDSEntry& uds, bool listing ) const
303
303
// do nothing - we do everything in SearchFolder::statResult
326
Nepomuk::SearchFolder* Nepomuk::SearchProtocol::getQueryFolder( const KUrl& url )
326
Nepomuk2::SearchFolder* Nepomuk2::SearchProtocol::getQueryFolder( const KUrl& url )
328
328
return new SearchFolder( url, this );
332
void Nepomuk::SearchProtocol::updateQueryUrlHistory( const KUrl& url )
332
void Nepomuk2::SearchProtocol::updateQueryUrlHistory( const KUrl& url )
335
335
// if the url is already in the history update its timestamp
388
388
kDebug(7102) << "Starting nepomuksearch slave " << getpid();
390
Nepomuk::SearchProtocol slave( argv[2], argv[3] );
390
Nepomuk2::SearchProtocol slave( argv[2], argv[3] );
391
391
slave.dispatchLoop();
393
393
kDebug(7102) << "Nepomuksearch slave Done";
401
void Nepomuk::SearchProtocol::listUserQueries()
401
void Nepomuk2::SearchProtocol::listUserQueries()
403
403
UserQueryUrlList userQueries;
404
404
Q_FOREACH( const KUrl& url, userQueries ) {
407
407
listEntry( uds, false );
410
void Nepomuk::SearchProtocol::listLastQueries()
410
void Nepomuk2::SearchProtocol::listLastQueries()
412
412
KSharedConfigPtr cfg = KSharedConfig::openConfig( "kio_nepomuksearchrc" );
413
413
KConfigGroup grp = cfg->group( "Last Queries" );