Browse Source

Require torrent category creation to be explicit

adaptive-webui-19844
Thomas Piccirello 6 years ago
parent
commit
d89ef22d85
  1. 6
      src/base/bittorrent/torrenthandle.cpp
  2. 4
      src/webui/api/torrentscontroller.cpp

6
src/base/bittorrent/torrenthandle.cpp

@ -1214,10 +1214,8 @@ bool TorrentHandle::setCategory(const QString &category) @@ -1214,10 +1214,8 @@ bool TorrentHandle::setCategory(const QString &category)
{
if (m_category != category) {
if (!category.isEmpty()) {
if (!Session::isValidCategoryName(category)) return false;
if (!m_session->categories().contains(category))
if (!m_session->addCategory(category))
return false;
if (!Session::isValidCategoryName(category) || !m_session->categories().contains(category))
return false;
}
QString oldCategory = m_category;

4
src/webui/api/torrentscontroller.cpp

@ -811,6 +811,10 @@ void TorrentsController::setCategoryAction() @@ -811,6 +811,10 @@ void TorrentsController::setCategoryAction()
const QString category {params()["category"].trimmed()};
applyToTorrents(hashes, [category](BitTorrent::TorrentHandle *torrent)
{
auto *session = BitTorrent::Session::instance();
const QStringList categories = session->categories().keys();
if (!categories.contains(category) && !session->addCategory(category))
throw APIError(APIErrorType::Conflict, tr("Unable to create category"));
if (!torrent->setCategory(category))
throw APIError(APIErrorType::Conflict, tr("Incorrect category name"));
});

Loading…
Cancel
Save