void CacheTest::testUser() { CDInfo testInfo = m_info; testInfo.set(QString::fromUtf8("source"), QString::fromUtf8("user")); QVERIFY(verify(QString::fromUtf8("user"), QString::fromUtf8("a1107d0a"), testInfo)); QFile::remove(QDir::homePath()+QString::fromUtf8("/.cddbTest/user/a1107d0a")); QDir().rmdir(QDir::homePath()+QString::fromUtf8("/.cddbTest/user/")); }
void CacheTest::testFreedb() { CDInfo testInfo = m_info; testInfo.set(QString::fromUtf8("source"), QString::fromUtf8("freedb")); testInfo.set(QString::fromUtf8("discid"), QString::fromUtf8("a1107d0a")); testInfo.set(QString::fromUtf8("category"), QString::fromUtf8("misc")); QVERIFY(verify(QString::fromUtf8("freedb"), QString::fromUtf8("a1107d0a"), testInfo)); QFile::remove(QDir::homePath()+QString::fromUtf8("/.cddbTest/misc/a1107d0a")); QDir().rmdir(QDir::homePath()+QString::fromUtf8("/.cddbTest/misc/")); }
void CacheTest::testMusicbrainz() { #ifdef HAVE_MUSICBRAINZ5 CDInfo testInfo = m_info; testInfo.set(QString::fromUtf8("source"), QString::fromUtf8("musicbrainz")); testInfo.set(QString::fromUtf8("discid"), QString::fromUtf8("wdABQ7s86gS7eVmS74CCQ6KwPUI-")); QVERIFY(verify(QString::fromUtf8("musicbrainz"), QString::fromUtf8("wdABQ7s86gS7eVmS74CCQ6KwPUI-"), testInfo)); QFile::remove(QDir::homePath()+QString::fromUtf8("/.cddbTest/musicbrainz/wdABQ7s86gS7eVmS74CCQ6KwPUI-")); QDir().rmdir(QDir::homePath()+QString::fromUtf8("/.cddbTest/musicbrainz/")); #endif }
void AsyncCDDBPLookup::parseCDInfoData() { CDInfo info; if (info.load( cdInfoBuffer_ )) { info.set( QLatin1String( "category" ), category_ ); info.set( QLatin1String( "discid" ), discid_ ); info.set( QLatin1String( "source" ), QLatin1String( "freedb" ) ); cdInfoList_.append( info ); } cdInfoBuffer_.clear(); }
void Cache::store(const CDInfo& info) { Config c; c.readConfig(); QString cacheDir = c.cacheLocations().first(); QDir d(cacheDir); if (!d.exists()) d.mkdir(cacheDir); // The same entry can contain several discids (separated by a ','), // so we save the entry to all of them QStringList discids = QStringList::split(',', info.id); for (QStringList::Iterator it = discids.begin(); it != discids.end(); ++it) { QString cacheFile = fileName(info.category, *it, cacheDir); kdDebug(60010) << "Storing " << cacheFile << " in CDDB cache" << endl; QFile f(cacheFile); if ( f.open(IO_WriteOnly) ) { QTextStream ts(&f); ts.setEncoding(QTextStream::UnicodeUTF8); ts << info.toString(); f.close(); } } }
CDInfoList Cache::lookup( const QString &cddbId ) { kdDebug(60010) << "Looking up " << cddbId << " in CDDB cache" << endl; CDInfoList infoList; Config c; c.readConfig(); QStringList cddbCacheDirs = c.cacheLocations(); for (QStringList::Iterator cddbCacheDir = cddbCacheDirs.begin(); cddbCacheDir != cddbCacheDirs.end(); ++cddbCacheDir) { QDir dir( *cddbCacheDir ); QStringList dirList = dir.entryList( QDir::Dirs ); QStringList::ConstIterator it = dirList.begin(); while ( it != dirList.end() ) { QString category( *it ); if ( category[ 0 ] != '.' ) { QFile f( *cddbCacheDir + "/" + category + "/" + cddbId ); if ( f.exists() && f.open(IO_ReadOnly) ) { QTextStream ts(&f); ts.setEncoding(QTextStream::UnicodeUTF8); QString cddbData = ts.read(); f.close(); CDInfo info; info.load(cddbData); info.category = category; infoList.append( info ); } } ++it; } } return infoList; }
void Submit::makeDiskData( const CDInfo& cdInfo, const TrackOffsetList& offsetList ) { unsigned numTracks = cdInfo.trackInfoList.count(); diskData_ += "# xmcd\n"; diskData_ += "#\n"; diskData_ += "# Track frame offsets:\n"; for (uint i=0; i < numTracks; i++) diskData_ += QString("#\t%1\n").arg(offsetList[i]); int l = offsetList[numTracks+1]/75; diskData_ += QString("# Disc length: %1 seconds\n").arg(l); diskData_ += cdInfo.toString(true); kdDebug(60010) << "diskData_ == " << diskData_ << endl; }
int main(int argc, char ** argv) { KCmdLineArgs::init(argc, argv, "libkcddb_test", 0, KLocalizedString(), ""); KApplication app(false /* No styles */); using namespace KCDDB; TrackOffsetList list; list << 150 // First track start. << 2592 << 35472 << 47891 << 123310 << 133125; // Disc end. CDInfo cdInfo; cdInfo.set("discid", "3606ed05"); cdInfo.set("revision", 4); cdInfo.set("title", "Bamse och Bronto"); cdInfo.set("artist", "Musiksage"); cdInfo.set("year", 2001); cdInfo.set("category", "misc"); cdInfo.set("genre", "Barnsaga"); cdInfo.set("extd", QString::fromUtf8("Berättare: Olof Thunberg")); cdInfo.track(0).set("title", "Bamses signaturmelodi"); cdInfo.track(1).set("title","*"); cdInfo.track(2).set("title", "Brummavisan"); cdInfo.track(3).set("title", "*"); cdInfo.track(4).set("title", QString::fromUtf8("Jätteödlan Bronto")); Client c; c.config().setFreedbSubmitTransport(Submit::HTTP); c.setBlockingMode( true ); Result r = c.submit(cdInfo, list); kDebug() << "Result: " << resultToString(r); }
AsyncSMTPSubmitTest::AsyncSMTPSubmitTest(QCoreApplication& app) : app_(app) { using namespace KCDDB; client_ = new Client; client_->config().setFreedbSubmitTransport(Submit::SMTP); client_->config().setSubmitAddress(QString::fromUtf8("*****@*****.**")); client_->setBlockingMode( false ); TrackOffsetList list; list << 150 // First track start. << 2592 << 35472 << 47891 << 123310 << 133125; // Disc end. CDInfo cdInfo; cdInfo.set(QString::fromUtf8("discid"), QString::fromUtf8("3606ed05")); cdInfo.set(QString::fromUtf8("revision"), 4); cdInfo.set(QString::fromUtf8("title"), QString::fromUtf8("Bamse och Bronto")); cdInfo.set(QString::fromUtf8("artist"), QString::fromUtf8("Musiksage")); cdInfo.set(QString::fromUtf8("year"), 2001); cdInfo.set(QString::fromUtf8("category"), QString::fromUtf8("misc")); cdInfo.set(QString::fromUtf8("genre"), QString::fromUtf8("Barnsaga")); cdInfo.set(QString::fromUtf8("extd"), QString::fromUtf8("Berättare: Olof Thunberg")); cdInfo.track(0).set(QString::fromUtf8("title"), QString::fromUtf8("Bamses signaturmelodi")); cdInfo.track(1).set(QString::fromUtf8("title"),QString::fromUtf8("*")); cdInfo.track(2).set(QString::fromUtf8("title"), QString::fromUtf8("Brummavisan")); cdInfo.track(3).set(QString::fromUtf8("title"), QString::fromUtf8("*")); cdInfo.track(4).set(QString::fromUtf8("title"), QString::fromUtf8("Jätteödlan Bronto")); connect(client_,SIGNAL(finished(KCDDB::Result)),SLOT(slotFinished(KCDDB::Result))); client_->submit(cdInfo, list); }
void HTTPLookup::jobFinished() { QStringList lineList = QString::fromUtf8(data_).split( QLatin1String( "\n" ), QString::SkipEmptyParts ); QStringList::ConstIterator it = lineList.constBegin(); switch ( state_ ) { case WaitingForQueryResponse: if ( it != lineList.constEnd() ) { QString line( *it ); result_ = parseQuery( line ); switch ( result_ ) { case Success: if ( !block_ ) emit queryReady(); break; case MultipleRecordFound: ++it; while ( it != lineList.constEnd() ) { QString line( *it ); if ( QLatin1Char( '.' ) == line[ 0 ] ) { result_ = Success; if ( !block_ ) emit queryReady(); break; } parseExtraMatch( line ); ++it; } break; case ServerError: case NoRecordFound: if ( !block_ ) emit queryReady(); return; break; default: break; } } break; case WaitingForReadResponse: { CDInfo info; if ( info.load( QString::fromUtf8(data_) ) ) { info.set( QLatin1String( "category" ), category_ ); info.set( QLatin1String( "discid" ), discid_ ); info.set( QLatin1String( "source" ), QLatin1String( "freedb" ) ); cdInfoList_.append( info ); } if ( !block_ ) emit readReady(); } return; break; default: break; } result_ = Success; }
int main(int argc, char ** argv) { QCoreApplication app(argc, argv); app.setApplicationName(QString::fromUtf8("libkcddb_test")); using namespace KCDDB; TrackOffsetList list; list << 150 // First track start. << 2592 << 35472 << 47891 << 123310 << 133125; // Disc end. CDInfo cdInfo; cdInfo.set(QString::fromUtf8("discid"), QString::fromUtf8("3606ed05")); cdInfo.set(QString::fromUtf8("revision"), 4); cdInfo.set(QString::fromUtf8("title"), QString::fromUtf8("Bamse och Bronto")); cdInfo.set(QString::fromUtf8("artist"), QString::fromUtf8("Musiksage")); cdInfo.set(QString::fromUtf8("year"), 2001); cdInfo.set(QString::fromUtf8("category"), QString::fromUtf8("misc")); cdInfo.set(QString::fromUtf8("genre"), QString::fromUtf8("Barnsaga")); cdInfo.set(QString::fromUtf8("extd"), QString::fromUtf8("Berättare: Olof Thunberg")); cdInfo.track(0).set(QString::fromUtf8("title"), QString::fromUtf8("Bamses signaturmelodi")); cdInfo.track(1).set(QString::fromUtf8("title"),QString::fromUtf8("*")); cdInfo.track(2).set(QString::fromUtf8("title"), QString::fromUtf8("Brummavisan")); cdInfo.track(3).set(QString::fromUtf8("title"), QString::fromUtf8("*")); cdInfo.track(4).set(QString::fromUtf8("title"), QString::fromUtf8("Jätteödlan Bronto")); Client c; c.config().setFreedbSubmitTransport(Submit::SMTP); c.config().setSubmitAddress(QString::fromUtf8("*****@*****.**")); c.setBlockingMode( true ); Result r = c.submit(cdInfo, list); qDebug() << "Result: " << resultToString(r); }