start of packaged deck importing

This commit is contained in:
Damien Elmes 2012-02-26 06:49:17 +09:00
parent 620f16c876
commit d7c58f8142
3 changed files with 23 additions and 2 deletions

View file

@ -3,14 +3,15 @@
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html # License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
from anki.importing.csvfile import TextImporter from anki.importing.csvfile import TextImporter
from anki.importing.apkg import AnkiPackageImporter
from anki.importing.anki2 import Anki2Importer from anki.importing.anki2 import Anki2Importer
from anki.importing.anki1 import Anki1Importer from anki.importing.anki1 import Anki1Importer
from anki.importing.supermemo_xml import SupermemoXmlImporter from anki.importing.supermemo_xml import SupermemoXmlImporter
from anki.lang import _ from anki.lang import _
Importers = ( Importers = (
(_("Text separated by tabs or semicolons (*.txt,*.csv)"), TextImporter), (_("Text separated by tabs or semicolons (*)"), TextImporter),
(_("Anki 2.0 Collection (*.anki2)"), Anki2Importer), (_("Packaged Anki Deck (*.apkg)"), AnkiPackageImporter),
(_("Anki 1.2 Deck (*.anki)"), Anki1Importer), (_("Anki 1.2 Deck (*.anki)"), Anki1Importer),
(_("Supermemo XML export (*.xml)"), SupermemoXmlImporter), (_("Supermemo XML export (*.xml)"), SupermemoXmlImporter),
) )

19
anki/importing/apkg.py Normal file
View file

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
# Copyright: Damien Elmes <anki@ichi2.net>
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
import zipfile
from anki.utils import tmpfile
from anki.importing.anki2 import Anki2Importer
class AnkiPackageImporter(Anki2Importer):
def run(self):
# extract the deck from the zip file
z = zipfile.ZipFile(self.file)
f = z.open("collection.anki2")
colpath = tmpfile(suffix=".anki2")
open(colpath, "w").write(f.read())
# pass it to the anki2 importer
self.file = colpath
Anki2Importer.run(self)

View file

@ -10,6 +10,7 @@ from anki.utils import intTime, maxID
class Importer(object): class Importer(object):
needMapper = False needMapper = False
needDelimiter = False
def __init__(self, col, file): def __init__(self, col, file):
self.file = file self.file = file