Damien Elmes
3339c404b4
update searching code to use decks table
2020-05-12 21:13:33 +10:00
Damien Elmes
f592672fa9
add separate decks table, and start on moving deck handling to Rust
...
The Python tests are passing, but there are still a number of issues
to work through, and the table/protobuf schema is not yet finalized.
2020-05-12 21:13:33 +10:00
Damien Elmes
83bcb084fe
template changes and card generation
...
Cloze cards are not yet supported, missing decks are not handled,
and more testing is still required.
2020-05-12 21:13:33 +10:00
Damien Elmes
a226f70733
cache notetypes
2020-05-12 21:13:33 +10:00
Damien Elmes
9080f602b1
native struct for NoteField
...
ord is made optional so we can keep track of changes in the future
2020-05-12 21:13:33 +10:00
Damien Elmes
8cfb1fad44
use native struct for NoteType
2020-05-12 21:13:33 +10:00
Damien Elmes
32bc1e88eb
migrate the schema11 usages to new structs/sql queries
2020-05-12 21:13:33 +10:00
Damien Elmes
e2b978e7cb
move schema11 note type code into separate file
2020-05-12 21:13:33 +10:00
Damien Elmes
805a3a710e
split note types into separate tables
...
- store the config in protobuf instead of json
- still loading+saving in bulk for now
- code using the schema11 structs needs to be migrated
2020-05-12 21:13:33 +10:00
Damien Elmes
1de8d4baaf
fix a unit test
2020-05-08 17:27:41 +10:00
Damien Elmes
3f534b8c86
fix dupe search with included formatting
...
https://anki.tenderapp.com/discussions/ankidesktop/41286-2125-doesnt-show-duplicates
2020-05-08 15:26:45 +10:00
Damien Elmes
8dfd362fed
support globbing chars inside word boundary search
2020-04-25 09:43:08 +10:00
Damien Elmes
4c7210b430
(de)serialize decks in backend
2020-04-09 12:41:59 +10:00
Damien Elmes
36ec7830a9
load/save note types in backend
...
This allows us to normalize bad data, and is the first step towards
splitting note types into separate tables.
2020-04-08 10:05:07 +10:00
Damien Elmes
676f4e74a8
store config in separate DB table
...
- mtime is tracked on each key individually, which will allow
merging of config changes when syncing in the future
- added col.(get|set|remove)_config()
- in order to support existing code that was mutating returned
values (eg col.conf["something"]["another"] = 5), the returned list/dict
will be automatically wrapped so that when the value is dropped, it
will save the mutated item back to the DB if it's changed. Code that
is fetching lists/dicts from the config like so:
col.conf["foo"]["bar"] = baz
col.setMod()
will continue to work in most case, but should be gradually updated to:
conf = col.get_config("foo")
conf["bar"] = baz
col.set_config("foo", conf)
2020-04-06 15:39:47 +10:00
Damien Elmes
0750ad5c62
fix duplicates search
2020-04-04 17:38:35 +10:00
Damien Elmes
ac4284b2de
update tag handling
...
- tag list stored in a separate DB table
- non-wildcard searches now do full unicode case folding
(eg tag:masse matches 'Maße')
- wildcard matches do simple unicode case folding
- some functions haven't been updated yet, so ascii folding will
continue to be used in some operations
2020-04-03 19:34:46 +10:00
Damien Elmes
70a1992f70
fix is:due search
2020-04-02 09:33:05 +10:00
Damien Elmes
d1ecf33c72
cache timing_today in collection, update it when cutover reached
2020-03-29 12:26:24 +10:00
Damien Elmes
fdeca610b0
drop separate RequestContext/StorageContext
2020-03-29 12:12:35 +10:00
Damien Elmes
f52e775354
NoteTypeID
2020-03-26 15:00:24 +10:00
Damien Elmes
9696e959be
increase the rated search cap to 365, and allow searches for ease 0
...
An add-on appears to use ease 0 when rescheduling cards, and it may
make sense for Anki to do the same in the future as well.
2020-03-21 16:05:17 +10:00
Damien Elmes
51a379de23
add search that ignores combining chars
...
On a test of a ~40k card collection, the 'ignore accents' add-on
takes about 1150ms, and this code takes about 70ms.
2020-03-21 15:15:59 +10:00
Damien Elmes
f0ed34d79b
support regexp search in single field
2020-03-21 13:06:46 +10:00
Damien Elmes
97577dbc16
support wildcard in field*:val search
2020-03-21 12:45:25 +10:00
Damien Elmes
d1ebdbdcce
support regex searches
2020-03-21 12:00:48 +10:00
Damien Elmes
aee64016ac
fix formatting and unit test
2020-03-21 08:17:24 +10:00
Damien Elmes
3a4146560c
handle escaped tag searches and tag:* special case
2020-03-21 08:09:28 +10:00
Damien Elmes
124357bd82
handle * in single-field search
2020-03-21 07:56:32 +10:00
Damien Elmes
949252d438
fix ease search
2020-03-21 07:56:09 +10:00
Damien Elmes
d94effcdc7
fix is:new/is:review
2020-03-20 21:15:23 +10:00
Damien Elmes
79697746a4
added needs to use milliseconds
2020-03-20 21:15:23 +10:00
Damien Elmes
224bad2566
handle empty searches and leading/trailing whitespace
2020-03-20 21:15:23 +10:00
Damien Elmes
67cb27bada
add remaining tests and fix some clippy lints
2020-03-20 21:15:23 +10:00
Damien Elmes
8c158a3897
fix rated and state searches
2020-03-20 21:15:23 +10:00
Damien Elmes
37ad664afc
fix tags, more tests
2020-03-20 21:15:23 +10:00
Damien Elmes
fa654a0e22
fix cards
2020-03-20 21:15:23 +10:00
Damien Elmes
425a9d04ca
fix decks
2020-03-20 21:15:23 +10:00
Damien Elmes
2693e142aa
fix added
2020-03-20 21:15:23 +10:00
Damien Elmes
5df04b161c
fix qualified search
2020-03-20 21:15:23 +10:00
Damien Elmes
b70668d31c
avoid extra sql binding in unqualified search
2020-03-20 21:15:23 +10:00
Damien Elmes
1f9e8e388a
start on search tests
2020-03-20 21:15:23 +10:00
Damien Elmes
bca5f2ddff
prototype of integration
...
no ordering yet, and no tests
2020-03-20 21:15:23 +10:00