commit 1f2ce461d5640b80a0c2431e97997df4480da14636082470f2fb40f1d3969911 Author: Christophe Marin Date: Wed Sep 4 17:49:16 2024 +0000 Update to 4.0 OBS-URL: https://build.opensuse.org/package/show/KDE:Extra/tellico?expand=0&rev=104 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/0001-Remove-Allocine-data-source.patch b/0001-Remove-Allocine-data-source.patch new file mode 100644 index 0000000..a5dcdd9 --- /dev/null +++ b/0001-Remove-Allocine-data-source.patch @@ -0,0 +1,1638 @@ +From 606ec8e018811d2e93d86037dcc688fb77c61ff7 Mon Sep 17 00:00:00 2001 +From: Robby Stephenson +Date: Sun, 11 Feb 2024 13:05:32 -0500 +Subject: [PATCH] Remove Allocine data source + +API has been discontinued +--- + doc/configuration.docbook | 8 - + src/fetch/CMakeLists.txt | 1 - + src/fetch/allocinefetcher.cpp | 516 -------------------------- + src/fetch/allocinefetcher.h | 134 ------- + src/fetch/fetch.h | 2 +- + src/fetch/fetcherinitializer.cpp | 2 - + src/fetch/fetchmanager.cpp | 2 - + src/fetch/scripts/CMakeLists.txt | 2 - + src/fetch/scripts/fr.allocine.py | 475 ------------------------ + src/fetch/scripts/fr.allocine.py.spec | 39 -- + src/tests/CMakeLists.txt | 14 - + src/tests/allocinefetchertest.cpp | 220 ----------- + src/tests/allocinefetchertest.h | 54 --- + 13 files changed, 1 insertion(+), 1468 deletions(-) + delete mode 100644 src/fetch/allocinefetcher.cpp + delete mode 100644 src/fetch/allocinefetcher.h + delete mode 100755 src/fetch/scripts/fr.allocine.py + delete mode 100644 src/fetch/scripts/fr.allocine.py.spec + delete mode 100644 src/tests/allocinefetchertest.cpp + delete mode 100644 src/tests/allocinefetchertest.h + +diff --git a/doc/configuration.docbook b/doc/configuration.docbook +index f1d6dbb..a577f30 100644 +--- a/doc/configuration.docbook ++++ b/doc/configuration.docbook +@@ -166,7 +166,6 @@ while the full list is ava + OPDS catalogs, + + the Internet Movie Database, +-AlloCiné, + TheMovieDB.org, + the Open Movie Database, + FilmAffinity, +@@ -363,13 +362,6 @@ The Internet Movie Database provides in + + + +- +-AlloCiné +- +-AlloCiné is an online movie information service, based in France. +- +- +- + + FilmAffinity + +diff --git a/src/fetch/CMakeLists.txt b/src/fetch/CMakeLists.txt +index 0b54c93..d93542f 100644 +--- a/src/fetch/CMakeLists.txt ++++ b/src/fetch/CMakeLists.txt +@@ -4,7 +4,6 @@ ADD_SUBDIRECTORY( scripts ) + + SET(fetch_STAT_SRCS + adsfetcher.cpp +- allocinefetcher.cpp + amazonfetcher.cpp + amazonrequest.cpp + animenfofetcher.cpp +diff --git a/src/fetch/allocinefetcher.cpp b/src/fetch/allocinefetcher.cpp +deleted file mode 100644 +index bc05285..0000000 +--- a/src/fetch/allocinefetcher.cpp ++++ /dev/null +@@ -1,516 +0,0 @@ +-/*************************************************************************** +- Copyright (C) 2012-2022 Robby Stephenson +- ***************************************************************************/ +- +-/*************************************************************************** +- * * +- * 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 . * +- * * +- ***************************************************************************/ +- +-#include // for TELLICO_VERSION +- +-#include "allocinefetcher.h" +-#include "../collections/videocollection.h" +-#include "../images/imagefactory.h" +-#include "../entry.h" +-#include "../utils/guiproxy.h" +-#include "../utils/string_utils.h" +-#include "../core/filehandler.h" +-#include "../tellico_debug.h" +- +-#include +-#include +-#include +-#include +-#include +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-namespace { +- static const char* ALLOCINE_API_KEY = "100ED1DA33EB"; +- static const char* ALLOCINE_API_URL = "http://api.allocine.fr/rest/v3/"; +- static const char* ALLOCINE_PARTNER_KEY = "1a1ed8c1bed24d60ae3472eed1da33eb"; +-} +- +-using namespace Tellico; +-using Tellico::Fetch::AbstractAllocineFetcher; +-using Tellico::Fetch::AllocineFetcher; +- +-AbstractAllocineFetcher::AbstractAllocineFetcher(QObject* parent_, const QString& baseUrl_) +- : Fetcher(parent_) +- , m_started(false) +- , m_apiKey(QLatin1String(ALLOCINE_API_KEY)) +- , m_baseUrl(baseUrl_) +- , m_numCast(10) { +- Q_ASSERT(!m_baseUrl.isEmpty()); +-} +- +-AbstractAllocineFetcher::~AbstractAllocineFetcher() { +-} +- +-bool AbstractAllocineFetcher::canSearch(Fetch::FetchKey k) const { +- return k == Keyword; +-} +- +-bool AbstractAllocineFetcher::canFetch(int type) const { +- return type == Data::Collection::Video; +-} +- +-void AbstractAllocineFetcher::readConfigHook(const KConfigGroup& config_) { +- QString k = config_.readEntry("API Key", ALLOCINE_API_KEY); +- if(!k.isEmpty()) { +- m_apiKey = k; +- } +- m_numCast = config_.readEntry("Max Cast", 10); +-} +- +-void AbstractAllocineFetcher::search() { +- m_started = true; +- +- const QString method(QStringLiteral("search")); +- +- QUrl u(m_baseUrl); +- u = u.adjusted(QUrl::StripTrailingSlash); +- u.setPath(u.path() + QLatin1Char('/') + method); +- +- // the order of the parameters appears to matter +- QList > params; +- params.append(qMakePair(QStringLiteral("partner"), m_apiKey)); +- +- // I can't figure out how to encode accent marks, but they don't +- // seem to be necessary +- QString q = removeAccents(request().value()); +- // should I just remove all non alphabetical characters? +- // see https://bugs.kde.org/show_bug.cgi?id=337432 +- q.remove(QRegularExpression(QStringLiteral("[,:!?;\\(\\)]"))); +- q.replace(QLatin1Char('\''), QLatin1Char('+')); +- q.replace(QLatin1Char(' '), QLatin1Char('+')); +- +- switch(request().key()) { +- case Keyword: +- params.append(qMakePair(QStringLiteral("q"), q)); +- break; +- +- default: +- myWarning() << source() << "- key not recognized:" << request().key(); +- stop(); +- return; +- } +- +- params.append(qMakePair(QStringLiteral("format"), QStringLiteral("json"))); +- params.append(qMakePair(QStringLiteral("filter"), QStringLiteral("movie"))); +- +- const QString sed = QDateTime::currentDateTimeUtc().toString(QStringLiteral("yyyyMMdd")); +- params.append(qMakePair(QStringLiteral("sed"), sed)); +- +- const QByteArray sig = calculateSignature(method, params); +- +- QUrlQuery query; +- query.setQueryItems(params); +- query.addQueryItem(QStringLiteral("sig"), QLatin1String(sig)); +- u.setQuery(query); +-// myDebug() << u; +- +- m_job = KIO::storedGet(u, KIO::NoReload, KIO::HideProgressInfo); +- configureJob(m_job); +- KJobWidgets::setWindow(m_job, GUI::Proxy::widget()); +- connect(m_job.data(), &KJob::result, this, &AbstractAllocineFetcher::slotComplete); +-} +- +-void AbstractAllocineFetcher::stop() { +- if(!m_started) { +- return; +- } +- if(m_job) { +- m_job->kill(); +- } +- m_started = false; +- emit signalDone(this); +-} +- +-Tellico::Data::EntryPtr AbstractAllocineFetcher::fetchEntryHook(uint uid_) { +- Data::EntryPtr entry = m_entries.value(uid_); +- if(!entry) { +- myWarning() << "no entry in dict"; +- return Data::EntryPtr(); +- } +- +- QString code = entry->field(QStringLiteral("allocine-code")); +- if(code.isEmpty()) { +- // could mean we already updated the entry +- myDebug() << "no allocine release found"; +- return entry; +- } +- const QString method(QStringLiteral("movie")); +- +- QUrl u(m_baseUrl); +- u = u.adjusted(QUrl::StripTrailingSlash); +- u.setPath(u.path() + QLatin1Char('/') + method); +- +- // the order of the parameters appears to matter +- QList > params; +- params.append(qMakePair(QStringLiteral("partner"), m_apiKey)); +- params.append(qMakePair(QStringLiteral("code"), code)); +- params.append(qMakePair(QStringLiteral("profile"), QStringLiteral("large"))); +- params.append(qMakePair(QStringLiteral("filter"), QStringLiteral("movie"))); +- params.append(qMakePair(QStringLiteral("format"), QStringLiteral("json"))); +- +- const QString sed = QDateTime::currentDateTimeUtc().toString(QStringLiteral("yyyyMMdd")); +- params.append(qMakePair(QStringLiteral("sed"), sed)); +- +- const QByteArray sig = calculateSignature(method, params); +- +- QUrlQuery query; +- query.setQueryItems(params); +- query.addQueryItem(QStringLiteral("sig"), QLatin1String(sig)); +- u.setQuery(query); +-// myDebug() << "url: " << u; +-// QByteArray data = FileHandler::readDataFile(u, true); +- KIO::StoredTransferJob* dataJob = KIO::storedGet(u, KIO::NoReload, KIO::HideProgressInfo); +- configureJob(dataJob); +- if(!dataJob->exec()) { +- myDebug() << "Failed to load" << u; +- return entry; +- } +- const QByteArray data = dataJob->data(); +- +-#if 0 +- myWarning() << "Remove debug2 from allocinefetcher.cpp"; +- QFile f(QString::fromLatin1("/tmp/test2.json")); +- if(f.open(QIODevice::WriteOnly)) { +- QTextStream t(&f); +- t.setCodec("UTF-8"); +- t << data; +- } +- f.close(); +-#endif +- +- QJsonParseError error; +- QJsonDocument doc = QJsonDocument::fromJson(data, &error); +- QVariantMap result = doc.object().toVariantMap().value(QStringLiteral("movie")).toMap(); +- if(error.error != QJsonParseError::NoError) { +- myDebug() << "Bad JSON results"; +-#if 0 +- myWarning() << "Remove debug3 from allocinefetcher.cpp"; +- QFile f2(QString::fromLatin1("/tmp/test3.json")); +- if(f2.open(QIODevice::WriteOnly)) { +- QTextStream t(&f2); +- t.setCodec("UTF-8"); +- t << data; +- } +- f2.close(); +-#endif +- return entry; +- } +- populateEntry(entry, result); +- +- // image might still be a URL +- const QString image_id = entry->field(QStringLiteral("cover")); +- if(image_id.contains(QLatin1Char('/'))) { +- const QString id = ImageFactory::addImage(QUrl::fromUserInput(image_id), true /* quiet */); +- if(id.isEmpty()) { +- message(i18n("The cover image could not be loaded."), MessageHandler::Warning); +- } +- // empty image ID is ok +- entry->setField(QStringLiteral("cover"), id); +- } +- +- // don't want to include id +- entry->collection()->removeField(QStringLiteral("allocine-code")); +- QStringList castRows = FieldFormat::splitTable(entry->field(QStringLiteral("cast"))); +- while(castRows.count() > m_numCast) { +- castRows.removeLast(); +- } +- entry->setField(QStringLiteral("cast"), castRows.join(FieldFormat::rowDelimiterString())); +- return entry; +-} +- +-void AbstractAllocineFetcher::slotComplete(KJob*) { +- if(m_job->error()) { +- myDebug() << "Error:" << m_job->errorString(); +- m_job->uiDelegate()->showErrorMessage(); +- stop(); +- return; +- } +- +- QByteArray data = m_job->data(); +- if(data.isEmpty()) { +- myDebug() << "no data"; +- stop(); +- return; +- } +- // see bug 319662. If fetcher is cancelled, job is killed +- // if the pointer is retained, it gets double-deleted +- m_job = nullptr; +- +-#if 0 +- myWarning() << "Remove debug from allocinefetcher.cpp"; +- QFile f(QString::fromLatin1("/tmp/test.json")); +- if(f.open(QIODevice::WriteOnly)) { +- QTextStream t(&f); +- t.setCodec("UTF-8"); +- t << data; +- } +- f.close(); +-#endif +- +- QJsonDocument doc = QJsonDocument::fromJson(data); +- QVariantMap result = doc.object().toVariantMap().value(QStringLiteral("feed")).toMap(); +-// myDebug() << "total:" << result.value(QLatin1String("totalResults")); +- +- QVariantList resultList = result.value(QStringLiteral("movie")).toList(); +- if(resultList.isEmpty()) { +- myDebug() << "no results"; +- stop(); +- return; +- } +- +- foreach(const QVariant& result, resultList) { +- // myDebug() << "found result:" << result; +- +- //create a new collection for every result since we end up removing the allocine code field +- // when fetchEntryHook is called. See bug 338389 +- Data::EntryPtr entry(new Data::Entry(createCollection())); +- populateEntry(entry, result.toMap()); +- +- FetchResult* r = new FetchResult(this, entry); +- m_entries.insert(r->uid, entry); +- emit signalResultFound(r); +- } +- +- m_hasMoreResults = false; +- stop(); +-} +- +-Tellico::Data::CollPtr AbstractAllocineFetcher::createCollection() const { +- Data::CollPtr coll(new Data::VideoCollection(true)); +- // always add the allocine release code for fetchEntryHook +- Data::FieldPtr field(new Data::Field(QStringLiteral("allocine-code"), QStringLiteral("Allocine Code"), Data::Field::Number)); +- field->setCategory(i18n("General")); +- coll->addField(field); +- +- // add new fields +- if(optionalFields().contains(QStringLiteral("allocine"))) { +- Data::FieldPtr field(new Data::Field(QStringLiteral("allocine"), i18n("Allocine Link"), Data::Field::URL)); +- field->setCategory(i18n("General")); +- coll->addField(field); +- } +- if(optionalFields().contains(QStringLiteral("origtitle"))) { +- Data::FieldPtr f(new Data::Field(QStringLiteral("origtitle"), i18n("Original Title"))); +- f->setFormatType(FieldFormat::FormatTitle); +- coll->addField(f); +- } +- +- return coll; +-} +- +-void AbstractAllocineFetcher::populateEntry(Data::EntryPtr entry, const QVariantMap& resultMap) { +- if(entry->collection()->hasField(QStringLiteral("allocine-code"))) { +- entry->setField(QStringLiteral("allocine-code"), mapValue(resultMap, "code")); +- } +- +- entry->setField(QStringLiteral("title"), mapValue(resultMap, "title")); +- if(optionalFields().contains(QStringLiteral("origtitle"))) { +- entry->setField(QStringLiteral("origtitle"), mapValue(resultMap, "originalTitle")); +- } +- if(entry->title().isEmpty()) { +- entry->setField(QStringLiteral("title"), mapValue(resultMap, "originalTitle")); +- } +- entry->setField(QStringLiteral("year"), mapValue(resultMap, "productionYear")); +- entry->setField(QStringLiteral("plot"), mapValue(resultMap, "synopsis")); +- +- const int runTime = mapValue(resultMap, "runtime").toInt(); +- entry->setField(QStringLiteral("running-time"), QString::number(runTime/60)); +- +- const QVariantList castList = resultMap.value(QStringLiteral("castMember")).toList(); +- QStringList actors, directors, producers, composers; +- foreach(const QVariant& castVariant, castList) { +- const QVariantMap castMap = castVariant.toMap(); +- const int code = mapValue(castMap, "activity", "code").toInt(); +- switch(code) { +- case 8001: +- actors << (mapValue(castMap, "person", "name") + FieldFormat::columnDelimiterString() + mapValue(castMap, "role")); +- break; +- case 8002: +- directors << mapValue(castMap, "person", "name"); +- break; +- case 8029: +- producers << mapValue(castMap, "person", "name"); +- break; +- case 8003: +- composers << mapValue(castMap, "person", "name"); +- break; +- } +- } +- entry->setField(QStringLiteral("cast"), actors.join(FieldFormat::rowDelimiterString())); +- entry->setField(QStringLiteral("director"), directors.join(FieldFormat::delimiterString())); +- entry->setField(QStringLiteral("producer"), producers.join(FieldFormat::delimiterString())); +- entry->setField(QStringLiteral("composer"), composers.join(FieldFormat::delimiterString())); +- +- const QVariantMap releaseMap = resultMap.value(QStringLiteral("release")).toMap(); +- entry->setField(QStringLiteral("studio"), mapValue(releaseMap, "distributor", "name")); +- +- QStringList genres; +- foreach(const QVariant& variant, resultMap.value(QLatin1String("genre")).toList()) { +- genres << i18n(mapValue(variant.toMap(), "$").toUtf8().constData()); +- } +- entry->setField(QStringLiteral("genre"), genres.join(FieldFormat::delimiterString())); +- +- QStringList nats; +- foreach(const QVariant& variant, resultMap.value(QLatin1String("nationality")).toList()) { +- nats << mapValue(variant.toMap(), "$"); +- } +- entry->setField(QStringLiteral("nationality"), nats.join(FieldFormat::delimiterString())); +- +- QStringList langs; +- foreach(const QVariant& variant, resultMap.value(QLatin1String("language")).toList()) { +- langs << mapValue(variant.toMap(), "$"); +- } +- entry->setField(QStringLiteral("language"), langs.join(FieldFormat::delimiterString())); +- +- const QVariantMap colorMap = resultMap.value(QLatin1String("color")).toMap(); +- if(colorMap.value(QStringLiteral("code")) == QLatin1String("12001")) { +- entry->setField(QStringLiteral("color"), i18n("Color")); +- } +- +- entry->setField(QStringLiteral("cover"), mapValue(resultMap, "poster", "href")); +- +- if(optionalFields().contains(QStringLiteral("allocine"))) { +- entry->setField(QStringLiteral("allocine"), mapValue(resultMap, "link", "href")); +- } +-} +- +-Tellico::Fetch::FetchRequest AbstractAllocineFetcher::updateRequest(Data::EntryPtr entry_) { +- QString title = entry_->field(QStringLiteral("title")); +- if(!title.isEmpty()) { +- return FetchRequest(Keyword, title); +- } +- return FetchRequest(); +-} +- +-void AbstractAllocineFetcher::configureJob(KIO::StoredTransferJob* job_) { +- // 10/8/17: UserAgent appears necessary to receive data +- job_->addMetaData(QLatin1String("SendUserAgent"), QLatin1String("true")); +- job_->addMetaData(QStringLiteral("UserAgent"), QStringLiteral("Tellico/%1") +- .arg(QStringLiteral(TELLICO_VERSION))); +- job_->addMetaData(QLatin1String("Languages"), QLatin1String("fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3")); +-} +- +-AbstractAllocineFetcher::ConfigWidget::ConfigWidget(QWidget* parent_, const AbstractAllocineFetcher* fetcher_) +- : Fetch::ConfigWidget(parent_) { +- QGridLayout* l = new QGridLayout(optionsWidget()); +- l->setSpacing(4); +- l->setColumnStretch(1, 10); +- +- int row = -1; +- +- QLabel* label = new QLabel(i18n("&Maximum cast: "), optionsWidget()); +- l->addWidget(label, ++row, 0); +- m_numCast = new QSpinBox(optionsWidget()); +- m_numCast->setMaximum(99); +- m_numCast->setMinimum(0); +- m_numCast->setValue(10); +-#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) +- void (QSpinBox::* textChanged)(const QString&) = &QSpinBox::valueChanged; +-#else +- void (QSpinBox::* textChanged)(const QString&) = &QSpinBox::textChanged; +-#endif +- connect(m_numCast, textChanged, this, &ConfigWidget::slotSetModified); +- l->addWidget(m_numCast, row, 1); +- QString w = i18n("The list of cast members may include many people. Set the maximum number returned from the search."); +- label->setWhatsThis(w); +- m_numCast->setWhatsThis(w); +- label->setBuddy(m_numCast); +- +- l->setRowStretch(++row, 10); +- +- m_numCast->setValue(fetcher_ ? fetcher_->m_numCast : 10); +-} +- +-void AbstractAllocineFetcher::ConfigWidget::saveConfigHook(KConfigGroup& config_) { +- config_.writeEntry("Max Cast", m_numCast->value()); +-} +- +-QByteArray AbstractAllocineFetcher::calculateSignature(const QString& method, const QList >& params_) { +- typedef QPair StringPair; +- QByteArray queryString; +- foreach(const StringPair& pair, params_) { +- queryString.append(pair.first.toUtf8().toPercentEncoding("+")); +- queryString.append('='); +- queryString.append(pair.second.toUtf8().toPercentEncoding("+")); +- queryString.append('&'); +- } +- // remove final '&' +- queryString.chop(1); +- +- const QByteArray toSign = method.toUtf8() + queryString + ALLOCINE_PARTNER_KEY; +- const QByteArray hash = QCryptographicHash::hash(toSign, QCryptographicHash::Sha1); +- return hash.toBase64(); +-} +- +-/**********************************************************************************************/ +- +-AllocineFetcher::AllocineFetcher(QObject* parent_) +- : AbstractAllocineFetcher(parent_, QLatin1String(ALLOCINE_API_URL)) { +-} +- +-AllocineFetcher::~AllocineFetcher() { +-} +- +-QString AllocineFetcher::source() const { +- return m_name.isEmpty() ? defaultName() : m_name; +-} +- +-Tellico::Fetch::ConfigWidget* AllocineFetcher::configWidget(QWidget* parent_) const { +- return new AllocineFetcher::ConfigWidget(parent_, this); +-} +- +-QString AllocineFetcher::defaultName() { +- return QStringLiteral("AlloCiné.fr"); +-} +- +-QString AllocineFetcher::defaultIcon() { +- return favIcon("http://www.allocine.fr"); +-} +- +-Tellico::StringHash AllocineFetcher::allOptionalFields() { +- StringHash hash; +- hash[QStringLiteral("origtitle")] = i18n("Original Title"); +- hash[QStringLiteral("allocine")] = i18n("Allocine Link"); +- return hash; +-} +- +-AllocineFetcher::ConfigWidget::ConfigWidget(QWidget* parent_, const AbstractAllocineFetcher* fetcher_) +- : AbstractAllocineFetcher::ConfigWidget(parent_, fetcher_) { +- // now add additional fields widget +- addFieldsWidget(AllocineFetcher::allOptionalFields(), fetcher_ ? fetcher_->optionalFields() : QStringList()); +-} +- +-QString AllocineFetcher::ConfigWidget::preferredName() const { +- return AllocineFetcher::defaultName(); +-} +diff --git a/src/fetch/allocinefetcher.h b/src/fetch/allocinefetcher.h +deleted file mode 100644 +index 946c053..0000000 +--- a/src/fetch/allocinefetcher.h ++++ /dev/null +@@ -1,134 +0,0 @@ +-/*************************************************************************** +- Copyright (C) 2012 Robby Stephenson +- ***************************************************************************/ +- +-/*************************************************************************** +- * * +- * 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 . * +- * * +- ***************************************************************************/ +- +-#ifndef TELLICO_ALLOCINEFETCHER_H +-#define TELLICO_ALLOCINEFETCHER_H +- +-#include "xmlfetcher.h" +-#include "configwidget.h" +-#include "../datavectors.h" +- +-#include +- +-class QSpinBox; +- +-class KJob; +-namespace KIO { +- class StoredTransferJob; +-} +- +-namespace Tellico { +- +- namespace Fetch { +- +-/** +- * An abstract fetcher for the Allocine family of web sites +- * +- * @author Robby Stephenson +- */ +-class AbstractAllocineFetcher : public Fetcher { +-Q_OBJECT +- +-public: +- /** +- */ +- AbstractAllocineFetcher(QObject* parent, const QString& baseUrl); +- /** +- */ +- virtual ~AbstractAllocineFetcher(); +- +- virtual bool isSearching() const Q_DECL_OVERRIDE { return m_started; } +- virtual bool canSearch(FetchKey k) const Q_DECL_OVERRIDE; +- virtual void stop() Q_DECL_OVERRIDE; +- virtual Data::EntryPtr fetchEntryHook(uint uid) Q_DECL_OVERRIDE; +- virtual bool canFetch(int type) const Q_DECL_OVERRIDE; +- virtual void readConfigHook(const KConfigGroup& config) Q_DECL_OVERRIDE; +- +- class ConfigWidget : public Fetch::ConfigWidget { +- public: +- explicit ConfigWidget(QWidget* parent_, const AbstractAllocineFetcher* fetcher = nullptr); +- virtual void saveConfigHook(KConfigGroup&) Q_DECL_OVERRIDE; +- virtual QString preferredName() const Q_DECL_OVERRIDE = 0; +- private: +- QSpinBox* m_numCast; +- }; +- friend class ConfigWidget; +- +-private Q_SLOTS: +- void slotComplete(KJob* job); +- +-private: +- static QByteArray calculateSignature(const QString& method, const QList >& params); +- +- virtual void search() Q_DECL_OVERRIDE; +- virtual FetchRequest updateRequest(Data::EntryPtr entry) Q_DECL_OVERRIDE; +- Data::CollPtr createCollection() const; +- void populateEntry(Data::EntryPtr entry, const QVariantMap& resultMap); +- void configureJob(KIO::StoredTransferJob* job); +- +- QHash m_entries; +- QPointer m_job; +- +- bool m_started; +- QString m_apiKey; +- QString m_baseUrl; +- int m_numCast; +-}; +- +-/** +- * A fetcher for allocine.fr +- * +- * @author Robby Stephenson +- */ +-class AllocineFetcher : public AbstractAllocineFetcher { +-Q_OBJECT +- +-public: +- /** +- */ +- AllocineFetcher(QObject* parent); +- ~AllocineFetcher(); +- +- virtual QString source() const Q_DECL_OVERRIDE; +- virtual Type type() const Q_DECL_OVERRIDE { return Allocine; } +- +- /** +- * Returns a widget for modifying the fetcher's config. +- */ +- virtual Fetch::ConfigWidget* configWidget(QWidget* parent) const Q_DECL_OVERRIDE; +- +- class ConfigWidget : public AbstractAllocineFetcher::ConfigWidget { +- public: +- explicit ConfigWidget(QWidget* parent_, const AbstractAllocineFetcher* fetcher = nullptr); +- virtual QString preferredName() const Q_DECL_OVERRIDE; +- }; +- +- static QString defaultName(); +- static QString defaultIcon(); +- static StringHash allOptionalFields(); +-}; +- +- } // end namespace +-} // end namespace +-#endif +diff --git a/src/fetch/fetch.h b/src/fetch/fetch.h +index 116c8be..df772ea 100644 +--- a/src/fetch/fetch.h ++++ b/src/fetch/fetch.h +@@ -83,7 +83,7 @@ enum Type { + GoogleBook, + MAS, // Removed + Springer, +- Allocine, ++ Allocine, // Removed + ScreenRush, // Removed + FilmStarts, // Removed + SensaCine, // Removed +diff --git a/src/fetch/fetcherinitializer.cpp b/src/fetch/fetcherinitializer.cpp +index 7e23b5d..b1fa249 100644 +--- a/src/fetch/fetcherinitializer.cpp ++++ b/src/fetch/fetcherinitializer.cpp +@@ -55,7 +55,6 @@ + #include "moviemeterfetcher.h" + #include "googlebookfetcher.h" + #include "springerfetcher.h" +-#include "allocinefetcher.h" + #include "thegamesdbfetcher.h" + #include "dblpfetcher.h" + #include "mrlookupfetcher.h" +@@ -111,7 +110,6 @@ Tellico::Fetch::FetcherInitializer::FetcherInitializer() { + RegisterFetcher registerGoogleBook(GoogleBook); + RegisterFetcher registerHathiTrust(HathiTrust); + RegisterFetcher registerVNDB(VNDB); +- RegisterFetcher registerAllocine(Allocine); + RegisterFetcher registerMovieMeter(MovieMeter); + RegisterFetcher registerDVDFr(DVDFr); + RegisterFetcher registerDouban(Douban); +diff --git a/src/fetch/fetchmanager.cpp b/src/fetch/fetchmanager.cpp +index 33b7b34..088f6ee 100644 +--- a/src/fetch/fetchmanager.cpp ++++ b/src/fetch/fetchmanager.cpp +@@ -27,7 +27,6 @@ + #include "fetchmanager.h" + #include "configwidget.h" + #include "messagehandler.h" +-#include "../entry.h" + #include "../collection.h" + #include "../utils/string_utils.h" + #include "../utils/tellico_utils.h" +@@ -355,7 +354,6 @@ Tellico::Fetch::FetcherVec Manager::defaultFetchers() { + } + if(langs.contains(QStringLiteral("fr"))) { + FETCHER_ADD(DVDFr); +- FETCHER_ADD(Allocine); + } + if(langs.contains(QStringLiteral("ru"))) { + FETCHER_ADD(KinoPoisk); +diff --git a/src/fetch/scripts/CMakeLists.txt b/src/fetch/scripts/CMakeLists.txt +index 4d337c3..78f6bbd 100644 +--- a/src/fetch/scripts/CMakeLists.txt ++++ b/src/fetch/scripts/CMakeLists.txt +@@ -3,12 +3,10 @@ + + SET(SCRIPT_FILES + dark_horse_comics.py +- fr.allocine.py + ) + + SET(SPEC_FILES + dark_horse_comics.py.spec +- fr.allocine.py.spec + ) + + INSTALL(PROGRAMS ${SCRIPT_FILES} DESTINATION ${TELLICO_DATA_INSTALL_DIR}/data-sources ) +diff --git a/src/fetch/scripts/fr.allocine.py b/src/fetch/scripts/fr.allocine.py +deleted file mode 100755 +index a250443..0000000 +--- a/src/fetch/scripts/fr.allocine.py ++++ /dev/null +@@ -1,475 +0,0 @@ +-#!/usr/bin/env python +-# -*- coding: iso-8859-1 -*- +-# kate: replace-tabs off; +-# *************************************************************************** +-# copyright : (C) 2006-2010 by Mathias Monnerville +-# email : tellico@monnerville.com +-# *************************************************************************** +-# +-# *************************************************************************** +-# * * +-# * This program is free software; you can redistribute it and/or modify * +-# * it under the terms of version 2 of the GNU General Public License as * +-# * published by the Free Software Foundation; * +-# * * +-# *************************************************************************** +-# +-# Version 0.7.3: 2010-12-07 (Reported by Romain Henriet) +-# * Fixed some regexp issues +-# * Better handling of image parsing/fetching errors +-# +-# Version 0.7.2.1: 2010-07-27 (Reported by Romain Henriet) +-# * Updated title match to allow searching without diacritical marks +-# +-# Version 0.7.2: 2010-05-27 (Reported by Romain Henriet) +-# * Fixed bug preventing searches with accent marks +-# * Added post-processing cleanup action to replace raw HTML entities with +-# their ISO Latin-1 replacement text +-# +-# Version 0.7.1: 2010-04-26 (Thanks to Romain Henriet ) +-# * Fixed greedy regexp for genre. Fixed nationality output. Add studio. +-# +-# Version 0.7: 2009-11-12 +-# * Allocine has a brand new website. All regexps were broken. +-# +-# Version 0.6: 2009-03-04 (Thanks to R. Fischer and Henry-Nicolas Tourneur) +-# * Fixed parsing issues (various RegExp issues due to allocine's HTML changes) +-# +-# Version 0.5: 2009-01-21 (Changes contributed by R. Fischer ) +-# * Added complete distribution of actors and roles, Genres, Nationalities, producers, composer and scenarist +-# * Fixed the plot field that returned a wrong answer when no plot is available +-# * Fixed a bug related to parameters encoding +-# +-# Version 0.4: +-# * Fixed parsing errors: some fields in allocine's HTML pages have changed recently. Multiple actors and genres +-# could not be retrieved. Fixed bad http request error due to some changes in HTML code. +-# +-# Version 0.3: +-# * Fixed parsing: some fields in allocine's HTML pages have changed. Movie's image could not be fetched anymore. Fixed. +-# +-# Version 0.2: +-# * Fixed parsing: allocine's HTML pages have changed. Movie's image could not be fetched anymore. +-# +-# Version 0.1: +-# * Initial release. +- +-import sys, os, re, hashlib, random, types +-import urllib, time, base64 +-import xml.dom.minidom +-import locale +-try: +- import htmlentitydefs as htmlents +-except ImportError: +- try: +- from html.entities import entitydefs as htmlents +- except ImportError: +- print('Python 2.5+ required') +- raise +- +-try: +- # For Python 3.0 and later +- from urllib.request import urlopen +-except ImportError: +- # Fall back to Python 2's urllib2 +- from urllib2 import urlopen +- +-XML_HEADER = """""" +-DOCTYPE = """""" +- +-VERSION = "0.7.3" +- +-def genMD5(): +- float = random.random() +- return hashlib.md5(str(float)).hexdigest() +- +-class BasicTellicoDOM: +- def __init__(self): +- self.__doc = xml.dom.minidom.Document() +- self.__root = self.__doc.createElement('tellico') +- self.__root.setAttribute('xmlns', 'http://periapsis.org/tellico/') +- self.__root.setAttribute('syntaxVersion', '9') +- +- self.__collection = self.__doc.createElement('collection') +- self.__collection.setAttribute('title', 'My Movies') +- self.__collection.setAttribute('type', '3') +- +- self.__fields = self.__doc.createElement('fields') +- # Add all default (standard) fields +- self.__dfltField = self.__doc.createElement('field') +- self.__dfltField.setAttribute('name', '_default') +- +- # Add a custom 'Collection' field +- self.__customField = self.__doc.createElement('field') +- self.__customField.setAttribute('name', 'titre-original') +- self.__customField.setAttribute('title', 'Original Title') +- self.__customField.setAttribute('flags', '0') +- self.__customField.setAttribute('category', unicode('Gnral', 'latin-1').encode('utf-8')) +- self.__customField.setAttribute('format', '1') +- self.__customField.setAttribute('type', '1') +- self.__customField.setAttribute('i18n', 'yes') +- +- self.__fields.appendChild(self.__dfltField) +- self.__fields.appendChild(self.__customField) +- self.__collection.appendChild(self.__fields) +- +- self.__images = self.__doc.createElement('images') +- +- self.__root.appendChild(self.__collection) +- self.__doc.appendChild(self.__root) +- +- # Current movie id +- self.__currentId = 0 +- +- +- def addEntry(self, movieData): +- """ +- Add a movie entry +- """ +- d = movieData +- entryNode = self.__doc.createElement('entry') +- entryNode.setAttribute('id', str(self.__currentId)) +- +- titleNode = self.__doc.createElement('title') +- titleNode.appendChild(self.__doc.createTextNode(d['title'])) +- +- otitleNode = self.__doc.createElement('titre-original') +- otitleNode.appendChild(self.__doc.createTextNode(d['otitle'])) +- +- yearNode = self.__doc.createElement('year') +- yearNode.appendChild(self.__doc.createTextNode(d['year'])) +- +- genresNode = self.__doc.createElement('genres') +- for g in d['genres']: +- genreNode = self.__doc.createElement('genre') +- genreNode.appendChild(self.__doc.createTextNode(g)) +- genresNode.appendChild(genreNode) +- +- studsNode = self.__doc.createElement('studios') +- for g in d['studio']: +- studNode = self.__doc.createElement('studio') +- studNode.appendChild(self.__doc.createTextNode(g)) +- studsNode.appendChild(studNode) +- +- natsNode = self.__doc.createElement('nationalitys') +- for g in d['nat']: +- natNode = self.__doc.createElement('nationality') +- natNode.appendChild(self.__doc.createTextNode(g)) +- natsNode.appendChild(natNode) +- +- castsNode = self.__doc.createElement('casts') +- i = 0 +- while i < len(d['actors']): +- g = d['actors'][i] +- h = d['actors'][i+1] +- castNode = self.__doc.createElement('cast') +- col1Node = self.__doc.createElement('column') +- col2Node = self.__doc.createElement('column') +- col1Node.appendChild(self.__doc.createTextNode(g)) +- col2Node.appendChild(self.__doc.createTextNode(h)) +- castNode.appendChild(col1Node) +- castNode.appendChild(col2Node) +- castsNode.appendChild(castNode) +- i = i + 2 +- +- dirsNode = self.__doc.createElement('directors') +- for g in d['dirs']: +- dirNode = self.__doc.createElement('director') +- dirNode.appendChild(self.__doc.createTextNode(g)) +- dirsNode.appendChild(dirNode) +- +- prodsNode = self.__doc.createElement('producers') +- for g in d['prods']: +- prodNode = self.__doc.createElement('producer') +- prodNode.appendChild(self.__doc.createTextNode(g)) +- prodsNode.appendChild(prodNode) +- +- scensNode = self.__doc.createElement('writers') +- for g in d['scens']: +- scenNode = self.__doc.createElement('writer') +- scenNode.appendChild(self.__doc.createTextNode(g)) +- scensNode.appendChild(scenNode) +- +- compsNode = self.__doc.createElement('composers') +- for g in d['comps']: +- compNode = self.__doc.createElement('composer') +- compNode.appendChild(self.__doc.createTextNode(g)) +- compsNode.appendChild(compNode) +- +- timeNode = self.__doc.createElement('running-time') +- timeNode.appendChild(self.__doc.createTextNode(d['time'])) +- +- allocineNode = self.__doc.createElement(unicode('allocin-link', 'latin-1').encode('utf-8')) +- allocineNode.appendChild(self.__doc.createTextNode(d['allocine'])) +- +- plotNode = self.__doc.createElement('plot') +- plotNode.appendChild(self.__doc.createTextNode(d['plot'])) +- +- if d['image']: +- imageNode = self.__doc.createElement('image') +- imageNode.setAttribute('format', 'JPEG') +- imageNode.setAttribute('id', d['image'][0]) +- imageNode.setAttribute('width', '120') +- imageNode.setAttribute('height', '160') +- imageNode.appendChild(self.__doc.createTextNode(d['image'][1])) +- +- coverNode = self.__doc.createElement('cover') +- coverNode.appendChild(self.__doc.createTextNode(d['image'][0])) +- +- for name in ( 'titleNode', 'otitleNode', 'yearNode', 'genresNode', 'studsNode', 'natsNode', +- 'castsNode', 'dirsNode', 'timeNode', 'allocineNode', 'plotNode', +- 'prodsNode', 'compsNode', 'scensNode' ): +- entryNode.appendChild(eval(name)) +- +- if d['image']: +- entryNode.appendChild(coverNode) +- self.__images.appendChild(imageNode) +- +- self.__collection.appendChild(entryNode) +- self.__currentId += 1 +- +- def printXML(self): +- """ +- Outputs XML content to stdout +- """ +- self.__collection.appendChild(self.__images) +- print(XML_HEADER); +- print(DOCTYPE) +- print(self.__root.toxml()) +- +- +-class AlloCineParser: +- def __init__(self): +- self.__baseURL = 'http://www.allocine.fr' +- self.__basePath = '/film/fichefilm_gen_cfilm' +- self.__castPath = '/film/casting_gen_cfilm' +- self.__searchURL= 'http://www.allocine.fr/recherche/?q=%s' +- self.__movieURL = self.__baseURL + self.__basePath +- self.__castURL = self.__baseURL + self.__castPath +- +- # Define some regexps +- self.__regExps = { +- 'title' : '
(?P.+?)""", +- 'nat' : 'Nationalit.*?(?P.+?).*?Genre.*?(?P.+?)(?P.+?)[0-9])h *(?P[0-9]*).*?Ann', +- 'year' : 'Ann.*?e de production.*?(?P[0-9]{4})', +- 'otitle' : 'Titre original *?:*?.*?(?P.+?)', +- 'plot' : '

(?P.*?)

', +- 'image' : '
.*?http://.+?)\'.?', +- } +- +- self.__castRegExps = { +-# 'roleactor' : '.*?(.*?).*?

.*?R.*?le : (?P.*?)

.*?', +- 'roleactor' : '(.*?).*?.*?)

.*?[\r\n\t]*Producteur[\r\n\t]*.*?(.*?)', +- 'scens' : '[\r\n\t]*Sc.*?nariste[\r\n\t]*.*?(.*?)', +- 'comps' : '[\r\n\t]*Compositeur[\r\n\t]*.*?(.*?)', +- } +- +- self.__domTree = BasicTellicoDOM() +- +- def run(self, title): +- """ +- Runs the allocine.fr parser: fetch movie related links, then fills and prints the DOM tree +- to stdout (in tellico format) so that tellico can use it. +- """ +- # the script needs the search string to be encoded in utf-8 +- try: +- # first try system encoding +- title = unicode(title, sys.stdin.encoding or sys.getdefaultencoding()) +- except UnicodeDecodeError: +- # on failure, fallback to 'latin-1' +- title = unicode(title, 'latin-1') +- +- # now encode for urllib +- title = title.encode('utf-8') +- self.__getMovie(title) +- # Print results to stdout +- self.__domTree.printXML() +- +- def __getHTMLContent(self, url): +- """ +- Fetch HTML data from url +- """ +- +- u = urlopen(url) +- self.__data = u.read() +- u.close() +- +- def __fetchMovieLinks(self, title): +- """ +- Retrieve all links related to movie +- @param title Movie title +- """ +- tmp = re.findall(""".*?.*?\.html?)['"] *?>(?P.*?)</a>""" % self.__basePath, self.__data, re.S | re.I) +- matchList = [] +- for match in tmp: +- name = re.sub(r'([\r\n]+|<b>|</b>)', '', match[1]) +- name = re.sub(r'<.*?>', '', name) +- name = re.sub(r'^ *', '', name) +- #if re.search(title, name, re.I): +- if len(name) > 0: +- matchList.append((match[0], name)) +- +- if not matchList: return None +- return matchList +- +- def __fetchMovieInfo(self, url, url2): +- """ +- Looks for movie information +- """ +- self.__getHTMLContent(url) +- matches = data = {} +- +- for name, regexp in self.__regExps.iteritems(): +- matches[name] = re.search(regexp, self.__data, re.S | re.I) +- +- if matches[name]: +- if name == 'title': +- data[name] = matches[name].group('title').strip() +- elif name == 'dirs': +- dirsList = re.sub('</?a.*?>', '', matches[name].group('step1')).split(',') +- data[name] = [] +- for d in dirsList: +- data[name].append(d.strip()) +- +- elif name == 'nat': +- natList = re.findall(r'<span class=".*?">(.*?)</span>', matches[name].group('nat'), re.DOTALL) +- data[name] = [] +- for d in natList: +- data[name].append(d.strip().capitalize()) +- +- elif name == 'genres': +- genresList = re.findall(r'<span itemprop="genre">(.*?)</span>', matches[name].group('step1'), re.DOTALL) +- data[name] = [] +- for d in genresList: +- data[name].append(d.strip().capitalize()) +- +- elif name == 'studio': +- studiosList = re.findall(r'<span itemprop="productionCompany">(.*?)</span>', matches[name].group('step1')) +- data[name] = [] +- for d in studiosList: +- data[name].append(d.strip()) +- +- elif name == 'time': +- h, m = matches[name].group('hours'), matches[name].group('mins') +- if len(m) == 0: +- m = 0 +- totmin = int(h)*60+int(m) +- data[name] = str(totmin) +- +- elif name == 'year': +- data[name] = matches[name].group('year').strip() +- +- elif name == 'otitle': +- otitle = re.sub(r'([\r\n]+|<em>|</em>)', '', matches[name].group('otitle')) +- data[name] = otitle.strip() +- +- elif name == 'plot': +- data[name] = matches[name].group('plot').strip() +- # Cleans up any HTML entities +- data[name] = self.__cleanUp(data[name]) +- +- else: +- matches[name] = '' +- +- # Image check +- try: +- imgtmp = re.findall(self.__regExps['image'], self.__data, re.S | re.I) +- matches['image'] = imgtmp[0] +- +- # Save image to a temporary folder +- md5 = genMD5() +- imObj = urlopen(matches['image'].strip()) +- img = imObj.read() +- imObj.close() +- imgPath = "/tmp/%s.jpeg" % md5 +- f = open(imgPath, 'w') +- f.write(img) +- f.close() +- +- # Base64 encoding +- data['image'] = (md5 + '.jpeg', base64.encodestring(img)) +- +- # Delete temporary image +- os.remove(imgPath) +- except: +- data['image'] = None +- +- # Now looks for casting information +- self.__getHTMLContent(url2) +- page = self.__data.split('\n') +- +- d = zone = 0 +- data['actors'] = [] +- data['prods'] = [] +- data['scens'] = [] +- data['comps'] = [] +- +- # Actors +- subset = re.search(r'Acteurs et actrices.*$', self.__data, re.S | re.I) +- if not subset: return data +- subset = subset.group(0) +- #print subset +- roleactor = re.findall(self.__castRegExps['roleactor'], subset, re.S | re.I) +- for ra in roleactor: +- #print ra +- data['actors'].append(re.sub(r'([\r\n\t]+)', '', ra[0])) +- data['actors'].append(re.sub(r'([\r\n\t]+)', '', ra[1])) +- +- # Producers, Scenarists, Composers +- for kind in ('prods', 'scens', 'comps'): +- data[kind] = [re.sub(r'([\r\n\t]+)', '', k).strip() for k in re.findall(self.__castRegExps[kind], subset, re.S | re.I)] +- +- return data +- +- def __cleanUp(self, data): +- """ +- Cleans up the string(s), replacing raw HTML entities with their +- ISO Latin-1 replacement text. +- @param data string or list of strings +- """ +- if type(data) == types.ListType: +- for s in data: +- for k, v in htmlents.entitydefs.iteritems(): +- s = s.replace("&%s;" % k, v) +- elif type(data) == types.StringType or type(data) == types.UnicodeType: +- for k, v in htmlents.entitydefs.iteritems(): +- data = data.replace("&%s;" % k, v) +- return data +- +- def __getMovie(self, title): +- if not len(title): return +- +- self.__title = title +- self.__getHTMLContent(self.__searchURL % urllib.quote(self.__title)) +- +- # Get all links +- links = self.__fetchMovieLinks(title) +- +- # Now retrieve info +- if links: +- for entry in links: +- data = self.__fetchMovieInfo( url = "%s=%s" % (self.__movieURL, entry[0]), url2 = "%s=%s" % (self.__castURL, entry[0]) ) +- # Add allocine link (custom field) +- data['allocine'] = "%s=%s" % (self.__movieURL, entry[0]) +- self.__domTree.addEntry(data) +- else: +- return None +- +- +-def showUsage(): +- print("Usage: %s movietitle" % sys.argv[0]) +- sys.exit(1) +- +-def main(): +- if len(sys.argv) < 2: +- showUsage() +- +- parser = AlloCineParser() +- parser.run(sys.argv[1]) +- +-if __name__ == '__main__': +- main() +diff --git a/src/fetch/scripts/fr.allocine.py.spec b/src/fetch/scripts/fr.allocine.py.spec +deleted file mode 100644 +index 2ed8bf0..0000000 +--- a/src/fetch/scripts/fr.allocine.py.spec ++++ /dev/null +@@ -1,39 +0,0 @@ +-Name=Allocine.fr +-Name[ca]=Allocine.fr +-Name[ca@valencia]=Allocine.fr +-Name[cs]=Allocine.fr +-Name[da]=Allocine.fr +-Name[de]=Allocine.fr +-Name[el]=Allocine.fr +-Name[en_GB]=Allocine.fr +-Name[eo]=Allocine.fr +-Name[es]=Allocine.fr +-Name[et]=Allocine.fr +-Name[eu]=Allocine.fr +-Name[fi]=Allocine.fr +-Name[fr]=Allocine.fr +-Name[gl]=Allocine.fr +-Name[hi]=Allocine.fr +-Name[hu]=Allocine.fr +-Name[ia]=Allocine.fr +-Name[it]=Allocine.fr +-Name[ka]=Allocine.fr +-Name[ko]=알로시네(프랑스) +-Name[nl]=Allocine.fr +-Name[nn]=Allocine.fr +-Name[pl]=Allocine.fr +-Name[pt]=Allocine.fr +-Name[pt_BR]=Allocine.fr +-Name[ru]=Allocine.fr +-Name[sk]=Allocine.fr +-Name[sl]=Allocine.fr +-Name[sv]=Allocine.fr +-Name[tr]=Allocine.fr +-Name[uk]=Allocine.fr +-Name[x-test]=xxAllocine.frxx +-Type=data-source +-ArgumentKeys=1 +-Arguments=%1 +-CollectionType=3 +-FormatType=0 +-UpdateArgs=%{title} +diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt +index aac0270..9bc2a90 100644 +--- a/src/tests/CMakeLists.txt ++++ b/src/tests/CMakeLists.txt +@@ -514,20 +514,6 @@ ecm_add_test(adsfetchertest.cpp + LINK_LIBRARIES fetcherstest ${TELLICO_TEST_LIBS} + ) + +-ecm_add_test(allocinefetchertest.cpp +- ../fetch/allocinefetcher.cpp +- ../fetch/execexternalfetcher.cpp +- ../translators/bibteximporter.cpp +- ../translators/risimporter.cpp +- ../gui/collectiontypecombo.cpp +- TEST_NAME allocinefetchertest +- LINK_LIBRARIES fetcherstest +- translatorstest +- newstuff +- ${TELLICO_BTPARSE_LIBS} +- ${TELLICO_TEST_LIBS} +-) +- + ecm_add_test(amazonfetchertest.cpp + ../fetch/amazonfetcher.cpp + ../fetch/amazonrequest.cpp +diff --git a/src/tests/allocinefetchertest.cpp b/src/tests/allocinefetchertest.cpp +deleted file mode 100644 +index 4dede49..0000000 +--- a/src/tests/allocinefetchertest.cpp ++++ /dev/null +@@ -1,220 +0,0 @@ +-/*************************************************************************** +- Copyright (C) 2010-2012 Robby Stephenson <robby@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 "allocinefetchertest.h" +- +-#include "../fetch/execexternalfetcher.h" +-#include "../fetch/allocinefetcher.h" +-#include "../collections/videocollection.h" +-#include "../collectionfactory.h" +-#include "../entry.h" +-#include "../images/imagefactory.h" +- +-#include <KSharedConfig> +- +-#include <QTest> +- +-QTEST_GUILESS_MAIN( AllocineFetcherTest ) +- +-AllocineFetcherTest::AllocineFetcherTest() : AbstractFetcherTest() { +-} +- +-void AllocineFetcherTest::initTestCase() { +- Tellico::RegisterCollection<Tellico::Data::VideoCollection> registerVideo(Tellico::Data::Collection::Video, "video"); +- Tellico::ImageFactory::init(); +- +- m_config = KSharedConfig::openConfig(QString(), KConfig::SimpleConfig)->group(QStringLiteral("allocine")); +- m_config.writeEntry("Max Cast", QStringLiteral("5")); +- m_config.writeEntry("Custom Fields", QStringLiteral("origtitle,allocine")); +-} +- +-void AllocineFetcherTest::cleanupTestCase() { +- Tellico::ImageFactory::clean(true); +-} +- +-void AllocineFetcherTest::testTitle() { +- // Allocine script is currently failing +- return; +- Tellico::Fetch::FetchRequest request(Tellico::Data::Collection::Video, Tellico::Fetch::Title, +- QStringLiteral("Superman Returns")); +- Tellico::Fetch::Fetcher::Ptr fetcher(new Tellico::Fetch::ExecExternalFetcher(this)); +- +- KConfig config(QFINDTESTDATA("../fetch/scripts/fr.allocine.py.spec"), KConfig::SimpleConfig); +- KConfigGroup cg = config.group(QStringLiteral("<default>")); +- cg.writeEntry("ExecPath", QFINDTESTDATA("../fetch/scripts/fr.allocine.py")); +- fetcher->readConfig(cg); +- // don't sync() and save the new path +- cg.deleteEntry("ExecPath"); +- +- Tellico::Data::EntryList results = DO_FETCH1(fetcher, request, 1); +- +- QCOMPARE(results.size(), 1); +- +- Tellico::Data::EntryPtr entry = results.at(0); +- QCOMPARE(entry->field(QStringLiteral("title")), QStringLiteral("Superman Returns")); +- QCOMPARE(entry->field(QStringLiteral("director")), QStringLiteral("Bryan Singer")); +- QCOMPARE(entry->field(QStringLiteral("producer")), QStringLiteral("Jon Peters; Gilbert Adler; Bryan Singer; Lorne Orleans")); +- QCOMPARE(entry->field(QStringLiteral("studio")), QStringLiteral("Warner Bros. France")); +- QCOMPARE(entry->field(QStringLiteral("year")), QStringLiteral("2006")); +- QCOMPARE(entry->field(QStringLiteral("genre")), QStringLiteral("Fantastique; Action")); +- QCOMPARE(entry->field(QStringLiteral("nationality")), QString::fromUtf8("Américain; Australien")); +- QCOMPARE(entry->field(QStringLiteral("running-time")), QStringLiteral("154")); +- QStringList castList = Tellico::FieldFormat::splitTable(entry->field(QStringLiteral("cast"))); +- QVERIFY(!castList.isEmpty()); +- QCOMPARE(castList.at(0), QStringLiteral("Brandon Routh::Clark Kent / Superman")); +- QCOMPARE(castList.size(), 8); +- QVERIFY(!entry->field(QStringLiteral("plot")).isEmpty()); +- QVERIFY(!entry->field(QStringLiteral("cover")).isEmpty()); +- QVERIFY(!entry->field(QStringLiteral("cover")).contains(QLatin1Char('/'))); +-} +- +-void AllocineFetcherTest::testTitleAccented() { +- // Allocine script is currently failing +- return; +- Tellico::Fetch::FetchRequest request(Tellico::Data::Collection::Video, Tellico::Fetch::Title, +- QStringLiteral("Opération Tonnerre")); +- Tellico::Fetch::Fetcher::Ptr fetcher(new Tellico::Fetch::ExecExternalFetcher(this)); +- +- KConfig config(QFINDTESTDATA("../fetch/scripts/fr.allocine.py.spec"), KConfig::SimpleConfig); +- KConfigGroup cg = config.group(QStringLiteral("<default>")); +- cg.writeEntry("ExecPath", QFINDTESTDATA("../fetch/scripts/fr.allocine.py")); +- fetcher->readConfig(cg); +- // don't sync() and save the new path +- cg.deleteEntry("ExecPath"); +- +- Tellico::Data::EntryList results = DO_FETCH1(fetcher, request, 1); +- +- QCOMPARE(results.size(), 1); +- +- Tellico::Data::EntryPtr entry = results.at(0); +- QCOMPARE(entry->field(QStringLiteral("title")), QString::fromUtf8("Opération Tonnerre")); +- QCOMPARE(entry->field(QStringLiteral("titre-original")), QStringLiteral("Thunderball")); +- QCOMPARE(entry->field(QStringLiteral("studio")), QString()); +-} +- +-void AllocineFetcherTest::testTitleAccentRemoved() { +- // Allocine script is currently failing +- return; +- Tellico::Fetch::FetchRequest request(Tellico::Data::Collection::Video, Tellico::Fetch::Title, +- QStringLiteral("Operation Tonnerre")); +- Tellico::Fetch::Fetcher::Ptr fetcher(new Tellico::Fetch::ExecExternalFetcher(this)); +- +- KConfig config(QFINDTESTDATA("../fetch/scripts/fr.allocine.py.spec"), KConfig::SimpleConfig); +- KConfigGroup cg = config.group(QStringLiteral("<default>")); +- cg.writeEntry("ExecPath", QFINDTESTDATA("../fetch/scripts/fr.allocine.py")); +- fetcher->readConfig(cg); +- // don't sync() and save the new path +- cg.deleteEntry("ExecPath"); +- +- Tellico::Data::EntryList results = DO_FETCH1(fetcher, request, 1); +- +- QCOMPARE(results.size(), 1); +- +- Tellico::Data::EntryPtr entry = results.at(0); +- QCOMPARE(entry->field(QStringLiteral("title")), QString::fromUtf8("Opération Tonnerre")); +-} +- +-void AllocineFetcherTest::testPlotQuote() { +- // Allocine script is currently failing +- return; +- Tellico::Fetch::FetchRequest request(Tellico::Data::Collection::Video, Tellico::Fetch::Title, +- QStringLiteral("Goldfinger")); +- Tellico::Fetch::Fetcher::Ptr fetcher(new Tellico::Fetch::ExecExternalFetcher(this)); +- +- KConfig config(QFINDTESTDATA("../fetch/scripts/fr.allocine.py.spec"), KConfig::SimpleConfig); +- KConfigGroup cg = config.group(QStringLiteral("<default>")); +- cg.writeEntry("ExecPath", QFINDTESTDATA("../fetch/scripts/fr.allocine.py")); +- fetcher->readConfig(cg); +- // don't sync() and save the new path +- cg.deleteEntry("ExecPath"); +- +- Tellico::Data::EntryList results = DO_FETCH1(fetcher, request, 1); +- +- QCOMPARE(results.size(), 1); +- +- Tellico::Data::EntryPtr entry = results.at(0); +- QCOMPARE(entry->field(QStringLiteral("title")), QStringLiteral("Goldfinger")); +- QVERIFY(!entry->field(QStringLiteral("plot")).contains(QStringLiteral("""))); +-} +- +-void AllocineFetcherTest::testTitleAPI() { +- Tellico::Fetch::FetchRequest request(Tellico::Data::Collection::Video, Tellico::Fetch::Keyword, +- QStringLiteral("Superman Returns")); +- Tellico::Fetch::Fetcher::Ptr fetcher(new Tellico::Fetch::AllocineFetcher(this)); +- fetcher->readConfig(m_config); +- Tellico::Data::EntryList results = DO_FETCH1(fetcher, request, 1); +- +- QCOMPARE(results.size(), 1); +- +- Tellico::Data::EntryPtr entry = results.at(0); +- QCOMPARE(entry->field(QStringLiteral("title")), QStringLiteral("Superman Returns")); +- QCOMPARE(entry->field(QStringLiteral("director")), QStringLiteral("Bryan Singer")); +- QCOMPARE(entry->field(QStringLiteral("producer")), QStringLiteral("Jon Peters; Gilbert Adler; Bryan Singer; Lorne Orleans")); +- QCOMPARE(entry->field(QStringLiteral("studio")), QStringLiteral("Warner Bros. France")); +- QCOMPARE(entry->field(QStringLiteral("year")), QStringLiteral("2006")); +- QCOMPARE(entry->field(QStringLiteral("genre")), QStringLiteral("Fantastique; Action")); +- QCOMPARE(entry->field(QStringLiteral("nationality")), QStringLiteral("U.S.A.; Australie")); +- QCOMPARE(entry->field(QStringLiteral("running-time")), QStringLiteral("154")); +- QStringList castList = Tellico::FieldFormat::splitTable(entry->field(QStringLiteral("cast"))); +- QVERIFY(!castList.isEmpty()); +- QCOMPARE(castList.at(0), QStringLiteral("Brandon Routh::Clark Kent / Superman")); +- QCOMPARE(castList.size(), 5); +- QVERIFY(!entry->field(QStringLiteral("plot")).isEmpty()); +- QVERIFY(!entry->field(QStringLiteral("cover")).isEmpty()); +- QVERIFY(!entry->field(QStringLiteral("cover")).contains(QLatin1Char('/'))); +-} +- +-void AllocineFetcherTest::testTitleAPIAccented() { +- Tellico::Fetch::FetchRequest request(Tellico::Data::Collection::Video, Tellico::Fetch::Keyword, +- QStringLiteral("Opération Tonnerre")); +- Tellico::Fetch::Fetcher::Ptr fetcher(new Tellico::Fetch::AllocineFetcher(this)); +- fetcher->readConfig(m_config); +- Tellico::Data::EntryList results = DO_FETCH1(fetcher, request, 1); +- +- QCOMPARE(results.size(), 1); +- +- Tellico::Data::EntryPtr entry = results.at(0); +- QCOMPARE(entry->field(QStringLiteral("title")), QString::fromUtf8("Opération Tonnerre")); +- QCOMPARE(entry->field(QStringLiteral("origtitle")), QStringLiteral("Thunderball")); +- QCOMPARE(entry->field(QStringLiteral("studio")), QStringLiteral("United International Pictures (UIP)")); +- QCOMPARE(entry->field(QStringLiteral("director")), QStringLiteral("Terence Young")); +- QCOMPARE(entry->field(QStringLiteral("color")), QStringLiteral("Color")); +- QVERIFY(!entry->field(QStringLiteral("allocine")).isEmpty()); +-} +- +-// mentioned in https://bugs.kde.org/show_bug.cgi?id=337432 +-void AllocineFetcherTest::testGhostDog() { +- Tellico::Fetch::FetchRequest request(Tellico::Data::Collection::Video, Tellico::Fetch::Keyword, +- QStringLiteral("Ghost Dog: la voie du samourai")); +- Tellico::Fetch::Fetcher::Ptr fetcher(new Tellico::Fetch::AllocineFetcher(this)); +- fetcher->readConfig(m_config); +- Tellico::Data::EntryList results = DO_FETCH1(fetcher, request, 1); +- +- QCOMPARE(results.size(), 1); +- +- Tellico::Data::EntryPtr entry = results.at(0); +- QCOMPARE(entry->field(QStringLiteral("title")), QStringLiteral("Ghost Dog: la voie du samourai")); +-} +diff --git a/src/tests/allocinefetchertest.h b/src/tests/allocinefetchertest.h +deleted file mode 100644 +index 9219c94..0000000 +--- a/src/tests/allocinefetchertest.h ++++ /dev/null +@@ -1,54 +0,0 @@ +-/*************************************************************************** +- Copyright (C) 2010-2012 Robby Stephenson <robby@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 ALLOCINEFETCHERTEST_H +-#define ALLOCINEFETCHERTEST_H +- +-#include "abstractfetchertest.h" +- +-#include <KConfigGroup> +- +-class AllocineFetcherTest : public AbstractFetcherTest { +-Q_OBJECT +-public: +- AllocineFetcherTest(); +- +-private Q_SLOTS: +- void initTestCase(); +- void cleanupTestCase(); +- +- void testTitle(); +- void testTitleAccented(); +- void testTitleAccentRemoved(); +- void testPlotQuote(); +- +- void testTitleAPI(); +- void testTitleAPIAccented(); +- void testGhostDog(); +- +-private: +- KConfigGroup m_config; +-}; +- +-#endif +-- +2.45.2 + diff --git a/tellico-3.5.5.tar.xz b/tellico-3.5.5.tar.xz new file mode 100644 index 0000000..1ffc025 --- /dev/null +++ b/tellico-3.5.5.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:001794c52e99b20feab8373440850549ccd6da0a1fe2345c6192f9385472d06c +size 6796536 diff --git a/tellico-4.0.tar.xz b/tellico-4.0.tar.xz new file mode 100644 index 0000000..e6281d6 --- /dev/null +++ b/tellico-4.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d4d05f3d430048d9d694a6e82371c9d54c2c28bf78fc7921db7d089351b4d33 +size 6794676 diff --git a/tellico.changes b/tellico.changes new file mode 100644 index 0000000..e32d846 --- /dev/null +++ b/tellico.changes @@ -0,0 +1,1519 @@ +------------------------------------------------------------------- +Wed Sep 4 17:40:54 UTC 2024 - Christophe Marin <christophe@krop.fr> + +- Update to 4.0 + * https://tellico-project.org/blog/ + * Building with Qt6 is enabled by default + * Book and video collections can be imported from file + metadata (kde#214606) + * All entry templates were updated to include any loan + information (kde#411903) + * Creating and viewing the internal log file is supported + through the --log and --logfile command-line options (kde#426624) + * The DBUS interface can output to stdout using -- as the file name + * Choice fields are now allowed to have multiple values (kde#483831) + * The iTunes, Discogs, and MusicBrainz sources now separate + multi-disc albums (kde#479503) + * A configurable locale was added to the IMDb data source + * The Allocine and AnimeNFO data sources were removed + +------------------------------------------------------------------- +Tue Jun 25 07:05:58 UTC 2024 - Christophe Marin <christophe@krop.fr> + +- Update to 3.5.5 + * Fixed the XSLT file loading to work correctly with + libxml2 >= 2.13 (kde#488707) + * Fixed bug for showing entries with large content (kde#487079) + * Improved the SRU fetcher to allow user-defined search indices + (kde#488931) +- Add upstream change: + * 0001-Remove-Allocine-data-source.patch + +------------------------------------------------------------------- +Sun Mar 24 07:56:16 UTC 2024 - Christophe Marin <christophe@krop.fr> + +- Update to 3.5.4 + * Fixed bug with opening help from the config dialog (kde#479591). + * Updated Open Library source to search for comics (kde#479506). + * Fixed bug with filter dialog buttons (kde#479771). + * Fixed display bug with entry status (kde#479843). + * Fixed bug for entry selection after changing group field (kde#480297). + * Fixed DVDFr searches with title accents. + * Updated FilmAffinity data source. + +------------------------------------------------------------------- +Fri Jan 5 08:53:34 UTC 2024 - Christophe Marin <christophe@krop.fr> + +- Update to 3.5.3 + * Improved some entry matching heuristics when updating from + other sources. + * Updated the author search for the Open Library data source. + * Updated Kino-Teatr data source. + * Fixed compilation for versions of KDE Frameworks < 5.94. + * Fixed layout bug in Fancy template for custom collections + with no image. + +------------------------------------------------------------------- +Tue Oct 24 06:58:56 UTC 2023 - Christophe Marin <christophe@krop.fr> + +- Update to 3.5.2. + https://tellico-project.org/tellico-3-5-2-released/ + * Added support for importing Discogs collections (kde#446262). + * Added VGCollect data source. + * Added SAO/NASA Astrophysics Data System data source. + * Updated Numista data source to return additional results. + * Updated IMDb and FilmAffinity data sources. + * Fixed a bug with writing some relative links (kde#472778). + * Fixed title display for some custom collections (kde#231867). + +------------------------------------------------------------------- +Tue Jul 4 07:50:39 UTC 2023 - Christophe Marin <christophe@krop.fr> + +- Update to 3.5.1 + * Added support for using OPDS catalogs as data sources (kde#468698) + * Added support for reading images from data urls + * Added support to save entry template config for custom collections + * Fixed including the Image Grid template in the package + +------------------------------------------------------------------- +Tue May 16 19:22:03 UTC 2023 - Victorhck <victorhck@opensuse.org> + +- Update to 3.5 + Improvements and Bug Fixes: + * New data sources for FilmAffinity, iTunes Search, and Gaming History were added. + * Colnect can now be searched for comic books, sports cards, and video game results. + * Screenshots were added to results from IGDB, MobyGames, and TheGamesDB. + * The data sources for AMS Mathematical Review, Dark Horse Comics, KinoPoisk, and IBS were updated. + * The label catalog number is an option for Discogs results (kde#452548). + * Importing DataCrow files in exported XML format was added (kde#451138). + * Collections can now be saved as empty template files, for later reuse (kde#450043). + * New reports with an Image Grid and single entry per page were added (kde#452552). + * A command-line option for importing PDF files was added. + * An explicit filter rule for Bool fields was added. + * Allowing regular expressions in the quick filter became an option (kde#450517). + * A transparent background is now used in the initial view (kde#461777). + * The https scheme is now supported for SRU sources (kde#463438). + * The active filter is retained when selecting an entry (kde#462337). + * Support for reading EPUB files with KFileMetaData was added (kde#450192). + * The link color for entry templates can now be configured (kde#467150). + * The SRU and z39.50 information for the US Library of Congress was updated. + * Removed Fix-build-with-older-Qt-versions.patch, since it's included in source code. + +------------------------------------------------------------------- +Wed Feb 8 21:22:03 UTC 2023 - Jaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@fastmail.net> + +- Update to 3.4.6 + Improvements and Bug Fixes: + * Updated IMDb data source to better support TV series (kde#463717, kde#460401) + * Fixed fallback to https scheme in SRU data source (kde#463438). + * Fixed bug with timing of multisource config read (kde#461861). + * Fixed edit dialog resizing (kde#462237). + +------------------------------------------------------------------- +Thu Nov 17 12:31:35 UTC 2022 - Wolfgang Bauer <wbauer@tmo.at> + +- Update to 3.4.5 + Improvements and Bug Fixes: + * Fixed display for large reports (kde#461391). + * Updated the ESRB rating from TheGamesDB data source. + * Fixed image path for exporting GCstar file (kde#453075). + * Fixed file installation for KDE Frameworks 5.100. + * Updated CSV importer to remember previous delimiters. + * Updated the IMDb data source to include the composer (kde#450618). +- Add Fix-build-with-older-Qt-versions.patch to fix build on Leap + 15.3 + +------------------------------------------------------------------- +Wed Jul 6 06:22:18 UTC 2022 - Christophe Giboudeaux <christophe@krop.fr> + +- Require dbus-send. Needed to install/uninstall scripts + downloaded using knewstuff + +------------------------------------------------------------------- +Thu Feb 17 12:41:53 UTC 2022 - Wolfgang Bauer <wbauer@tmo.at> + +- Update to 3.4.4 + Improvements and Bug Fixes: + * Fixed bug with serializing code points with surrogate pairs + (kde#449244). + * Fixed bug with internet search dialog layout (kde#449636). + * Fixed bug with taskbar icon on Wayland (kde#450180). + * Updated Discogs keyword search to show accurate results. + +------------------------------------------------------------------- +Tue Jan 4 13:15:32 UTC 2022 - Wolfgang Bauer <wbauer@tmo.at> + +- Update to 3.4.3 + Features: + * The kinopoisk.ru data source was updated (kde#447435). + * The Album template was improved to account for possible changes + in the Tracks field. + Improvements and Bug Fixes: + * Fixed bug with opening target=_blank links (kde#445871). + * Fixed crashing bug in audio file importer (kde#446551). + +------------------------------------------------------------------- +Tue Nov 9 11:08:09 UTC 2021 - Wolfgang Bauer <wbauer@tmo.at> + +- Update to 3.4.2 + Features: + * A new data source for RPGGeek was added. + * The TheTVDB data source was updated. + * The kino.de data source was updated. + * The IBS.it data source was updated. + * The kino-teatr data source was updated. + * The IMDb data source was updated. + * The BoardGameGeek data source now uses larger images, when + configured. + * The TheMovieDB data source now allows user-entered language + selection. + * The Discogs data source can now continue searches when more + results are available. + * Context menu actions were added to copy and save images + (kde#443897). + * All entry and report templates were updated to HTML5. + * A DBUS command for importing PDF files was added. + Improvements and Bug Fixes: + * Invalid XML characters are no longer saved and no longer break + loading (kde#443845). + * Recursive audio file metadata importing now works correctly and + metadata import was expanded. + * Importing string macros from an empty bibtex file now works + correctly (kde#440652). + * Undo now works after appending a new collection. + * A crashing bug when importing some PDF files was fixed. + +------------------------------------------------------------------- +Tue May 11 17:48:02 UTC 2021 - Wolfgang Bauer <wbauer@tmo.at> + +- Update to 3.4.1 + Features: + * A new data source for TheTVDB was added. + * A new Year Distribution chart was added to the available + reports. + Improvements and Bug Fixes: + * The TMDb data source was improved to search for TV series. + * Charts can now be saved as .png files in addition to being + printed. + * The DBUS interface for installing templates now returns a reply + to indicate success. + * The DBC, Filmaster, and KinoPoisk data sources were updated. + * Image loading now attempts to account for orientation metadata + (kde#436683). + * Relative links are now handled correctly from the Entry View + (kde#436071). + +------------------------------------------------------------------- +Tue Apr 20 08:23:20 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr> + +- Spec cleanup + +------------------------------------------------------------------- +Sat Mar 20 08:27:43 UTC 2021 - Wolfgang Bauer <wbauer@tmo.at> + +- Update to 3.4 + New Features: + * New data sources for UPCitemdb, TVmaze, and Numista were added. + * Colnect can now be searched for stamp results. + * Batch searching was added for ISBNdb. + * Barcode searching and updating was added to DVDfr, Discogs and + MusicBrainz. + * The Group View can now be sorted by fields other than the + title. + * The MultiFetcher data source was improved to "daisy-chain" + results from multiple sources, merging them together. For + example, a UPC search with UPCitemdb could be connected such + that the result has additional information from TMDb. + * Entries can now be filtered using minimum or maximum image + size. + * Importing from the Collectorz software family was added. + * Graphical chart reports were added (requires compiling with + QtCharts). + Fixes: + * The default toolbar layout for adding new entries to the + collection was tweaked. + * Data sources for Douban, Discogs, MusicBrainz, IGDB, OMDb, + TheGamesDB, and TMDb were updated. + * Overall, the entry updating and merging was also improved to + both make a better search request as well as match existing + results more efficiently. + * The AnimeNFO data source was removed. + * PlayStation5 and Xbox Series X were added to the list of + default game platforms. + * The entry and report templates were improved for mobile + layouts. + * A crashing bug on Windows was fixed (kde#422468). + * The "Filter by Group" command was again improved to better + match table fields. + * Tellico will now build against QtWebEngine instead of KHTML, + if available, since KHTML is deprecated. + * Bibtex parsing with the included btparse library is now a + compile-time option, which allows Tellico to build with MSVC. +- Build with QtWebEngine instead of KHTML where possible +- Add Qt5Charts BuildRequires to enable new graphical chart reports + +------------------------------------------------------------------- +Thu Nov 26 09:11:18 UTC 2020 - Wolfgang Bauer <wbauer@tmo.at> + +- Update to 3.3.4: + Improvements: + * Added barcode searching to MusicBrainz data source + (kde#429483). + * Added barcode searching to Discogs data source. + Bug Fixes: + * Fixed text color in Group View for some dark themes + (kde#429475). + * Fixed crashing bug when checking in loans (kde#426815). + +------------------------------------------------------------------- +Wed Sep 16 20:09:51 UTC 2020 - Wolfgang Bauer <wbauer@tmo.at> + +- Update to 3.3.3: + Improvements: + * Improved the Entrez (Pubmed) data source to use an API key when + available and to honor the rate limit. + * Improved the ISDBdb data source to search for multiple ISBN + values (kde#415883). + Bug Fixes: + * Fixed Amazon data source (kde#425129). + * Updated DBC Open Search data source. + * Fixed regression for creation date in duplicated entries + (kde#422127). + * Fixed column header visibility after reordering fields + (kde#422298). + * Fixed focus issue in entry editor dialog (kde#343702). + +------------------------------------------------------------------- +Thu Aug 27 14:12:30 UTC 2020 - Christophe Giboudeaux <christophe@krop.fr> + +- Use %cmake_build instead of %make_jobs + +------------------------------------------------------------------- +Tue Aug 11 11:20:21 UTC 2020 - Wolfgang Bauer <wbauer@tmo.at> + +- Update to 3.3.2: + Bug Fixes: + * Updated Allocine data source. + * Updated KNewStuff categories so KDE Store uploads are shown. + * Updated KinoPoisk data source. + * Improved the Goodreads importer. + * Fixed compilation with Qt version 5.9 and KDE ECM 5.72.0. +- Drop patches merged upstream: + * Fix-compilation-with-Qt-5.9.patch + * switch-order-of-cmake-modules.patch + +------------------------------------------------------------------- +Sat Jul 11 13:53:46 UTC 2020 - Wolfgang Bauer <wbauer@tmo.at> + +- Add switch-order-of-cmake-modules.patch to fix build with KDE + Frameworks 5.72.0 + +------------------------------------------------------------------- +Tue Jun 2 15:41:28 UTC 2020 - Wolfgang Bauer <wbauer@tmo.at> + +- Update to 3.3.1: + Features: + * Updated filter dialog to allow matching against empty text. + Bug Fixes: + * Updated script for Dark Horse comics data source. + * Fixed bug with creation date for duplicated entries + (kde#422127). + * Fixed error in ISO-5426 conversion (kde#420451). + * Fixed compilation with Qt versions back to 5.9. +- Drop patches merged upstream: + * Use-unnamespaced-hex-for-Qt-lt-5.14.patch + * Fix-build-with-Qt-5.9.patch +- Add Fix-compilation-with-Qt-5.9.patch to fix a new compiler error + with Qt 5.9 (kde#422354) + +------------------------------------------------------------------- +Thu Apr 23 13:42:09 UTC 2020 - Wolfgang Bauer <wbauer@tmo.at> + +- Update to 3.3: + Features: + * Added new coin collection data source from Colnect. + * Updated GiantBomb data source. + * Updated IBS.it data source + * Updated kino.de data source. + * Updated Kinopoisk (КиноПоиск) data source. + * Updated Kino-Teatr (Кино-Театр) data source. + * Updated BiblioShare data source. + * Updated TheGamesDB data source. + * Updated Amazon data source. Access keys must be regenerated by + users. + * Updated MobyGames data source. + * Improved z39.50 data source to allow separate character + encoding for queries and responses (kde#419670). + * Improved the audio file importing to include Album Artist + (kde#419348). + * Added PlayStation5 and Xbox Series X to recognized video game + platforms. + Bug Fixes: + * Fixed bug with writing invalid XML names (kde#418067). + * Updated AlloCiné and MusicBrainz data sources to provide + notification that user agents must be enabled (kde#419309). + * Improved MobyGames data source to cache platform data, allow + user selection of image size, pass through error messages, and + use more efficient API calls (kde#416718). + * Improved the ISO-5426 character converter. + * Updated python scripts to work in python2 or python3. +- Add patches to fix build with the lower Qt versions in Leap: + * Use-unnamespaced-hex-for-Qt-lt-5.14.patch + * Fix-build-with-Qt-5.9.patch + +------------------------------------------------------------------- +Sat Nov 30 15:14:58 UTC 2019 - thod_@gmx.de + +- Update to 3.2.3: + Bug Fixes: + * Fixed performance regression when loading data file. + +------------------------------------------------------------------- +Sun Nov 10 08:40:10 UTC 2019 - wbauer@tmo.at + +- Update to 3.2.2: + Features: + * Added importer for LibraryThing.com JSON collection files + (kde#411095). + Bug Fixes: + * Fixed bug with calculating relative file links (kde#410551). + * Fixed bug to revert to behavior of selecting newly added + entries (kde#413217). + * Fixed compilation on KF 5.61 and Qt 5.13. +- Drop Fix-build-with-Qt-5_13.patch, merged upstream + +------------------------------------------------------------------- +Mon Aug 12 09:07:26 UTC 2019 - Christophe Giboudeaux <christophe@krop.fr> + +- Add Fix-build-with-Qt-5_13.patch + +------------------------------------------------------------------- +Wed Jul 10 11:21:14 UTC 2019 - wbauer@tmo.at + +- Update to 3.2.1: + Features: + * Added a data source for Kino-Teatr.ua. + * Updated Kino.de data source. + * Removed optional dependency on QImageBlitz library. + Bug Fixes: + * Fixed selection bug when modifying an unselected entry + (kde#391614). + * Fixed bug for the status bar to respond when canceling an entry + update (kde#325591). + * Fixed file preview generation for file collections. + * Improved normalization of video game platform names. + * Remove state of the locked layout setting between sessions. +- specfile cleanup: + * Remove conditionals for old openSUSE versions + * Remove no longer necessary %post/%postun sections that are + no-ops in Leap 15.0 and later, to get rid of rpmlint warnings +- Use %kf5_find_htmldocs to generate filelist for translated docs + +------------------------------------------------------------------- +Wed May 29 06:38:25 UTC 2019 - Christophe Giboudeaux <christophe@krop.fr> + +- Update to 3.2 + * Updated documentation. + * Added capability to dock collection views side-by-side. + * Improved speed when merging collections (kde#349410). + * Added Moby Games data source. + * Added ComicVine data source. + * Updated Amazon data source to include localized data from Brazil, Australia, + India, Mexico, and Turkey. + * Updated IGDB.com data source. + * Updated TheGamesDB.net data source (kde#407811). + * Updated Visual Novel Database data source. + * Updated KinoPoisk.ru data source (kde#403185). + * Fixed bug with setting IMDB rating in various locales (kde#401894). + * Corrected server for National Library of Lithuania (kde#404743). + * Don't open a blank entry for editing when collection has not been saved (kde#405191). + * Fix build against ICU 64.1 and later (Gentoo Bug 685460). + +------------------------------------------------------------------- +Fri Dec 21 08:45:22 UTC 2018 - wbauer@tmo.at + +- Update to 3.1.4: + Features: + * Updated Kino.de data source. + * Updated KinoPoisk.ru data source. + * Updated Bedetheque.com data source. + Bug Fixes: + * Fixed group filtering for special characters (kde#399928). + * Fixed bug when using a regular expression filter for number + fields (kde#399323). +- Run spec-cleaner + +------------------------------------------------------------------- +Mon Sep 3 21:14:32 UTC 2018 - wbauer@tmo.at + +- Update to 3.1.3: + Improvements: + * Updated Internet Movie Database (IMDB.com) data source + (kde#393239). + * Updated TheGamesDB.net data source. + * Updated Amazon.com data source (kde#396211). + * Updated SRU data source to allow multiple MARC records in + response. + Bug fixes: + * Fixed compilation for Qt 5.6 (kde#392457). + * Fixed bug with clearing the selection when modifying an entry + (kde#394343). + * Fixed LTR direction for year within Video template + (deb#904259). +- Drop fix-build-with-Qt5.6.patch, merged upstream + +------------------------------------------------------------------- +Wed Mar 28 11:48:43 UTC 2018 - wbauer@tmo.at + +- Update to 3.1.2: + Improvements: + * Updated KINO.de data source. + * Updated Internet Movie Database (IMDB.com) data source. + * Updated ISBNdb.com data source. + * Updated MusicBrainz data source. + Bug fixes: + * Added workaround for crash when reading EXIV data (kde#390744). + * Fixed bug with inconsistent selection (kde#391614). + * Fixed bug with "Filter by Group" (kde#389931). +- Add fix-build-with-Qt5.6.patch to make it compile on Leap 42.3 + (kde#392457) +- Use cmake() syntax for KF5 and Qt5 BuildRequires +- Mark license files as %license + +------------------------------------------------------------------- +Tue Jan 16 09:15:32 UTC 2018 - wbauer@tmo.at + +- Update to 3.1.1: + Improvements: + * Updated KINO.de data source. + * Updated Internet Game Database (IGDB.com) data source. + * Updated Internet Movie Database (IMDB.com) data source. + * Improved "Filter by Group" to use a regular expression + (kde#386011). + * Updated Goodreads importer. + Bug fixes: + * Removed deprecated Wine.com data source. + * Fixed bug with OMDB settings not being saved (kde#388703). + * Fixed bug with filter selection (kde#387130). + * Fixed bug with multi-selection and entry editing (kde#387053). + * Fixed bug with incorrect entry titles in icon view and multiple + entry icons (kde#386548). + * Fixed bug for "losing" icons after modifying a collection + (kde#386549). + * Fixed bug with duplicated colons in CSV importer (kde#386483). + +------------------------------------------------------------------- +Sun Oct 15 07:13:25 UTC 2017 - thod_@gmx.de + +- Update to 3.1: + * Added data source for KINO.de. + * Added data source for Internet Game Database (IGDB.com). + * Added data source for OpenSource.dbc.dk. + * Added message dialog for Amazon Associate warnings (kde#364784). + * Added DBUS option for filtering exported entries (kde#382035). + * Improved performance for filtering large collections. + * Switched from using libdiscid to libcdio for improved performance for reading Audio CDs and CD-Text. + Bug Fixes: + * Fixed crashing bugs with remote image loading (kde#382572, kde#379607, kde#384104). + * Fixed bug with showing stars in column view for float values (kde#384547). + * Fixed building with CMake 3.9+ (kde#382680) + * Fixed bug of running out of memory when writing very large XML files (kde#380832). + * Fixed bug with some icons not being shown (kde#378477). + * Removed deprecated Freebase data source. + * Fixed track length for CD audio (kde#379426). + * Fixed bug showing icons for custom collection (kde#378852). + * Added PEGI rating to GiantBomb results (kde#375996). +- Remove 0001-Fix-build-with-cmake-3.9.patch (see kde#382680 above) + +------------------------------------------------------------------- +Tue Sep 5 16:59:07 UTC 2017 - wbauer@tmo.at + +- Add 0001-Fix-build-with-cmake-3.9.patch to fix build with latest + cmake in Factory (kde#382680) + +------------------------------------------------------------------- +Tue Mar 28 10:03:20 UTC 2017 - wbauer@tmo.at + +- Add libkcddb-devel build requirement for Leap >= 42.3 and + Tumbleweed to enable CDDB searches. + +------------------------------------------------------------------- +Tue Mar 28 08:01:00 UTC 2017 - wbauer@tmo.at + +- Update to 3.0.2: + Features: + * Added data source for OMDBAPI.com. + * Added data source for KinoPoisk.ru. + * Added data source for VideoGameGeek.com. + * Updated the InternetBookStore (ibs.it) data source (kde#373774). + * Updated the Douban.com data source. + Bug Fixes: + * Fixed bug with relative image location for reports (kde#377790). + * Fix some potential crashes, identified from Coverity scan. + +------------------------------------------------------------------- +Sat Feb 25 19:38:18 UTC 2017 - asterios.dramis@gmail.com + +- Enable libcsv-devel build requirement also for Leap >= 42.3. + +------------------------------------------------------------------- +Wed Feb 22 15:14:41 UTC 2017 - thod_@gmx.de + +- Update to 3.0.1: + Changes: + * Updated MARCXML2MODS stylesheet to version 3.6. + * Added ESRB rating for "Everyone 10+" (kde#375995). + * Updated DBLP data source. + Bug Fixes: + * Fixed bug with truncated first two characters of root folder when importing a file listing (kde#373918). + * Fixed bug with Rating drawing size in list view (kde#372560). + * Fixed Google Scholar data source. + * Fixed Bibsys z39.50 settings (kde#375758). + * Fixed "Report Bug" menu item to link to bugs.kde.org (kde#375760). + * Fixed image open dialog to remember last location (kde#376002). + * Fixed relative file locations in HTML export (kde#376002). + * Removed defunct Microsoft Academic Search data source. + +------------------------------------------------------------------- +Fri Jan 27 22:00:10 UTC 2017 - asterios.dramis@gmail.com + +- Added new build requirement libcsv-devel for openSUSE Tumbleweed. + +------------------------------------------------------------------- +Fri Nov 11 21:51:26 UTC 2016 - asterios.dramis@gmail.com + +- Update to 3.0: + Changes: + * Update dependencies to KDE Frameworks 5 and Qt5. + * Improved performance for merging large collections. + * Improved performance for deleting many entries at once. + * Changed UI to include switchable view between icons and + detailed list. + * Added support for user-defined SRU queries. + * Improved support for reading Audio CD information. + * Improved the bedetheque data source. + * Removed the defunct Yahoo! data source. + * Removed the defunct Citebase fetcher. + * Removed the PilotDB exporter (!). + Bug fixes: + * Added menu items for each Url field in icon view (kde#250913). + * Fix bug for overly wide dialog box (kde#362028). + * Fix crashing bug with some empty table values (kde#361622). + * Fix bug with zero-padding in filter dates (kde#361625). +- Updated build/runtime requirements to KF5/Qt5. +- Added new build requirement libdiscid-devel. + +------------------------------------------------------------------- +Wed Jun 15 21:54:26 UTC 2016 - wbauer@tmo.at + +- Use shared-mime-database macros (boo#979301) + +------------------------------------------------------------------- +Sat Jan 9 09:51:02 UTC 2016 - tittiatcoke@gmail.com + +- Drop the dependency on kdepimlibs4 and kdepim4-runtime for + Factory/Tumbleweed to free the way to move fully to the KF5 based + PIM suite + +------------------------------------------------------------------- +Sat Jan 2 17:51:02 UTC 2016 - asterios.dramis@gmail.com + +- Update to 2.3.11: + Features: + * Improved support for importing PDF files from Science Direct. + * Enabled optional build support for QImageBlitz library. + Bug Fixes: + * Fixed scrolling problem with large tables (kde#348189). + * Fixed HTML exported titles with quotation marks (kde#348381). + * Fixed crashing bug with file listing importer (kde#345458). + * Fixed crashing bug with importing MODS files with external + fetcher. + * Fixed accelerator key conflict (kde#351226). + * Fixed bug with image importing for Discogs data source. + +------------------------------------------------------------------- +Thu Feb 19 19:39:22 UTC 2015 - asterios.dramis@gmail.com + +- Update to 2.3.10: + Features: + * Updated Discogs fetcher to new API (kde#342827). + * Updated Moviemeter fetcher to new API. + * Added filter rules for Greater than and Less than numbers. + * Updated BoardGameGeek fetcher to new API. + * Added capability to import a BoardGameGeek collection. + * Added a data source for Mathematical Reviews. + Bug Fixes: + * Fixed crashing bug with some ISBNdb results (kde#339063). + * Updated Producer results for IMDb and TheMovieDB fetchers + (kde#336765). + * Fixed bug with Allocine API search using punctuation + (kde#337432). + * Fixed bug with importing Goodreads collection. + +------------------------------------------------------------------- +Mon Nov 10 00:34:00 UTC 2014 - Led <ledest@gmail.com> + +- fix bashisms in post/postun scripts + +------------------------------------------------------------------- +Mon Jun 23 18:53:30 UTC 2014 - asterios.dramis@gmail.com + +- Update to 2.3.9: + Features: + * Improved GCstar import and export to handle custom GCstar fields. + * Updated TheMovieDB fetcher to API version 3. + Bug Fixes: + * Fixed bug with writing link-only images in HTML exporter (kde#330649). + * Fixed character encoding in Allocine fetcher (kde#334527). + * Removed IMDb country choice since it's now unavailable (kde#330641). + * Fixed CSV importer bug, causing a hang (kde#329677, deb#729503). + * Fixed crashing bug in IMDB fetcher (kde#330591). + * Fixed crashing bug in command-line importing (deb#729499). + * Corrected user dialog text with Google Book Search results (kde#323475). + * Fixed error in setting modified date for entry in certain cases + (kde#326911). + * Updated IMDb fetcher for website changes (kde#325673). + +------------------------------------------------------------------- +Mon Jul 8 10:08:19 UTC 2013 - cgiboudeaux@gmx.com + +- Update to 2.3.8 + * Updated ISBNdb.com fetcher to use v2 of API. + * Updated GiantBomb fetcher for XML changes in responses. + * Added coverartarchive.org to MusicBrainz data source. + * Updated Allocine fetcher for website changes. + * Added fetcher for VNDB.org. + * Added Dewey Decimal and LCC to ISBNdb.org results. + * Added Bibtex importing for drag/drop text (kde#319182). + * Fixed Entrex/Pubmed fetcher for summary requests (kde#319501). + * Fixed bug with retaining allowed values when adding entries from data sources (kde#317905). + * Fixed bug with not properly escaping text in CSV exporter (kde#317473). + * Fixed regexp in Google Scholar fetcher to set cookie (kde#316550). + * Fixed character encoding in IMDB results list (kde#314113). + * Fixed crashing bug with OpenLibrary and DVDfr fetcher (kde#319681). + * Fixed memory leak when updating entries (kde#316449). + +------------------------------------------------------------------- +Thu Jan 24 13:45:14 UTC 2013 - cgiboudeaux@gmx.com + +- Update to 2.3.7 + * Added data sources for DBLP.org and TheGamesDB.net. + * Added import capability for VinoXML files. + * Added capability to enter Google API key for book search. + * Fixed a bug with adding new fields when importing bibtex (KDE#304767). + * Updated the IMDB fetcher. + * Corrected character encoding and title data for DVDfr search. + * Corrected actor and role results from Allocine search. + * Improved the Delicious Library importer. + * Fixed a bug with editing the toolbar configuration in KDE 4.9.2+. + * Fixed a bug with a number field not detecting a modified value (KDE#313304). + * Fixed a bug that caused loans to fail to get checked-in (KDE#307958). + +------------------------------------------------------------------- +Mon Jul 16 17:55:55 UTC 2012 - asterios.dramis@gmail.com + +- Update to tellico 2.3.6: + Features: + * Added simple importer for CIW files from ISI. + * Added data sources for IMDb in French, Spanish, German, Italian, and + Portuguese. + * Added API data source for Hathitrust. + * Added API data sources for Allocine, ScreenRush, FilmStarts, SensaCine and + Beyazperde. + * Added API data source for Springer Link. + * Added API data source for Microsoft Academic Search. + * Updated KDE library dependency so Tellico works with KDE 4.4 and KDE 4.5 + again. + Bug Fixes: + * Fixed an intermittent crash when entering multiple ISBN values in search. + * Improved Amazon search for US UPC values from non-UPC sites. + * Fixed formatting bugs in IBS.it search. + * Fixed a bug for saving images when using a local image directory + (kde#299130). + * Fixed a bug with loading images from Google Book Search (kde#299789). + +------------------------------------------------------------------- +Mon May 7 10:16:42 UTC 2012 - idonmez@suse.com + +- Fix taglib requires for older distros + +------------------------------------------------------------------- +Thu Apr 19 11:22:45 UTC 2012 - dmueller@suse.com + +- fix build for older distros + +------------------------------------------------------------------- +Mon Jan 16 20:05:31 UTC 2012 - asterios.dramis@gmail.com + +- Update to tellico 2.3.5: + Features: + * Added Amazon.com data sources for China, Spain, and Italy. + * Added filter rules for dates before and after. + * Updated GCstar exporter to include images. + * Updated Discogs fetcher to use API v2. + * Updated Wine.com fetcher to use API v2. + * Updated fetcher for Allocine.fr. + Bug Fixes: + * Fixed bug that always showed checkmark for boolean field values + (kde#283444). + * Fixed importing of multi-line notes from Alexandria (kde#289022). + * Fixed bug with merging entries (kde#289346). + * Fixed bug with Cancel not working in the Entry Merge dialog. + * Fixed broken script for searching Dark Horse Comics. + * Fixed a crashing bug when using the scanner dialog. + * Improved support for importing movies and music from Delicious Library. +- Removed "boolean_fields_fix.patch" (included in the new version). +- Spec file updates: + * Changes based on spec-cleaner run. + +------------------------------------------------------------------- +Sun Oct 16 11:06:34 UTC 2011 - asterios.dramis@gmail.com + +- Added a patch "boolean_fields_fix.patch" (taken from upstream) to fix + "Boolean fields are always shown with checkmark in list view, no matter the + value" (bko#283444). + +------------------------------------------------------------------- +Mon Sep 26 19:02:39 UTC 2011 - asterios.dramis@gmail.com + +- Update to tellico 2.3.4: + Features: + * Added data sources for Google Book Search and MovieMeter.nl. + * Added capability for searching French, Spanish, and German data from + TheMovieDB.org. + * Added importer for Goodreads collection. + * Added icon cache for improved performance with large images (bko#272583). + * Added UI controls for changing icon size (bko#250907). + * Added shortcut keys for showing full-screen and hiding menubar + (bko#251157). + Bug Fixes: + * Fixed bug with image link in Tri-Column report template (bko#272744). + * Fixed crashing bug with CSV importer and changing delimiters. + * Fixed bug in year from Douban.com data source. + * Fixed TMDB search for multiple person results. + * Updated filter rules to match against values without diacritics for + "Contains" criteria (bko#222400). + * Fixed showing a doubled filter count (bko#281082). + * Fixed bug when editing month in the date widget in KDE 4.7 (bko#281365). +- Spec file updates: + * Changed License: to GPL-2.0+. + * Added libxml2-devel and libxslt-devel in BuildRequires:. + * Removed support for openSUSE < 1120 from spec file. + +------------------------------------------------------------------- +Mon May 9 18:53:58 UTC 2011 - asterios.dramis@gmail.com + +- Spec file updates: + * Added libv4l-devel in BuildRequires: and enabled compilation with it + (support for using a webcam to scan barcodes). + * Removed bookcase Provides:/Obsoletes: (name change was done at 2004-09-20). + * Added suitable %post/%postun scripts for the mime file installed by the + package. + * Fixed locales removal if suse_version is not set. + +------------------------------------------------------------------- +Mon Apr 11 10:02:06 UTC 2011 - wstephenson@novell.com + +- Update to tellico 2.3.3: + * Added data sources for Filmaster and Douban. + * Added capability for importing ADS format from z39.50 sources. + * Added check for duplicate Bibtex keys (bko#245225) + * Added manga search for AnimeNfo.com. + * Improved performance for loading and sorting large collections. + * Fixed parsing bug for some IMDb results (bko#262036) + * Fixed parsing bug for empty table values (bko#261108) + * Fixed parsing bug with AnimeNfo.com results. + * Fixed bug when editing existing filters (bko#268829) + * Fixed crashing bug for editing some values (bko#269044) + * Fixed bug with loans not being updated for removed entries + (bko#270129) + * Fixed build for Linux kernel 2.6.38+ when using newer libv4l + library. + * Fixed build with GCC 4.6. + + +------------------------------------------------------------------- +Sat Feb 26 10:23:57 UTC 2011 - coolo@novell.com + +- switch back to recommends for tellico-lang + +------------------------------------------------------------------- +Sat Feb 12 20:39:42 UTC 2011 - asterios.dramis@gmail.com + +- Spec file updates + * Updated Group:, Summary: and %description. + * Minor updates in BuildRequires: and %install sections. + * Fixed tellico.desktop Categories entry. + * Fixed fdupes macro usage (which fixed rpmlint warning for + files-duplicate). + * Moved the english help files in the main package. + +------------------------------------------------------------------- +Mon Jan 10 20:29:26 UTC 2011 - asterios.dramis@gmail.com + +- Update to version 2.3.2 + * Fixed bug with list view settings not being saved between sessions (Bug + 256373) + * Fixed bug with updating groups for derived values (Bug 256374) + * Made Nepomuk support optional + * Added cover art support for MusicBrainz source + * Fixed Google Scholar data source to properly fetch Bibtex + * Fixed bug with FreeDB results not using track artists (Bug 258541) + * Fixed bug with importing Bibtex file with keyword and keywords fields (Bug + 258269) + * Fixed sorting multiple numeric values in column view + * Fixed sorting for numeric values in group view + * Updated Allocine script to version 0.7.3 (Bug 258281) + * Updated Bibtex importer to translate non-breaking spaces +- Spec file updates + * Changes based on rpmdevtools templates and spec-cleaner run. + * Updates in BuildRequires: and %install sections. + * Use Suggests: instead of Requires: for the tellico-lang package. +- Removed the patch for Bug 256373 (fixed upstream). + +------------------------------------------------------------------- +Fri Dec 10 21:40:43 UTC 2010 - alinm.elena@gmail.com + +- added patch for Bug 256373 + +------------------------------------------------------------------- +Mon Nov 8 15:53:57 UTC 2010 - tittiatcoke@gmail.com + +- Update to version 2.3.1 + * Fixed the Edit Dialog to have consistent behavior when + discarding edits (bko#255938). + * Fixed issue in Italian translation that caused an error for + HTML export (bko#254863). + * Updated the IMDb search for new layout (bko#253549). + * Updated Freebase search for new music schema. + * Changed HTML output for URL fields to truncate link text + (bko#250880). + * Improved the matching algorithm for updating entries when + multiple good matches exist (bko#250886). + * Fixed crash with searching z39.50 servers (bko#250795). + * Updated GCstar plugin reader to use a separate thread for + speed and robustness. + * Improved GCstar import and export for wine and comic book + collections. + * Fixed bug with adding new fields during CSV import. + * Updated the DTD to match recent changes in collection fields. + * Fixed filter view to apply filter when item is selected + (bko#248657). + * Updated the export dialog to allow limiting the number of + exported fields (bko#246390). + * Added data source for searching DVDFr.com. + * Added options in the CSV importer and exporter to read and + control table delimiters. + * Increased the maximum visible cover icon size to 256 pixels. + +------------------------------------------------------------------- +Sun Aug 8 19:39:07 UTC 2010 - beineri@opensuse.org + +- Update to version 2.3 + * Added data sources for OpenLibrary and Freebase. + * Added new fetcher for combining results from multiple sources + * Added filter for collection type to data source list + * Added clear button for rating widget + * Changed Amazon Japan video search to include DVDs + * Added Dewey Decimal and LoC Classification to z3950 MODS import. + * Changed entry ID values to start with 1 instead of 0 + * Several bug fixes + +------------------------------------------------------------------- +Sat Apr 3 11:11:45 CEST 2010 - llunak@suse.cz + +- another dir for bnc#457908 workaround + +------------------------------------------------------------------- +Wed Mar 31 15:29:03 UTC 2010 - wstephenson@novell.com + +- Update to version 2.2 + * Enabled KOrganizer integration for adding loans to calendar + * Enabled KAddressBook integration for adding borrowers from the + address book. + * Improved performance for modifying many entries at once. + * Added data source for Giant Bomb. + * Added data source for The Movie DB. + * Updated CrossRef data source to allow authentication via email + only (bko#224619). + * Added option for disabling webcam support. + + Bug fixes: + * Fixed some hyphenation issues for 978 ISBN values. + * Fixed bug in en_GB translation that affected file selection. + * Fixed adding "link-only" files (bko#220645). + * Fixed Discogs track download and title search. + * Fixed setting correct permissions of backup file (bko#219259). + * Fixed formatting of multiple people with auto-formatting + (bko#219268). + * Fixed updating from Amazon to include book title or album title + in search. + * Fixed crashing bug for sorting during HTML export. + * Fixed multiple selection in entry view (bko#216122). + +------------------------------------------------------------------- +Mon Mar 8 10:31:49 UTC 2010 - wstephenson@suse.de + +- Prune build dependencies, add kde4_runtime_requires + +------------------------------------------------------------------- +Wed Nov 25 08:40:44 UTC 2009 - beineri@opensuse.org + +- update to version 2.1.1: several crash and bug fixes and + * Updated allocine search script + * Updated IMDB search to include director and writer. + * Added data source for searching Wine.com. + * Added PAM/PRISM translator for SRU fetcher. + * Changed Amazon and Crossref data sources to store passwords + locally instead of in the KWallet. + * Updated GCstar importing for video games and board games. + * Added feature for exporting to GCstar format. + * Updated ISBNdb & Discogs data sources to allow user access keys + +------------------------------------------------------------------- +Tue Sep 22 08:30:21 UTC 2009 - tittiatcoke@gmail.com + +- Update to version 2.0 + * First release for KDE4 + * Relicensed under GPL2/GPL3 + * Document loading and image handling was improved for + large collections + * Amazon search was updated for new API (requires users to + register at Amazon for secret key) + * Webcam support was updated for newer kernels. + * New fields were added for tracking entry id, creation + date and last-modification date. + * Dependent fields were improved to allow them to be any + field type. + * HTML export was fixed to use correct image location, as + well as full locale sorting. + * Adding multiple ISBN values using an unmodified CueCat + barcode reader now works. + * A crash when loading some large images was fixed. + * Support for sending citations to OpenOffice.org was removed. + +------------------------------------------------------------------- +Mon Aug 12 09:43:36 UTC 2009 - tittiatcoke@gmail.com + +- updated to newer SVN Snapshot + * don't crash when saving config + * clean-ups to get ready for first 2.0 release + * add an ID field to all collections + * rearrange some widgets in the fields dialog + * use full language code for xsl sorting + * amazon can't be included by default since it requires an account now + * add bedetheque script from Raphaël Fischer +- added translations + +------------------------------------------------------------------- +Sat Jul 25 18:49:08 CEST 2009 - tittiatcoke@gmail.com + +- updated to newer SVN snapshot + * add alexandria importer test + * add referencer import test + * cleanup some of the freedb code + * Remove all support for insertin citations in OpenOffice.org. + * Use Qt4 headers + * add action to hide all columns in tree view + * many bugfixes. +- Change of license to GPL2 or GPL3 + +------------------------------------------------------------------- +Thu Mar 12 14:27:36 CET 2009 - pgajdos@suse.cz + +- fixed build: qt4/poppler-qt4.h --> poppler/qt4/poppler-qt4.h + +------------------------------------------------------------------- +Mon Feb 23 12:17:04 CET 2009 - pgajdos@suse.cz + +- updated to SVN version ported to KDE4 (upcomming 2.0.0) + +------------------------------------------------------------------- +Mon Feb 16 11:46:00 CET 2009 - pgajdos@suse.cz + +- update to 1.3.5: + * Updated entry updating to not combine multiple values. + * Fixed CueCat decoder to work for UPC and ISBN values. + * Updated Delicious Library 1 importer to handle movies + and games. + * Fixed query bug with z39.50 ISBN searches. + * Fixed Ubuntu bug 317822, don’t mark collection modified + when image is found in local data directory. + * Added date, time, and username as available params to XSLT export. + * Added patch from Jake Maciejewski to fix JavaScript sorting. + * Fixed crash when exporting to small Alexandria collections. + * Updated search dialog to open edit box for multiple ISBN search automatically. + + +------------------------------------------------------------------- +Mon Sep 15 14:36:58 CEST 2008 - stbinner@suse.de + +- update to 1.3.4: + * Updated IMDb import. + * Improved drag/drop to match on file extension. + * Added (minimal) searching for board games from Amazon. + * Fixed bug with linked images in HTML reports. + * Fixed CSV import error for consecutive white-space. + +------------------------------------------------------------------- +Mon Jul 14 10:21:43 CEST 2008 - stbinner@suse.de + +- update to 1.3.3: + * Fixed bug with file catalogs to properly match on file location + * Changed Arxiv fetcher to remove ID version number from results + * Updated drag-and-drop to allow HTTP urls, i.e. dragging bibtex + file from browser + * Updated Porbase in z39.50 server list + * Fixed copy() for text selection in main entry view + +------------------------------------------------------------------- +Mon Jun 16 11:23:07 CEST 2008 - stbinner@suse.de + +- update to 1.3.2.1: + * Added languages and editors to Amazon.com search. + * Fixed PubMed search to use UTF-8, and to include all keywords. + * Updated MODS import to improve importing from RefBase and WIKINDX. + * Updated XML file loading to remove duplicates and ignore white-space. + * Added LCCN validation and multiple LCCN searching from z39.50 sources. + * Improved IMDb search results. + * Updated entry creation to always add default values. + * Updated MODS conversion to add Canadian LCC values. + +------------------------------------------------------------------- +Tue Mar 25 17:13:16 CET 2008 - pgajdos@suse.cz + +- updated to 1.3.1: + * Added data source for discogs.com, a database for musical + albums, including vinyl + * Added data source for Google Scholar + * Added LCCN search to z39.50 and SRU sources + * Added DOI search to Pubmed source + * Updated CrossRef source to use new unixref format for + more data + * Improved loading performance to delay loading linked images + as long as possible + * Updated Delicious Library importer to look for cover images + * Updated BoardGameGeek source to grab cover image + * Fixed bug that prevented bibtex from working for external + application sources + * Changed “ISBN not found” dialog to only appear when + searching for multiple values + * Fixed bug with SRU format not getting remembered in + config dialog + * Fixed bug with entries with multiple titles not getting + linked correctly in HTML export + * Fixed bug with some free-form date fields getting formatted + incorectly into empty strings + * Fixed bibtex import for keywords field + +------------------------------------------------------------------- +Wed Feb 6 10:09:06 CET 2008 - pgajdos@suse.cz + +- updated to version 1.3: + * Added board game collection, and data source for BoardGameGeek, + using patch from Steve Beattie (requires ruby). + * Added data source for using any GCstar plugin + * Added importers for Griffith, Referencer and Delicious Library + * Added importer for PDF files, using the exempi and poppler + libraries (optional) + * Added drag & drop for importing PDF, bibtex, and RIS files + * Added DOI field and searching crossref.org, citebase.org, Bibsonomy, + and arxiv.org + * Added command for merging multiple entries, based on a patch + from Cyril Dangerville + * Updated CSV importer, IMDb fetcher, and Spanish Ministry of + Culture script + * Added option to save image files in a local directory relative + to data file + * Added option to save a link to an image file instead of copying it + * Extended the DCOP interface to allow more scripting, including adding + and modifying entries + * Added Ukrainian translation, from Serhij Dubyk +- created -lang package + +------------------------------------------------------------------- +Wed Sep 26 17:14:27 CEST 2007 - stbinner@suse.de + +- update to version 1.2.14: + * Improved entry updating to work with all collection types. + * Added MARCXML to allowed SRU search formats. + * Fixed bug with MARC stylesheets to work better with embedded + XML records. + * Fixed bug with z39.50 search that hid some results. + * Updated JavaScript and CSS in HTML export. + * Updated isbndb.com search, also allows comic book searches. + * Updated Amazon.com search to allow comic books. + * Updated GCstar importer for new GCstar document format. + * Updated allocine.fr script to version 0.4 + * Updated Spanish Ministry of Culture search script + * Fixed problem with settings not being saved on Fedora. + +------------------------------------------------------------------- +Sun Jul 29 10:43:54 CEST 2007 - stbinner@suse.de + +- update to version 1.2.13: bugfixes and + * Added spell-checking for text fields. + * Added importer for GCstar data files. + * Added compatibility with yaz3. + * Added Copac and National Library of Lithuania to z39.50 server list + +------------------------------------------------------------------- +Thu Jul 5 12:13:32 CEST 2007 - stbinner@suse.de + +- update to version 1.2.12: + * Fixed potential recursion bug for dependent fields. + * Fixed bug that didn't write image size options when printing. + * Added Turkish translation, thanks to Ali Isingor and Kunter Kutlu. + * Added '\%' to bibtex translation table for comment escaping. + * Bumped automake requirement to version 1.8 or later for macro to work. + * Fixed HTML export to not rewrite file location for files + referenced in the XSL file which don't exist. + * Fixed Column View report to sort numerically when needed. + * Fixed Date fields to suppress empty date values. + * Fixed Date comparisons to work for single digits, patch + from Jake Maciejewski. + * Fixed Fields Dialog to show warnings when clicking Ok. + * Changed Quick Filter to split words on whitespace. + * Fixed bug with z39.50 search freezing intermittently. + +------------------------------------------------------------------- +Fri Jun 8 22:42:00 CEST 2007 - stbinner@suse.de + +- move kde_post_install + +------------------------------------------------------------------- +Fri Jun 1 16:53:43 CEST 2007 - dmueller@suse.de + +- fix build for older distributions + +------------------------------------------------------------------- +Sat May 12 16:45:29 CEST 2007 - dmueller@suse.de + +- build against yaz 3.0.2 + +------------------------------------------------------------------- +Wed May 9 10:46:11 CEST 2007 - stbinner@suse.de + +- update to version 1.2.11: + * Improved save time by caching image info on load. + * Fixed crashing bug for OpenOffice.org connection. + * Fixed bug that could lose images when loading from XML. + * Fixed sorting for Dependent fields to match on subfields. + * Updated IMDb search. + * Fixed CDDB lookup for OpenBSD, patch from Marc Espie. + +------------------------------------------------------------------- +Tue Apr 10 08:27:47 CEST 2007 - stbinner@suse.de + +- update to version 1.2.10: + * Fixed crashing bug when undoing collection import. + * Fixed hanging bug when stopping a z39.50 search. + * Fixed bug that hid some Amazon search results. + * Fixed ONIX export to validate. + * Fixed Alexandria export and cover image import. + * Updated Amazon search for newer API. + * Fixed error handling for ISBN-13 searches. + * Updated ibs.it searching. + * Fixed searching to properly replace all HTML entities. + * Added Blu-ray and HD DVD to video media. + * Improved collection merging. + +------------------------------------------------------------------- +Mon Mar 5 16:18:30 CET 2007 - stbinner@suse.de + +- update to version 1.2.9: + * Updated IMDb search. + * Fixed sorting for entries with rating = 10. + * Fixed bug with formatting dependent fields. + * Fixed bug with adding spaces following a comma in the editor. + * Changed MODS import to allow any result with typeOfResult = text. + * Fixed several bugs with i18n issues. +------------------------------------------------------------------- +Tue Feb 6 10:30:23 CET 2007 - stbinner@suse.de + +- fix build on < 10.1 + +------------------------------------------------------------------- +Mon Feb 5 16:24:04 CET 2007 - stbinner@suse.de + +- update to version 1.2.8: + * Fixed bug with secondary and tertiary sorting. + * Fixed bug with some z39.50 search results not showing up. + * Fixed bug with comparing relative URLs when importing a file catalog. + * Fixed “ISBN Not Found” dialog to have selectable text. + * Fixed “busy cursor doesn’t go away” in the download stuff dialog. + * Fixed the newstuff download to uninstall cleanly. + * Fixed compilation error in yaz include, patch from Markus Brueffer. + * Updated CDDB import to grab extd data as comments, and category + as keyword. + * Updated audio file importer to take disc number into account for + mp3, ogg, and flac files. + * Changed IMDB rating to allow float values. + +------------------------------------------------------------------- +Mon Dec 11 12:32:58 CET 2006 - stbinner@suse.de + +- update to version 1.2.7: + * Fixed bug that could cause images to be lost when loading from + data file. + * Fixed bug with saving URL values without the protocol. + * Fixed bug with editing ISBN-13 values. + * Updated sorting to take title articles into account. + * Updated Amazon.com search to allow ISBN-13 values. + * Changed file listing import to match on URL only. + * Improved performance when copying or deleting multiple entries + at once. + +------------------------------------------------------------------- +Mon Dec 4 16:05:54 CET 2006 - stbinner@suse.de + +- update to version 1.2.6: + * Fixed intermittent crashing bug when doing updates. + * Improved update matching for some types of entries. + * Improved IMDB cast search for TV shows. + +- update to version 1.2.5 + * Improved performance for loading large (> 10Mb) images. + * Fixed another bug with over-writing images on entry update. + * Fixed crashing bug for some Amazon and Yahoo searches. + * Updated yahoo audio search webservice url. + * Updated allocine script. + +------------------------------------------------------------------- +Sun Oct 15 09:07:53 CEST 2006 - stbinner@suse.de + +- update to version 1.2.4: + * improved performance on loading and unloading collection files + * fixed bug with Internet search dialog showing data sources for + all types + * fixed bug with overwriting images when updating entries + * Updated allocine.fr script + +------------------------------------------------------------------- +Thu Oct 5 17:13:54 CEST 2006 - wstephenson@suse.de + +- Fix off by one bug in file listing importer (#207685) + +------------------------------------------------------------------- +Tue Sep 26 12:45:17 CEST 2006 - stbinner@suse.de + +- update to version 1.2.3: + * Fixed the HTML export to properly copy included files and use + relative links. + * Added a button to the Internet search to fetch additional + results for some data sources (Amazon, IMDb, z39.50). + +------------------------------------------------------------------- +Fri Sep 8 09:44:49 CEST 2006 - stbinner@suse.de + +- update to version 1.2.2: + * Fixed a bug that caused the wrong temporary directory to be + used for images, which could hide or lose them + +------------------------------------------------------------------- +Thu Sep 7 15:09:32 CEST 2006 - stbinner@suse.de + +- update to version 1.2.1: + * Fixed CDDB bug that read everything as Pink Floyd :). + * Improved image cache performance a bit more, and fixed another + memory leak. + * Fixed a crashing bug in the file listing importer. + * Fixed a rendering bug with the image gradients used in the + entry templates. + * Fixed a bug with some fields not showing auto-completion in + the filter dialog. + * Fixed CDDB cache importer to use UTF-8, as done in libkcddb. + * Changed bibtex exporter to add braces or quotations around + \url{...} values. + +------------------------------------------------------------------- +Fri Sep 1 09:22:27 CEST 2006 - stbinner@suse.de + +- update to version 1.2: + * Added dialog for downloading new entry templates from + kde-files.org + * Added dialog for downloading new scripts (requires gpg) + * Added config options for fonts and colors for entry templates + * Added preset z39.50 server list + * Added auto-completion to filter dialog + * Added scripts for allocine.fr, Spanish Ministry of Culture and + Dark Horse Comics, from Mathias Monnerville + * Added ‘next’ and ‘prev’ buttons to entry editor. + * Added isbndb.com as a data source + * Added Ant Movie Catalog file importer + * Added dialog to choose from multiple CDDB search responses + * Fields can have default values + * Data sources can be set to overwrite existing data when + updating entries. + * Added parser for unmodified CueCat bar code scanner + +------------------------------------------------------------------- +Thu Jun 15 11:30:03 CEST 2006 - dmueller@suse.de + +- build parallel + +------------------------------------------------------------------- +Thu Jun 1 20:54:46 CEST 2006 - stbinner@suse.de + +- fix build for < 10.0 + +------------------------------------------------------------------- +Tue May 30 07:17:46 CEST 2006 - adrian@suse.de + +- fix build for < 10.1 + +------------------------------------------------------------------- +Fri May 12 14:12:36 CEST 2006 - stbinner@suse.de + +- Update to version 1.1.6 + * Fixed bug that prevented images from being saved in certain + situations. + * Fixed bug that caused a crash when importing some RIS files. + * Added french documentation, from Regis Boudin. + +------------------------------------------------------------------- +Thu Apr 20 09:34:55 CEST 2006 - stbinner@suse.de + +- Update to version 1.1.5 + * Fixed bug with writing too many temporary image files. + * Fixed bug in multiple ISBN search for z39.50. + * Fixed "disappearing paragraph" bug in Fancy template. + * Fixed name ordering for IBS searching. + * Added "Xbox 360" to Amazon.com game searching. + * Fixed crashing bug when deleting and re-adding fields by same + name. + * Fixed HTML decoding bug in IMDb plot summary. + * Fixed bug that re-created default fields when adding search + results. + * Updated Spanish translation. + * Changed CD-Text support to Linux-only, since it doesn't + actually work on other platforms. + +------------------------------------------------------------------- +Tue Apr 4 15:16:23 CEST 2006 - stbinner@suse.de + +- Update to version 1.1.4 + * Fixed bug that prevented XSLT files with spaces or other + non-encoded characters from being opened. + * Fixed bug with incorrectly setting document as modified when + loading images. + * Fixed bug with loading loans for entries with non-consecutive + ids. + * Fixed bug that caused crashes when changing grouping options + for some fields. + * Fixed bug that prevented files saved with versions < 0.8 from + being opened. + * Fixed image fetching for IBS. + * Fixed compilation for OpenOffice.org SDK 2.0.2. + * Updated French translation. + +------------------------------------------------------------------- +Tue Mar 28 15:54:44 CEST 2006 - stbinner@suse.de + +- Update to version 1.1.3 + * Fixed bug that prevented the comic book template from showing + up in config options or importers. + * Fixed z39.50 search to use same character encoding for query + as for search results. + * Changed ISO 5426 converter to treat umlaut and diaeresis + identically. + * Fixed intermittent crash when exporting HTML and overwriting + files. + * Fixed bug with empty groups showing up after deleting entries. + * Updated ru translation. + +------------------------------------------------------------------- +Sun Feb 19 13:19:43 CET 2006 - stbinner@suse.de + +- Update to version 1.1.1 + +------------------------------------------------------------------- +Thu Feb 9 10:35:59 CET 2006 - stbinner@suse.de + +- Update to version 1.1 + +------------------------------------------------------------------- +Wed Jan 25 21:33:38 CET 2006 - mls@suse.de + +- converted neededforbuild to BuildRequires + +------------------------------------------------------------------- +Thu Dec 1 11:49:54 CET 2005 - stbinner@suse.de + +- Update to version 1.0.3 + +------------------------------------------------------------------- +Wed Oct 19 16:10:55 CEST 2005 - kukuk@suse.de + +- Remove unsermake +- Update to version 1.0.2 + +------------------------------------------------------------------- +Tue Oct 18 12:44:51 CEST 2005 - stbinner@suse.de + +- remove extra qualification for gcc 4.1 compilation + +------------------------------------------------------------------- +Wed Jul 20 16:35:33 CEST 2005 - kukuk@suse.de + +- Update to version 0.13.8 + +------------------------------------------------------------------- +Wed May 25 11:18:25 CEST 2005 - adrian@suse.de + +- update to version 0.13.6 + +------------------------------------------------------------------- +Tue Apr 19 11:58:09 CEST 2005 - adrian@suse.de + +- fix build + +------------------------------------------------------------------- +Mon Feb 28 08:16:51 CET 2005 - adrian@suse.de + +- update to version 0.13.4 + * bugfixes and translation updates + +------------------------------------------------------------------- +Thu Feb 17 09:32:06 CET 2005 - adrian@suse.de + +- desktop file got moved to xdg dir + +------------------------------------------------------------------- +Mon Jan 3 17:26:06 CET 2005 - coolo@suse.de + +- fix build + +------------------------------------------------------------------- +Tue Dec 21 17:13:08 CET 2004 - kukuk@suse.de + +- Update to 0.13.1 + +------------------------------------------------------------------- +Wed Dec 8 02:10:59 CET 2004 - ro@suse.de + +- hack to build on x86_64 + +------------------------------------------------------------------- +Mon Dec 6 10:46:57 CET 2004 - kukuk@suse.de + +- Update to version 0.13 +- Add yaz support + +------------------------------------------------------------------- +Tue Nov 16 14:42:03 CET 2004 - adrian@suse.de + +- rename package from bookcase to tellico +- update to version 0.12 +- add packages to nfb to support audio CDs + +------------------------------------------------------------------- +Mon Sep 6 14:22:07 CEST 2004 - kukuk@suse.de + +- Update to version 0.11 + +------------------------------------------------------------------- +Sun Jun 13 21:11:22 CEST 2004 - kukuk@suse.de + +- Initial version + diff --git a/tellico.spec b/tellico.spec new file mode 100644 index 0000000..9695599 --- /dev/null +++ b/tellico.spec @@ -0,0 +1,121 @@ +# +# spec file for package tellico +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%define kf6_version 6.0.0 +%define qt6_version 6.4.0 + +Name: tellico +Version: 4.0 +Release: 0 +Summary: A Collection Manager +License: GPL-2.0-or-later +URL: https://tellico-project.org/ +Source0: https://tellico-project.org/files/%{name}-%{version}.tar.xz +BuildRequires: fdupes +BuildRequires: kf6-extra-cmake-modules >= %{kf6_version} +BuildRequires: libcsv-devel >= 3.0 +BuildRequires: pkgconfig +BuildRequires: cmake(KCddb6) +BuildRequires: cmake(KF6Archive) >= %{kf6_version} +BuildRequires: cmake(KF6Codecs) >= %{kf6_version} +BuildRequires: cmake(KF6Completion) >= %{kf6_version} +BuildRequires: cmake(KF6Config) >= %{kf6_version} +BuildRequires: cmake(KF6ConfigWidgets) >= %{kf6_version} +BuildRequires: cmake(KF6CoreAddons) >= %{kf6_version} +BuildRequires: cmake(KF6Crash) >= %{kf6_version} +BuildRequires: cmake(KF6DocTools) >= %{kf6_version} +BuildRequires: cmake(KF6FileMetaData) >= %{kf6_version} +BuildRequires: cmake(KF6GuiAddons) >= %{kf6_version} +BuildRequires: cmake(KF6I18n) >= %{kf6_version} +BuildRequires: cmake(KF6IconThemes) >= %{kf6_version} +BuildRequires: cmake(KF6ItemModels) >= %{kf6_version} +BuildRequires: cmake(KF6JobWidgets) >= %{kf6_version} +BuildRequires: cmake(KF6KIO) >= %{kf6_version} +BuildRequires: cmake(KF6NewStuff) >= %{kf6_version} +BuildRequires: cmake(KF6Solid) >= %{kf6_version} +BuildRequires: cmake(KF6Sonnet) >= %{kf6_version} +BuildRequires: cmake(KF6TextWidgets) >= %{kf6_version} +BuildRequires: cmake(KF6WidgetsAddons) >= %{kf6_version} +BuildRequires: cmake(KF6XmlGui) >= %{kf6_version} +BuildRequires: cmake(KSaneWidgets6) +BuildRequires: cmake(Qt6Charts) >= %{qt6_version} +BuildRequires: cmake(Qt6Core) >= %{qt6_version} +BuildRequires: cmake(Qt6DBus) >= %{qt6_version} +BuildRequires: cmake(Qt6Network) >= %{qt6_version} +BuildRequires: cmake(Qt6PrintSupport) >= %{qt6_version} +BuildRequires: cmake(Qt6Test) >= %{qt6_version} +BuildRequires: cmake(Qt6WebEngineWidgets) >= %{qt6_version} +BuildRequires: cmake(Qt6Widgets) >= %{qt6_version} +BuildRequires: cmake(Qt6Xml) >= %{qt6_version} +BuildRequires: pkgconfig(exempi-2.0) +BuildRequires: pkgconfig(libcdio) +BuildRequires: pkgconfig(libv4l2) +BuildRequires: pkgconfig(libxml-2.0) +BuildRequires: pkgconfig(libxslt) +BuildRequires: pkgconfig(poppler-qt6) +BuildRequires: pkgconfig(taglib) +BuildRequires: pkgconfig(yaz) >= 2.0 +# Needs QtWebEngine +ExclusiveArch: x86_64 aarch64 riscv64 + +%description +Tellico is an application for organizing your collections. It provides +default templates for books, bibliographies, videos, music, video games, coins, +stamps, trading cards, comic books, and wines. + +%lang_package + +%prep +%autosetup -p1 + +# E: env-script-interpreter +sed -i 's#env perl$#perl#' src/config/*-update.pl +sed -i 's#env python$#python3#' src/fetch/scripts/*.py + +%build +%cmake_kf6 -DBUILD_WITH_QT6:BOOL=TRUE -DENABLE_WEBCAM:BOOL=TRUE + +%kf6_build + +%install +%kf6_install + +%find_lang tellico tellico.lang --with-html + +%fdupes %{buildroot} + +%files +%license COPYING +%doc AUTHORS ChangeLog README.md +%doc %lang(en) %{_kf6_htmldir}/en/tellico/ +%config %{_kf6_configdir}/tellico* +%{_kf6_applicationsdir}/org.kde.tellico.desktop +%{_kf6_appstreamdir}/org.kde.tellico.appdata.xml +%{_kf6_bindir}/tellico +%{_kf6_configkcfgdir}/tellico_config.kcfg +%{_kf6_iconsdir}/hicolor/*/apps/tellico.png +%{_kf6_iconsdir}/hicolor/*/mimetypes/application-x-tellico.png +%{_kf6_knsrcfilesdir}/tellico-template.knsrc +%{_kf6_sharedir}/kconf_update/tellico* +%{_kf6_sharedir}/mime/packages/tellico.xml +%{_kf6_sharedir}/tellico/ + +%files lang -f %{name}.lang +%exclude %{_kf6_htmldir}/en/tellico/ + +%changelog