Commit graph

31 commits

Author SHA1 Message Date
RumovZ
8348240f80 Factor out card importing 2022-04-10 10:36:42 +02:00
RumovZ
e1899152be Fix importing cards/revlog
Card ids are manually uniquified.
2022-04-10 09:22:41 +02:00
RumovZ
126a92c239 Handle card due dates and original due/did 2022-04-09 23:42:05 +02:00
RumovZ
a528106af0 Keep source ids of imported deck configs (or skip) 2022-04-09 15:52:23 +02:00
RumovZ
7798b78c7d Wrap apkg import in transaction 2022-04-09 15:35:16 +02:00
RumovZ
1ba5444d7d Make adding notetype with id undoable 2022-04-09 12:31:23 +02:00
RumovZ
2a15ba5404 Try to keep source ids of imported notes 2022-04-09 11:40:36 +02:00
RumovZ
5a76d2211a Keep source ids of imported revlog (or skip) 2022-04-09 10:17:28 +02:00
RumovZ
a0604a2e51 Keep source id of imported cards (or skip) 2022-04-09 09:49:36 +02:00
RumovZ
726438d1c5 Add roundtrip test for apkg (stub) 2022-04-08 22:09:45 +02:00
RumovZ
d6134748f2 Fix signature of import_apkg() 2022-04-08 18:57:01 +02:00
RumovZ
468c0286f9 Use dyn instead of generic for media_fn
Otherwise, would have to pass None with type annotation in the default
case.
2022-04-08 18:46:40 +02:00
RumovZ
08791e24fc Add import_cards(), import_revlog() 2022-04-08 18:12:37 +02:00
RumovZ
ffdd8b741e Add import_deck_configs() 2022-04-08 10:52:12 +02:00
RumovZ
5cf1705784 Add import_decks() 2022-04-08 10:34:49 +02:00
RumovZ
48bc6627b1 Note id, not guid of conflicting notes 2022-04-07 21:08:17 +02:00
RumovZ
94a6cdd6ed Add notes immediately instaed of preparing 2022-04-07 20:49:42 +02:00
RumovZ
b9c19273fc Move target_col into Context 2022-04-07 19:04:24 +02:00
RumovZ
9527322231 Add notetypes immediately instaed of preparing 2022-04-07 18:58:11 +02:00
RumovZ
7583a7e6b3 Prepare media based on checksums
- Ensure all existing media files are hashed.
- Hash incoming files during preparation to detect conflicts.
- Uniquify names of conflicting files with hash (not notetype id).
- Mark media files as used while importing notes.
- Finally copy used media.
2022-04-07 12:45:02 +02:00
RumovZ
a0085e7fd4 Add SafeMediaEntry for deserialized MediaEntries 2022-04-06 23:21:32 +02:00
RumovZ
efde7c7acc Refactor import-export/package
- Move media and meta code into appropriate modules.
- Normalize/check for normalization when deserializing media entries.
2022-04-06 18:02:02 +02:00
RumovZ
80dc3ae99e Fix due dates in days for apkg export 2022-04-06 12:31:29 +02:00
RumovZ
6836da07ec Start on apkg importing on backend 2022-04-05 18:15:51 +02:00
RumovZ
fbc21da913 ExportData → ExchangeData 2022-03-31 12:53:36 +02:00
RumovZ
97c9dd4c18 Use temporary tables for gathering
export_apkg() now accepts a search instead of a deck id. Decks are
gathered according to the matched notes' cards.
2022-03-31 10:24:09 +02:00
RumovZ
d1dd0586bd Only store file folder once in MediaIter 2022-03-30 21:37:02 +02:00
RumovZ
a46026f283 Accept func to produce MediaIter in export_apkg() 2022-03-30 21:20:34 +02:00
RumovZ
84c5ac8a0a Gather export data instead of copying directly 2022-03-29 16:47:57 +02:00
RumovZ
6269a88cd3 Filter out missing media-paths at write time 2022-03-28 12:42:02 +02:00
RumovZ
566973146f Add apkg export on backend 2022-03-27 10:42:26 +02:00