From 6d850c95ce85ad5d1eb84a1a6325befb85cd7f29 Mon Sep 17 00:00:00 2001 From: Timothy Rae Date: Mon, 7 Dec 2015 16:37:27 +0900 Subject: [PATCH] Don't include media files with _ unless they are referenced in model --- anki/exporting.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/anki/exporting.py b/anki/exporting.py index d959f0fb7..d74ee6415 100644 --- a/anki/exporting.py +++ b/anki/exporting.py @@ -203,7 +203,12 @@ class AnkiExporter(Exporter): if self.mediaDir: for fname in os.listdir(self.mediaDir): if fname.startswith("_"): - media[fname] = True + # Scan all models in mids for reference to fname + for m in self.src.models.all(): + if int(m['id']) in mids: + if self._modelHasMedia(m, fname): + media[fname] = True + break self.mediaFiles = media.keys() self.dst.crt = self.src.crt # todo: tags? @@ -220,6 +225,16 @@ class AnkiExporter(Exporter): def removeSystemTags(self, tags): return self.src.tags.remFromStr("marked leech", tags) + def _modelHasMedia(self, model, fname): + # First check the styling + if fname in model["css"]: + return True + # If no reference to fname then check the templates as well + for t in model["tmpls"]: + if fname in t["qfmt"] or fname in t["afmt"]: + return True + return False + # Packaged Anki decks ######################################################################