From 77765d4896156972cf349147a59f2a39397db569 Mon Sep 17 00:00:00 2001 From: RumovZ Date: Thu, 28 Jan 2021 11:19:07 +0100 Subject: [PATCH] Replace remaining literal searches in aqt --- qt/aqt/customstudy.py | 20 +++++++++++++------- qt/aqt/dyndeckconf.py | 10 +++++++--- qt/aqt/main.py | 2 +- qt/aqt/overview.py | 4 ++-- 4 files changed, 23 insertions(+), 13 deletions(-) diff --git a/qt/aqt/customstudy.py b/qt/aqt/customstudy.py index 416f01bfe..8113438fd 100644 --- a/qt/aqt/customstudy.py +++ b/qt/aqt/customstudy.py @@ -2,6 +2,7 @@ # -*- coding: utf-8 -*- # License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html import aqt +from anki.collection import NamedFilter from anki.consts import * from aqt.qt import * from aqt.utils import TR, disable_help_button, showInfo, showWarning, tr @@ -159,26 +160,29 @@ class CustomStudy(QDialog): dyn = self.mw.col.decks.get(did) # and then set various options if i == RADIO_FORGOT: - dyn["terms"][0] = ["rated:%d:1" % spin, DYN_MAX_SIZE, DYN_RANDOM] + search = self.mw.col.search_string(forgot_in=spin) + dyn["terms"][0] = [search, DYN_MAX_SIZE, DYN_RANDOM] dyn["resched"] = False elif i == RADIO_AHEAD: - dyn["terms"][0] = ["prop:due<=%d" % spin, DYN_MAX_SIZE, DYN_DUE] + search = self.mw.col.search_string(due_in=spin) + dyn["terms"][0] = [search, DYN_MAX_SIZE, DYN_DUE] dyn["resched"] = True elif i == RADIO_PREVIEW: - dyn["terms"][0] = ["is:new added:%s" % spin, DYN_MAX_SIZE, DYN_OLDEST] + search = self.mw.col.search_string(name=NamedFilter.NEW, added_in=spin) + dyn["terms"][0] = [search, DYN_MAX_SIZE, DYN_OLDEST] dyn["resched"] = False elif i == RADIO_CRAM: type = f.cardType.currentRow() if type == TYPE_NEW: - terms = "is:new " + terms = self.mw.col.search_string(name=NamedFilter.NEW) ord = DYN_ADDED dyn["resched"] = True elif type == TYPE_DUE: - terms = "is:due " + terms = self.mw.col.search_string(name=NamedFilter.DUE) ord = DYN_DUE dyn["resched"] = True elif type == TYPE_REVIEW: - terms = "-is:new " + terms = self.mw.col.search_string(negate=True, name=NamedFilter.NEW) ord = DYN_RANDOM dyn["resched"] = True else: @@ -187,7 +191,9 @@ class CustomStudy(QDialog): dyn["resched"] = False dyn["terms"][0] = [(terms + tags).strip(), spin, ord] # add deck limit - dyn["terms"][0][0] = 'deck:"%s" %s ' % (self.deck["name"], dyn["terms"][0][0]) + dyn["terms"][0][0] = self.mw.col.search_string( + deck=self.deck["name"], searches=[dyn["terms"][0][0]] + ) self.mw.col.decks.save(dyn) # generate cards self.created_custom_study = True diff --git a/qt/aqt/dyndeckconf.py b/qt/aqt/dyndeckconf.py index 34e68a395..9ae506431 100644 --- a/qt/aqt/dyndeckconf.py +++ b/qt/aqt/dyndeckconf.py @@ -4,8 +4,8 @@ from typing import List, Optional import aqt +from anki.collection import InvalidInput, NamedFilter from anki.lang import without_unicode_isolation -from anki.rsbackend import InvalidInput from aqt.qt import * from aqt.utils import ( TR, @@ -47,8 +47,12 @@ class DeckConf(QDialog): self.initialSetup() self.loadConf() if search: - self.form.search.setText(search + " is:due") - self.form.search_2.setText(search + " is:new") + search = self.mw.col.search_string(searches=[search], name=NamedFilter.DUE) + self.form.search.setText(search) + search_2 = self.mw.col.search_string( + searches=[search], name=NamedFilter.NEW + ) + self.form.search_2.setText(search_2) self.form.search.selectAll() if self.mw.col.schedVer() == 1: diff --git a/qt/aqt/main.py b/qt/aqt/main.py index 8812a4cde..2f43864b6 100644 --- a/qt/aqt/main.py +++ b/qt/aqt/main.py @@ -1141,7 +1141,7 @@ title="%s" %s>%s""" % ( deck = self.col.decks.current() if not search: if not deck["dyn"]: - search = 'deck:"%s" ' % deck["name"] + search = self.col.search_string(deck=deck["name"]) while self.col.decks.id_for_name( without_unicode_isolation(tr(TR.QT_MISC_FILTERED_DECK, val=n)) ): diff --git a/qt/aqt/overview.py b/qt/aqt/overview.py index 52c3ad52b..7f0eef43e 100644 --- a/qt/aqt/overview.py +++ b/qt/aqt/overview.py @@ -71,8 +71,8 @@ class Overview: elif url == "opts": self.mw.onDeckConf() elif url == "cram": - deck = self.mw.col.decks.current() - self.mw.onCram("'deck:%s'" % deck["name"]) + deck = self.mw.col.decks.current()["name"] + self.mw.onCram(self.mw.col.search_string(deck=deck)) elif url == "refresh": self.mw.col.sched.rebuild_filtered_deck(self.mw.col.decks.selected()) self.mw.reset()