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
333d0735ff
preserve mtime/usn when syncing deck config, and add snake_case names
2020-04-03 19:34:46 +10:00
Damien Elmes
d5f6d8b476
set col mod explicitly in decks.select()
2020-04-03 19:34:46 +10:00
Damien Elmes
ab6eeb5882
ensure pending deck/tag/note type changes flushed before searching
2020-04-03 19:34:46 +10:00
Damien Elmes
03f9be21e9
return the added card id instead of mutating the backend card object
2020-04-02 12:09:46 +10:00
Damien Elmes
431683aa5d
make sure None is returned in no-such-card case
2020-04-02 11:29:40 +10:00
Damien Elmes
c57801c168
tolerate string values in deck["conf"]
2020-04-01 19:36:40 +10:00
Damien Elmes
d342955830
remove defaultConf
2020-04-01 17:36:46 +10:00
Damien Elmes
c9da4bc1a6
allow aborting a media sync while http req in flight
...
The progress handling code needs a rethink, as we now have two separate
ways to flag that the media sync should abort. In the future, it may
make sense to switch to polling the backend for progress, instead of
passing a callback in.
2020-04-01 09:49:25 +10:00
Damien Elmes
fa2965d39a
add a temporary cache to bring deck list performance back
2020-03-30 20:27:53 +10:00
Damien Elmes
35c03af520
split deck config into separate SQL table
...
- on collection load, the schema is upgraded to 12
- on collection close, the changes are reversed so older clients
can continue to open the collection
- in the future, we could potentially skip the reversal except
when exporting/doing a full sync
- the same approach should work for decks, note types and tags in the
future too
- the deck list code needs updating to cache the deck confs for the
life of the call
2020-03-30 20:01:16 +10:00
Damien Elmes
004cc2b5f8
move deck conf handling to backend
2020-03-30 14:39:46 +10:00
Damien Elmes
84b84ae31c
use add_card()
2020-03-27 15:11:07 +10:00
Damien Elmes
7f16f436c3
handle mtime/usn bump in backend, and tweak integer sizes
2020-03-26 20:55:04 +10:00
Damien Elmes
13c7c82ae3
fix two cases where a float was being written into due
2020-03-26 19:05:18 +10:00
Damien Elmes
47504245dc
update_card()
2020-03-26 18:54:20 +10:00
Damien Elmes
1acfe7d3cc
tweak code for mypy
2020-03-26 17:47:53 +10:00
Damien Elmes
7ddaf93f7a
use backend to get card
2020-03-26 17:47:43 +10:00
Damien Elmes
8c80f96314
high due numbers shouldn't force a full sync
2020-03-26 09:09:11 +10:00
Damien Elmes
ea3c6cad42
don't error when -l passes in language without _
2020-03-25 08:53:31 +10:00
Damien Elmes
e29d380d4c
fix sync getting stuck in a loop when changes is a multiple of 250
2020-03-24 19:30:35 +10:00
Damien Elmes
5c5d1c2af5
remove : check from dbproxy
2020-03-24 10:37:12 +10:00
Damien Elmes
11a4d582b4
convert asc to desc instead of appending desc to the end of the order
...
as the latter doesn't work when sorting on more than one column
https://anki.tenderapp.com/discussions/beta-testing/1868-anki-2124-beta#comment_48174812
2020-03-23 19:53:57 +10:00
Damien Elmes
966eb666f0
fix v2 timing being returned for v1 users
2020-03-23 13:53:09 +10:00
Damien Elmes
4e2e0d1b84
fix setting of wal
2020-03-23 13:52:57 +10:00
Damien Elmes
cd9ceebd59
simplify how the local offset is passed around
...
- no need to store it in conf
- move local_minutes_west() call to collection
2020-03-23 13:52:52 +10:00
Damien Elmes
dc8cf9d554
release GIL during collection open/close
2020-03-23 09:27:42 +10:00
Damien Elmes
75b7ebb156
add back new_timezone_enabled(), as it's used in the prefs screen
2020-03-23 07:40:50 +10:00
Damien Elmes
427bf268fc
apply same list->tuple fix to v1 sched
2020-03-22 21:56:02 +10:00
zjosua
0b94eee97e
Fill _lrnQueue with tuples, not lists
2020-03-22 11:49:40 +01:00
Damien Elmes
6c6817563e
fix sync error introduced by 69d8cdd9ed
2020-03-22 17:32:34 +10:00
Damien Elmes
69d8cdd9ed
use backend for v1 and v2 cutoff calculations
...
this should also fix the CI failures, which were happening because
the datetime module wasn't matching the shifted time.time()
2020-03-22 14:28:26 +10:00
Damien Elmes
f28e57a367
add enum for controlling sort order
...
eg col.find_cards("", order=BuiltinSortKind.CARD_DUE)
2020-03-22 12:59:24 +10:00
Damien Elmes
9dda5cf6ca
fall back on stock json if orjson unavailable
2020-03-21 21:24:21 +10:00
Damien Elmes
9afbcd4178
remove old finder code; add search hooks to browser & remove old one
2020-03-21 16:38:46 +10:00
Damien Elmes
a5787781d7
add note searching
2020-03-21 09:00:05 +10:00
Damien Elmes
5debd3e0f8
add the ability to provide a custom sort order; use backend for find
2020-03-21 07:55:21 +10:00
Damien Elmes
bca5f2ddff
prototype of integration
...
no ordering yet, and no tests
2020-03-20 21:15:23 +10:00
Damien Elmes
d7daa63dbd
make sure we set db to None so we can tell when we've closed the DB
2020-03-20 21:15:23 +10:00
Damien Elmes
ba17567617
drop the separate i18n backend
2020-03-20 21:15:23 +10:00
Damien Elmes
874bc085fe
support opening and closing the DB while keeping backend alive
...
This is safer than just dropping the backend, as .close() will
block if something else is holding the mutex. Also means we can
drop the extra I18nBackend code.
Media syncing still needs fixing.
2020-03-20 21:15:23 +10:00
Damien Elmes
d0d6aa1433
drop usage of flushSched()
2020-03-20 21:15:23 +10:00
Damien Elmes
7986a79530
remove db.close()
2020-03-20 21:15:23 +10:00
Damien Elmes
fa12213e98
move .reopen() to mw; fix exporting
2020-03-20 21:15:23 +10:00
Damien Elmes
0f38514ad7
drop the DB progress handler code
...
This code was an awful hack to provide some semblance of UI
responsiveness while executing DB statements on the main thread.
Instead, we can just run DB statements in a background thread now,
keeping the UI responsive.
2020-03-20 21:15:23 +10:00
Damien Elmes
90de4a267d
drop lock() and setAutocommit()
...
We no longer need to worry about pysqlite implicitly beginning
transactions, and can be more explicit about beginning/ending
transactions
save() now also has a trx argument controlling whether a
transaction should be started / left open
2020-03-20 21:15:23 +10:00
Damien Elmes
63e3357068
pass weakref in from storage to fix type checking/code completion
2020-03-20 21:15:23 +10:00
Damien Elmes
db1508e27c
support first_row_only
2020-03-20 21:15:23 +10:00
Damien Elmes
e14c5e4745
proper implementation of executemany(); drop executescript()
2020-03-20 21:15:23 +10:00
Damien Elmes
ae06b9e446
add Collection struct, and get media check working again
...
- media check no longer needs collection to be closed
- use savepoints for operations initiated by Rust, so they are
atomic without forcing a commit
2020-03-20 21:15:23 +10:00