From 1adc9952f4988bbc85f23a60636108a9cf861609 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Sat, 30 Jan 2021 11:10:26 +1000 Subject: [PATCH] simplify Dupe message and ditch helper function Calling code doesn't need to know about the existence of such helpers; it can just rely on code completion to discover the required arguments. --- pylib/anki/collection.py | 7 ------- qt/aqt/editor.py | 8 ++++++-- rslib/backend.proto | 8 ++++---- rslib/src/backend/mod.rs | 4 ++-- 4 files changed, 12 insertions(+), 15 deletions(-) diff --git a/pylib/anki/collection.py b/pylib/anki/collection.py index 6c3a1434a..d6d2525f3 100644 --- a/pylib/anki/collection.py +++ b/pylib/anki/collection.py @@ -784,13 +784,6 @@ table.review-log {{ {revlog_style} }} ) -def dupe_search_term(mid: int, text: str) -> SearchTerm: - """Helper function for building a DupeIn message.""" - - dupe_in = SearchTerm.DupeIn(mid=BackendNoteTypeID(ntid=mid), text=text) - return SearchTerm(dupe=dupe_in) - - def nid_search_term(nids: List[int]) -> SearchTerm: """Helper function for building a NoteIDs message.""" diff --git a/qt/aqt/editor.py b/qt/aqt/editor.py index 9899390c5..be48c8a24 100644 --- a/qt/aqt/editor.py +++ b/qt/aqt/editor.py @@ -20,8 +20,8 @@ from bs4 import BeautifulSoup import aqt import aqt.sound +from anki.backend_pb2 import SearchTerm from anki.cards import Card -from anki.collection import dupe_search_term from anki.hooks import runFilter from anki.httpclient import HttpClient from anki.notes import Note @@ -541,7 +541,11 @@ class Editor: def showDupes(self): self.mw.browser_search( - dupe_search_term(self.note.model()["id"], self.note.fields[0]) + SearchTerm( + dupe=SearchTerm.Dupe( + notetype_id=self.note.model()["id"], first_field=self.note.fields[0] + ) + ) ) def fieldsAreBlank(self, previousNote=None): diff --git a/rslib/backend.proto b/rslib/backend.proto index 658e2952c..70d8a9269 100644 --- a/rslib/backend.proto +++ b/rslib/backend.proto @@ -765,9 +765,9 @@ message BuiltinSearchOrder { } message SearchTerm { - message DupeIn { - NoteTypeID mid = 1; - string text = 2; + message Dupe { + int64 notetype_id = 1; + string first_field = 2; } enum Flag { WITHOUT = 0; @@ -803,7 +803,7 @@ message SearchTerm { string note = 3; uint32 template = 4; NoteIDs nids = 5; - DupeIn dupe = 6; + Dupe dupe = 6; string field_name = 7; Rated rated = 8; uint32 added_in_days = 9; diff --git a/rslib/src/backend/mod.rs b/rslib/src/backend/mod.rs index c86f57063..4936e0554 100644 --- a/rslib/src/backend/mod.rs +++ b/rslib/src/backend/mod.rs @@ -309,8 +309,8 @@ impl From for Node<'_> { } Filter::Nids(nids) => Node::Search(SearchNode::NoteIDs(nids.into_id_string().into())), Filter::Dupe(dupe) => Node::Search(SearchNode::Duplicates { - note_type_id: dupe.mid.unwrap_or(pb::NoteTypeId { ntid: 0 }).into(), - text: dupe.text.into(), + note_type_id: dupe.notetype_id.into(), + text: dupe.first_field.into(), }), Filter::FieldName(s) => Node::Search(SearchNode::SingleField { field: escape_anki_wildcards(&s).into_owned().into(),