[tellico/3.1] /: Remove deprecated Wine.com data source
Robby Stephenson
null at kde.org
Tue Jan 16 01:31:13 UTC 2018
Git commit 128f9135d5aa7a740b4823c415a9d6dcf14d9759 by Robby Stephenson.
Committed on 16/01/2018 at 01:29.
Pushed by rstephenson into branch '3.1'.
Remove deprecated Wine.com data source
M +4 -0 ChangeLog
M +2 -11 doc/configuration.docbook
M +0 -1 src/fetch/CMakeLists.txt
M +0 -2 src/fetch/fetcherinitializer.cpp
D +0 -346 src/fetch/winecomfetcher.cpp
D +0 -106 src/fetch/winecomfetcher.h
M +2 -2 src/main.cpp
M +0 -8 src/tests/CMakeLists.txt
D +0 -79 src/tests/winecomfetchertest.cpp
D +0 -46 src/tests/winecomfetchertest.h
M +0 -1 xslt/CMakeLists.txt
D +0 -110 xslt/winecom2tellico.xsl
https://commits.kde.org/tellico/128f9135d5aa7a740b4823c415a9d6dcf14d9759
diff --git a/ChangeLog b/ChangeLog
index 8105b3d1..b287c039 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2018-01-15 Robby Stephenson <robby at periapsis.org>
+
+ * Removed deprecated Wine.com data source.
+
2018-01-14 Robby Stephenson <robby at periapsis.org>
* Updated Kino.de data source.
diff --git a/doc/configuration.docbook b/doc/configuration.docbook
index 6691db7c..dec8710c 100644
--- a/doc/configuration.docbook
+++ b/doc/configuration.docbook
@@ -169,7 +169,6 @@ in the Data Sources Dialog. There are many available types and sources. A few of
<listitem><para><link linkend="bib-sources">bibsonomy.org</link>,</para></listitem>
<listitem><para><link linkend="bib-sources">crossref.org</link>,</para></listitem>
<listitem><para><link linkend="discogs">Discogs.com</link>,</para></listitem>
-<listitem><para><link linkend="winecom">Wine.com</link>,</para></listitem>
<listitem><para><link linkend="tmdb">TheMovieDB.org</link>,</para></listitem>
<listitem><para><link linkend="tgdb">TheGamesDB.net</link>,</para></listitem>
<listitem><para><link linkend="omdb">OMDBAPI.com</link>,</para></listitem>
@@ -373,17 +372,10 @@ The <ulink url="http://www.imdb.com">Internet Movie Database</ulink> provides in
</sect2>
<!-- start of wine sources -->
-<sect2 id="wine-sources">
+<!--<sect2 id="wine-sources">
<title>Wine Data Sources</title>
-<sect3 id="winecom">
-<title>Wine.com</title>
-<para>
-<ulink url="http://wine.com">Wine.com</ulink> is an online wine seller, and offers access to a database information on wine varietals. Registration for a free account is required.
-</para>
-</sect3>
-
-</sect2>
+</sect2>-->
<!-- start of video game sources -->
<sect2 id="videogame-sources">
@@ -405,7 +397,6 @@ The <ulink url="http://www.imdb.com">Internet Movie Database</ulink> provides in
</sect2>
-<!-- start of wine sources -->
<sect2 id="variety-type-sources">
<title>Data Sources for Multiple Collection Types</title>
diff --git a/src/fetch/CMakeLists.txt b/src/fetch/CMakeLists.txt
index 1ca9fbaa..c91d6614 100644
--- a/src/fetch/CMakeLists.txt
+++ b/src/fetch/CMakeLists.txt
@@ -55,7 +55,6 @@ SET(fetch_STAT_SRCS
themoviedbfetcher.cpp
videogamegeekfetcher.cpp
vndbfetcher.cpp
- winecomfetcher.cpp
xmlfetcher.cpp
z3950connection.cpp
z3950fetcher.cpp
diff --git a/src/fetch/fetcherinitializer.cpp b/src/fetch/fetcherinitializer.cpp
index 1c1c7421..ddf11939 100644
--- a/src/fetch/fetcherinitializer.cpp
+++ b/src/fetch/fetcherinitializer.cpp
@@ -42,7 +42,6 @@
#include "bibsonomyfetcher.h"
#include "googlescholarfetcher.h"
#include "discogsfetcher.h"
-#include "winecomfetcher.h"
#include "themoviedbfetcher.h"
#include "musicbrainzfetcher.h"
#include "giantbombfetcher.h"
@@ -95,7 +94,6 @@ Tellico::Fetch::FetcherInitializer::FetcherInitializer() {
RegisterFetcher<Fetch::ArxivFetcher> registerArxiv(Arxiv);
RegisterFetcher<Fetch::BibsonomyFetcher> registerBibsonomy(Bibsonomy);
RegisterFetcher<Fetch::GoogleScholarFetcher> registerGoogle(GoogleScholar);
- RegisterFetcher<Fetch::WineComFetcher> registerWine(WineCom);
RegisterFetcher<Fetch::MusicBrainzFetcher> registerMB(MusicBrainz);
RegisterFetcher<Fetch::GiantBombFetcher> registerBomb(GiantBomb);
RegisterFetcher<Fetch::OpenLibraryFetcher> registerOpenLibrary(OpenLibrary);
diff --git a/src/fetch/winecomfetcher.cpp b/src/fetch/winecomfetcher.cpp
deleted file mode 100644
index eb3ccac7..00000000
--- a/src/fetch/winecomfetcher.cpp
+++ /dev/null
@@ -1,346 +0,0 @@
-/***************************************************************************
- Copyright (C) 2009 Robby Stephenson <robby at periapsis.org>
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or *
- * modify it under the terms of the GNU General Public License as *
- * published by the Free Software Foundation; either version 2 of *
- * the License or (at your option) version 3 or any later version *
- * accepted by the membership of KDE e.V. (or its successor approved *
- * by the membership of KDE e.V.), which shall act as a proxy *
- * defined in Section 14 of version 3 of the license. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program. If not, see <http://www.gnu.org/licenses/>. *
- * *
- ***************************************************************************/
-
-#include "winecomfetcher.h"
-#include "../translators/xslthandler.h"
-#include "../translators/tellicoimporter.h"
-#include "../utils/guiproxy.h"
-#include "../utils/string_utils.h"
-#include "../collection.h"
-#include "../entry.h"
-#include "../images/imagefactory.h"
-#include "../utils/datafileregistry.h"
-#include "../tellico_debug.h"
-
-#include <KLocalizedString>
-#include <KIO/Job>
-#include <KJobUiDelegate>
-#include <KConfigGroup>
-#include <KJobWidgets/KJobWidgets>
-
-#include <QLineEdit>
-#include <QDomDocument>
-#include <QLabel>
-#include <QFile>
-#include <QTextStream>
-#include <QVBoxLayout>
-#include <QTextCodec>
-#include <QUrlQuery>
-
-namespace {
- static const int WINECOM_RETURNS_PER_REQUEST = 25;
- static const int WINECOM_MAX_RETURNS_TOTAL = 100;
- static const char* WINECOM_BASE_URL = "http://services.wine.com";
-}
-
-using namespace Tellico;
-using Tellico::Fetch::WineComFetcher;
-
-WineComFetcher::WineComFetcher(QObject* parent_)
- : Fetcher(parent_), m_xsltHandler(nullptr),
- m_limit(WINECOM_MAX_RETURNS_TOTAL), m_page(1), m_total(-1), m_numResults(0), m_offset(0),
- m_job(nullptr), m_started(false) {
-}
-
-WineComFetcher::~WineComFetcher() {
- delete m_xsltHandler;
- m_xsltHandler = nullptr;
-}
-
-QString WineComFetcher::source() const {
- return m_name.isEmpty() ? defaultName() : m_name;
-}
-
-QString WineComFetcher::attribution() const {
- // per https://api.wine.com/wiki
- return QLatin1String("<a href=\"http://www.wine.com/\" title=\"Wine.com the destination for Wine and Wine Gifts\">"
- "<img src=\"http://cache.wine.com/images/logos/80x20_winecom_logo.png\" alt=\"Wine.com the destination for Wine and Wine Gifts\" /></a>");
-}
-
-bool WineComFetcher::canFetch(int type) const {
- return type == Data::Collection::Wine;
-}
-
-void WineComFetcher::readConfigHook(const KConfigGroup& config_) {
- QString k = config_.readEntry("API Key", QString());
- if(!k.isEmpty()) {
- m_apiKey = k;
- }
-}
-
-void WineComFetcher::search() {
- m_started = true;
- m_page = 1;
- m_total = -1;
- m_numResults = 0;
- m_offset = 0;
-
- doSearch();
-}
-
-void WineComFetcher::continueSearch() {
- m_started = true;
- doSearch();
-}
-
-void WineComFetcher::doSearch() {
- if(m_apiKey.isEmpty()) {
- myDebug() << "No API key";
- message(i18n("An access key is required to use this data source.")
- + QLatin1Char(' ') +
- i18n("Those values must be entered in the data source settings."), MessageHandler::Error);
- stop();
- return;
- }
-
-// myDebug() << "value = " << value_;
-
- QUrl u(QString::fromLatin1(WINECOM_BASE_URL));
- u.setPath(QLatin1String("/api/beta2/service.svc/XML/catalog"));
- QUrlQuery q;
- q.addQueryItem(QLatin1String("apikey"), m_apiKey);
- q.addQueryItem(QLatin1String("offset"), QString::number((m_page-1) * WINECOM_RETURNS_PER_REQUEST));
- q.addQueryItem(QLatin1String("size"), QString::number(WINECOM_RETURNS_PER_REQUEST));
-
- switch(request().key) {
- case Keyword:
- q.addQueryItem(QLatin1String("search"), request().value);
- break;
-
- default:
- myWarning() << "key not recognized: " << request().key;
- stop();
- return;
- }
- u.setQuery(q);
-// myDebug() << "url: " << u.url();
-
- m_job = KIO::storedGet(u, KIO::NoReload, KIO::HideProgressInfo);
- KJobWidgets::setWindow(m_job, GUI::Proxy::widget());
- connect(m_job, SIGNAL(result(KJob*)),
- SLOT(slotComplete(KJob*)));
-}
-
-void WineComFetcher::stop() {
- if(!m_started) {
- return;
- }
-// myDebug();
- if(m_job) {
- m_job->kill();
- m_job = nullptr;
- }
-
- m_started = false;
- emit signalDone(this);
-}
-
-void WineComFetcher::slotComplete(KJob*) {
-// myDebug();
-
- if(m_job->error()) {
- m_job->uiDelegate()->showErrorMessage();
- stop();
- return;
- }
-
- QByteArray data = m_job->data();
- if(data.isEmpty()) {
- myDebug() << "no data";
- stop();
- return;
- }
-
- // since the fetch is done, don't worry about holding the job pointer
- m_job = nullptr;
-#if 0
- myWarning() << "Remove debug from winecomfetcher.cpp";
- QFile f(QLatin1String("/tmp/test.xml"));
- if(f.open(QIODevice::WriteOnly)) {
- QTextStream t(&f);
- t.setCodec("UTF-8");
- t << data;
- }
- f.close();
-#endif
-
- QDomDocument dom;
- if(!dom.setContent(data, false)) {
- myWarning() << "server did not return valid XML.";
- return;
- }
-
- if(m_total == -1) {
- QDomNode n = dom.documentElement().namedItem(QLatin1String("Catalog"))
- .namedItem(QLatin1String("Products"))
- .namedItem(QLatin1String("Total"));
- QDomElement e = n.toElement();
- if(!e.isNull()) {
- m_total = e.attribute(QLatin1String("total_results"), QString::number(-1)).toInt();
- myDebug() << m_total;
- }
- }
-
- if(!m_xsltHandler) {
- initXSLTHandler();
- if(!m_xsltHandler) { // probably an error somewhere in the stylesheet loading
- stop();
- return;
- }
- }
-
- // assume result is always utf-8
- QString str = m_xsltHandler->applyStylesheet(QString::fromUtf8(data.constData(), data.size()));
- Import::TellicoImporter imp(str);
- // be quiet when loading images
- imp.setOptions(imp.options() ^ Import::ImportShowImageErrors);
- Data::CollPtr coll = imp.collection();
-
- int count = 0;
- foreach(Data::EntryPtr entry, coll->entries()) {
- if(m_numResults >= m_limit) {
- break;
- }
- if(!m_started) {
- // might get aborted
- break;
- }
-
- FetchResult* r = new FetchResult(Fetcher::Ptr(this), entry);
- m_entries.insert(r->uid, Data::EntryPtr(entry));
- emit signalResultFound(r);
- ++m_numResults;
- ++count;
- }
-
- // are there any additional results to get?
- m_hasMoreResults = m_page * WINECOM_RETURNS_PER_REQUEST < m_total;
-
- const int currentTotal = qMin(m_total, m_limit);
- if(m_page * WINECOM_RETURNS_PER_REQUEST < currentTotal) {
- int foundCount = (m_page-1) * WINECOM_RETURNS_PER_REQUEST + coll->entryCount();
- message(i18n("Results from %1: %2/%3", source(), foundCount, m_total), MessageHandler::Status);
- ++m_page;
- doSearch();
- } else {
- ++m_page; // need to go to next page
- stop(); // required
- }
-}
-
-Tellico::Data::EntryPtr WineComFetcher::fetchEntryHook(uint uid_) {
- Data::EntryPtr entry = m_entries[uid_];
- if(!entry) {
- myWarning() << "no entry in dict";
- return Data::EntryPtr();
- }
-
- return entry;
-}
-
-void WineComFetcher::initXSLTHandler() {
- QString xsltfile = DataFileRegistry::self()->locate(QLatin1String("winecom2tellico.xsl"));
- if(xsltfile.isEmpty()) {
- myWarning() << "can not locate winecom2tellico.xsl.";
- return;
- }
-
- QUrl u = QUrl::fromLocalFile(xsltfile);
-
- delete m_xsltHandler;
- m_xsltHandler = new XSLTHandler(u);
- if(!m_xsltHandler->isValid()) {
- myWarning() << "error in winecom2tellico.xsl.";
- delete m_xsltHandler;
- m_xsltHandler = nullptr;
- return;
- }
-}
-
-Tellico::Fetch::FetchRequest WineComFetcher::updateRequest(Data::EntryPtr entry_) {
- // optimistically try searching for title and rely on Collection::sameEntry() to figure things out
- QString t = entry_->field(QLatin1String("title"));
- if(!t.isEmpty()) {
- return FetchRequest(Fetch::Keyword, t);
- }
- return FetchRequest();
-}
-
-Tellico::Fetch::ConfigWidget* WineComFetcher::configWidget(QWidget* parent_) const {
- return new WineComFetcher::ConfigWidget(parent_, this);
-}
-
-QString WineComFetcher::defaultName() {
- return QLatin1String("Wine.com"); // no translation
-}
-
-QString WineComFetcher::defaultIcon() {
- return favIcon("http://www.wine.com");
-}
-
-WineComFetcher::ConfigWidget::ConfigWidget(QWidget* parent_, const WineComFetcher* fetcher_)
- : Fetch::ConfigWidget(parent_) {
- QGridLayout* l = new QGridLayout(optionsWidget());
- l->setSpacing(4);
- l->setColumnStretch(1, 10);
-
- int row = -1;
- QLabel* al = new QLabel(i18n("Registration is required for accessing the %1 data source. "
- "If you agree to the terms and conditions, <a href='%2'>sign "
- "up for an account</a>, and enter your information below.",
- preferredName(),
- QLatin1String("https://api.wine.com")),
- optionsWidget());
- al->setOpenExternalLinks(true);
- al->setWordWrap(true);
- ++row;
- l->addWidget(al, row, 0, 1, 2);
- // richtext gets weird with size
- al->setMinimumWidth(al->sizeHint().width());
-
- QLabel* label = new QLabel(i18n("Access key: "), optionsWidget());
- l->addWidget(label, ++row, 0);
-
- m_apiKeyEdit = new QLineEdit(optionsWidget());
- connect(m_apiKeyEdit, SIGNAL(textChanged(const QString&)), SLOT(slotSetModified()));
- l->addWidget(m_apiKeyEdit, row, 1);
- label->setBuddy(m_apiKeyEdit);
-
- l->setRowStretch(++row, 10);
-
- if(fetcher_) {
- m_apiKeyEdit->setText(fetcher_->m_apiKey);
- }
-}
-
-void WineComFetcher::ConfigWidget::saveConfigHook(KConfigGroup& config_) {
- QString apiKey = m_apiKeyEdit->text().trimmed();
- if(!apiKey.isEmpty()) {
- config_.writeEntry("API Key", apiKey);
- }
-}
-
-QString WineComFetcher::ConfigWidget::preferredName() const {
- return WineComFetcher::defaultName();
-}
diff --git a/src/fetch/winecomfetcher.h b/src/fetch/winecomfetcher.h
deleted file mode 100644
index b1a5c0e2..00000000
--- a/src/fetch/winecomfetcher.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/***************************************************************************
- Copyright (C) 2009 Robby Stephenson <robby at periapsis.org>
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or *
- * modify it under the terms of the GNU General Public License as *
- * published by the Free Software Foundation; either version 2 of *
- * the License or (at your option) version 3 or any later version *
- * accepted by the membership of KDE e.V. (or its successor approved *
- * by the membership of KDE e.V.), which shall act as a proxy *
- * defined in Section 14 of version 3 of the license. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program. If not, see <http://www.gnu.org/licenses/>. *
- * *
- ***************************************************************************/
-
-#ifndef TELLICO_FETCH_WINECOMFETCHER_H
-#define TELLICO_FETCH_WINECOMFETCHER_H
-
-#include "fetcher.h"
-#include "configwidget.h"
-
-#include <QPointer>
-
-class QLineEdit;
-
-class KJob;
-namespace KIO {
- class StoredTransferJob;
-}
-
-namespace Tellico {
- class XSLTHandler;
- namespace Fetch {
-
-/**
- * @author Robby Stephenson
- */
-class WineComFetcher : public Fetcher {
-Q_OBJECT
-
-public:
- WineComFetcher(QObject* parent = nullptr);
- ~WineComFetcher();
-
- virtual QString source() const Q_DECL_OVERRIDE;
- virtual QString attribution() const Q_DECL_OVERRIDE;
- virtual bool isSearching() const Q_DECL_OVERRIDE { return m_started; }
- virtual void continueSearch() Q_DECL_OVERRIDE;
- virtual bool canSearch(FetchKey k) const Q_DECL_OVERRIDE { return k == Keyword; }
- virtual void stop() Q_DECL_OVERRIDE;
- virtual Data::EntryPtr fetchEntryHook(uint uid) Q_DECL_OVERRIDE;
- virtual Type type() const Q_DECL_OVERRIDE { return WineCom; }
- virtual bool canFetch(int type) const Q_DECL_OVERRIDE;
- virtual void readConfigHook(const KConfigGroup& config) Q_DECL_OVERRIDE;
-
- virtual Fetch::ConfigWidget* configWidget(QWidget* parent) const Q_DECL_OVERRIDE;
-
- class ConfigWidget : public Fetch::ConfigWidget {
- public:
- explicit ConfigWidget(QWidget* parent_, const WineComFetcher* fetcher = nullptr);
- virtual void saveConfigHook(KConfigGroup&) Q_DECL_OVERRIDE;
- virtual QString preferredName() const Q_DECL_OVERRIDE;
- private:
- QLineEdit* m_apiKeyEdit;
- };
- friend class ConfigWidget;
-
- static QString defaultName();
- static QString defaultIcon();
- static StringHash allOptionalFields() { return StringHash(); }
-
-private Q_SLOTS:
- void slotComplete(KJob* job);
-
-private:
- virtual void search() Q_DECL_OVERRIDE;
- virtual FetchRequest updateRequest(Data::EntryPtr entry) Q_DECL_OVERRIDE;
- void initXSLTHandler();
- void doSearch();
-
- XSLTHandler* m_xsltHandler;
- int m_limit;
- int m_page;
- int m_total;
- int m_numResults;
- int m_offset;
-
- QHash<int, Data::EntryPtr> m_entries;
- QPointer<KIO::StoredTransferJob> m_job;
-
- bool m_started;
- QString m_apiKey;
-};
-
- }
-}
-#endif
diff --git a/src/main.cpp b/src/main.cpp
index adf8b63c..51e113b3 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- Copyright (C) 2001-2017 Robby Stephenson <robby at periapsis.org>
+ Copyright (C) 2001-2018 Robby Stephenson <robby at periapsis.org>
***************************************************************************/
/***************************************************************************
@@ -119,7 +119,7 @@ int main(int argc, char* argv[]) {
KAboutData aboutData(QLatin1String("tellico"), QLatin1String("Tellico"),
QLatin1String(TELLICO_VERSION), i18n("Tellico - a KDE collection manager"),
KAboutLicense::GPL_V2,
- i18n("(c) 2001-2017, Robby Stephenson"),
+ i18n("(c) 2001-2018, Robby Stephenson"),
QString(),
QLatin1String("http://tellico-project.org"));
aboutData.addAuthor(QLatin1String("Robby Stephenson"), QString(), QLatin1String("robby at periapsis.org"));
diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
index ecacdc78..9353acaa 100644
--- a/src/tests/CMakeLists.txt
+++ b/src/tests/CMakeLists.txt
@@ -795,14 +795,6 @@ add_test(vndbfetchertest vndbfetchertest)
ecm_mark_as_test(vndbfetchertest)
TARGET_LINK_LIBRARIES(vndbfetchertest fetcherstest ${TELLICO_TEST_LIBS})
-add_executable(winecomfetchertest winecomfetchertest.cpp abstractfetchertest.cpp
- ../fetch/winecomfetcher.cpp
-)
-ecm_mark_nongui_executable(winecomfetchertest)
-add_test(winecomfetchertest winecomfetchertest)
-ecm_mark_as_test(winecomfetchertest)
-TARGET_LINK_LIBRARIES(winecomfetchertest fetcherstest ${TELLICO_TEST_LIBS})
-
IF( Yaz_FOUND )
add_executable(z3950fetchertest z3950fetchertest.cpp abstractfetchertest.cpp
../fetch/z3950fetcher.cpp
diff --git a/src/tests/winecomfetchertest.cpp b/src/tests/winecomfetchertest.cpp
deleted file mode 100644
index 6e5692f1..00000000
--- a/src/tests/winecomfetchertest.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-/***************************************************************************
- Copyright (C) 2011 Robby Stephenson <robby at periapsis.org>
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or *
- * modify it under the terms of the GNU General Public License as *
- * published by the Free Software Foundation; either version 2 of *
- * the License or (at your option) version 3 or any later version *
- * accepted by the membership of KDE e.V. (or its successor approved *
- * by the membership of KDE e.V.), which shall act as a proxy *
- * defined in Section 14 of version 3 of the license. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program. If not, see <http://www.gnu.org/licenses/>. *
- * *
- ***************************************************************************/
-
-#undef QT_NO_CAST_FROM_ASCII
-
-#include "winecomfetchertest.h"
-
-#include "../fetch/winecomfetcher.h"
-#include "../collections/winecollection.h"
-#include "../collectionfactory.h"
-#include "../entry.h"
-#include "../images/imagefactory.h"
-#include "../utils/datafileregistry.h"
-
-#include <KConfig>
-#include <KConfigGroup>
-
-#include <QTest>
-
-QTEST_GUILESS_MAIN( WineComFetcherTest )
-
-WineComFetcherTest::WineComFetcherTest() : AbstractFetcherTest(), m_hasConfigFile(false)
- , m_config(QFINDTESTDATA("tellicotest_private.config"), KConfig::SimpleConfig) {
-}
-
-void WineComFetcherTest::initTestCase() {
- Tellico::RegisterCollection<Tellico::Data::WineCollection> registerWine(Tellico::Data::Collection::Wine, "wine");
- // since we use the importer
- Tellico::DataFileRegistry::self()->addDataLocation(QFINDTESTDATA("../../xslt/winecom2tellico.xsl"));
- Tellico::ImageFactory::init();
-
- m_hasConfigFile = QFile::exists(QFINDTESTDATA("tellicotest_private.config"));
-}
-
-void WineComFetcherTest::testKeyword() {
- const QString groupName = QLatin1String("WineCom");
- if(!m_hasConfigFile || !m_config.hasGroup(groupName)) {
- QSKIP("This test requires a config file with Wine.com settings.", SkipAll);
- }
- KConfigGroup cg(&m_config, groupName);
-
- Tellico::Fetch::FetchRequest request(Tellico::Data::Collection::Wine, Tellico::Fetch::Keyword,
- QLatin1String("1999 Eola Hills Pinot Noir"));
- Tellico::Fetch::Fetcher::Ptr fetcher(new Tellico::Fetch::WineComFetcher(this));
- fetcher->readConfig(cg, cg.name());
-
- Tellico::Data::EntryList results = DO_FETCH1(fetcher, request, 1);
-
- QCOMPARE(results.size(), 1);
-
- Tellico::Data::EntryPtr entry = results.at(0);
- QCOMPARE(entry->field(QLatin1String("producer")), QLatin1String("Eola Hills"));
- QCOMPARE(entry->field(QLatin1String("appellation")), QLatin1String("Willamette Valley"));
- QCOMPARE(entry->field(QLatin1String("vintage")), QLatin1String("1999"));
- QCOMPARE(entry->field(QLatin1String("varietal")), QLatin1String("Pinot Noir"));
- QCOMPARE(entry->field(QLatin1String("type")), QLatin1String("Red Wine"));
- QVERIFY(!entry->field(QLatin1String("label")).isEmpty());
-}
diff --git a/src/tests/winecomfetchertest.h b/src/tests/winecomfetchertest.h
deleted file mode 100644
index 7256c21c..00000000
--- a/src/tests/winecomfetchertest.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/***************************************************************************
- Copyright (C) 2011 Robby Stephenson <robby at periapsis.org>
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or *
- * modify it under the terms of the GNU General Public License as *
- * published by the Free Software Foundation; either version 2 of *
- * the License or (at your option) version 3 or any later version *
- * accepted by the membership of KDE e.V. (or its successor approved *
- * by the membership of KDE e.V.), which shall act as a proxy *
- * defined in Section 14 of version 3 of the license. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program. If not, see <http://www.gnu.org/licenses/>. *
- * *
- ***************************************************************************/
-
-#ifndef WINECOMFETCHERTEST_H
-#define WINECOMFETCHERTEST_H
-
-#include "abstractfetchertest.h"
-
-#include <KConfig>
-
-class WineComFetcherTest : public AbstractFetcherTest {
-Q_OBJECT
-public:
- WineComFetcherTest();
-
-private Q_SLOTS:
- void initTestCase();
- void testKeyword();
-
-private:
- bool m_hasConfigFile;
- KConfig m_config;
-};
-
-#endif
diff --git a/xslt/CMakeLists.txt b/xslt/CMakeLists.txt
index 3af20cc6..666585a7 100644
--- a/xslt/CMakeLists.txt
+++ b/xslt/CMakeLists.txt
@@ -47,7 +47,6 @@ SET(XSLT_FILES
vhs-logo.png
vinoxml2tellico.xsl
welcome.html
- winecom2tellico.xsl
xmp2tellico.xsl
yahoo2tellico.xsl
)
diff --git a/xslt/winecom2tellico.xsl b/xslt/winecom2tellico.xsl
deleted file mode 100644
index 00566c29..00000000
--- a/xslt/winecom2tellico.xsl
+++ /dev/null
@@ -1,110 +0,0 @@
-<?xml version="1.0"?>
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns="http://periapsis.org/tellico/"
- xmlns:str="http://exslt.org/strings"
- xmlns:exsl="http://exslt.org/common"
- extension-element-prefixes="str exsl"
- version="1.0">
-
-<!--
- ===================================================================
- Tellico XSLT file - used for importing data from wine.com
-
- Copyright (C) 2009 Robby Stephenson <robby at periapsis.org>
-
- This XSLT stylesheet is designed to be used with the 'Tellico'
- application, which can be found at http://tellico-project.org
-
- ===================================================================
--->
-
-<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"
- doctype-public="-//Robby Stephenson/DTD Tellico V11.0//EN"
- doctype-system="http://periapsis.org/tellico/dtd/v11/tellico.dtd"/>
-
-<xsl:template match="/">
- <tellico syntaxVersion="11">
- <collection title="Wine.com Import" type="7">
- <fields>
- <field name="_default"/>
- <field flags="0" title="URL" category="General" format="4" type="7" name="url" i18n="true"/>
- </fields>
- <xsl:apply-templates select="Catalog/Products/List/Product[Type='Wine']"/>
- </collection>
- </tellico>
-</xsl:template>
-
-<xsl:template match="Product">
- <entry>
-
- <appellation>
- <xsl:value-of select="Appellation/Name"/>
- </appellation>
-
- <url>
- <xsl:value-of select="Url"/>
- </url>
-
- <vintage>
- <xsl:value-of select="Vintage"/>
- <xsl:if test="string-length(Vintage) = 0">
- <!-- guess and grab first 4 digits in name -->
- <xsl:value-of select="substring(translate(Name, translate(Name, '0123456789', ''), ''), 0, 5)"/>
- </xsl:if>
- </vintage>
-
- <producer>
- <xsl:value-of select="Vineyard/Name"/>
- </producer>
-
- <varietal>
- <xsl:value-of select="Varietal/Name"/>
- </varietal>
-
- <description>
- <xsl:value-of select="Description"/>
- </description>
-
- <type i18n="true">
- <xsl:choose>
- <xsl:when test="Varietal/WineType/Id = 123">
- <xsl:text>Sparkling Wine</xsl:text>
- </xsl:when>
- <xsl:when test="Varietal/WineType/Id = 124">
- <xsl:text>Red Wine</xsl:text>
- </xsl:when>
- <xsl:when test="Varietal/WineType/Id = 125">
- <xsl:text>White Wine</xsl:text>
- </xsl:when>
- </xsl:choose>
- </type>
-
- <keywords>
- <xsl:for-each select="ProductAttributes/ProductAttribute">
- <keyword>
- <xsl:value-of select="Name"/>
- </keyword>
- </xsl:for-each>
- </keywords>
-
- <label>
- <xsl:value-of select="Labels/Label[1]/Url"/>
- </label>
-
- </entry>
-</xsl:template>
-
-<xsl:template name="token-union">
- <xsl:param name="tokens"/>
- <xsl:choose>
- <xsl:when test="not($tokens)"/>
- <xsl:otherwise>
- <xsl:copy-of select="exsl:node-set(str:tokenize($tokens[1], ','))"/>
- <xsl:call-template name="token-union">
- <xsl:with-param name="tokens" select="$tokens[position() > 1]"/>
- </xsl:call-template>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-</xsl:stylesheet>
More information about the kde-doc-english
mailing list