Compare commits
5 Commits
0514569621
...
ba67c52d9b
Author | SHA1 | Date | |
---|---|---|---|
|
ba67c52d9b | ||
|
cc027f8ab8 | ||
|
dc96cdc76c | ||
|
6a2cc2dec1 | ||
|
172d1fb20f |
@ -15,10 +15,11 @@
|
|||||||
|
|
||||||
import aqt
|
import aqt
|
||||||
|
|
||||||
|
required_anki_version = (26, 6, 3)
|
||||||
anki_version = tuple(int(segment) for segment in aqt.appVersion.split("."))
|
anki_version = tuple(int(segment) for segment in aqt.appVersion.split("."))
|
||||||
|
|
||||||
if anki_version < (2, 1, 45):
|
if anki_version < required_anki_version:
|
||||||
raise Exception("Minimum Anki version supported: 2.1.45")
|
raise Exception("Minimum Anki version supported: {required_anki_version[0]}.{required_anki_version[1]}.{required_anki_version[2]}")
|
||||||
|
|
||||||
import base64
|
import base64
|
||||||
import glob
|
import glob
|
||||||
@ -310,7 +311,7 @@ class AnkiConnect:
|
|||||||
val = note.fields[0]
|
val = note.fields[0]
|
||||||
if not val.strip():
|
if not val.strip():
|
||||||
return 1
|
return 1
|
||||||
csum = anki.utils.fieldChecksum(val)
|
csum = anki.utils.field_checksum(val)
|
||||||
|
|
||||||
# Create dictionary of deck ids
|
# Create dictionary of deck ids
|
||||||
dids = None
|
dids = None
|
||||||
@ -358,13 +359,13 @@ class AnkiConnect:
|
|||||||
|
|
||||||
def getCard(self, card_id: int) -> Card:
|
def getCard(self, card_id: int) -> Card:
|
||||||
try:
|
try:
|
||||||
return self.collection().getCard(card_id)
|
return self.collection().get_card(card_id)
|
||||||
except NotFoundError:
|
except NotFoundError:
|
||||||
self.raiseNotFoundError('Card was not found: {}'.format(card_id))
|
self.raiseNotFoundError('Card was not found: {}'.format(card_id))
|
||||||
|
|
||||||
def getNote(self, note_id: int) -> Note:
|
def getNote(self, note_id: int) -> Note:
|
||||||
try:
|
try:
|
||||||
return self.collection().getNote(note_id)
|
return self.collection().get_note(note_id)
|
||||||
except NotFoundError:
|
except NotFoundError:
|
||||||
self.raiseNotFoundError('Note was not found: {}'.format(note_id))
|
self.raiseNotFoundError('Note was not found: {}'.format(note_id))
|
||||||
|
|
||||||
@ -567,7 +568,7 @@ class AnkiConnect:
|
|||||||
self.startEditing()
|
self.startEditing()
|
||||||
|
|
||||||
did = self.collection().decks.id(deck)
|
did = self.collection().decks.id(deck)
|
||||||
mod = anki.utils.intTime()
|
mod = anki.utils.int_time()
|
||||||
usn = self.collection().usn()
|
usn = self.collection().usn()
|
||||||
|
|
||||||
# normal cards
|
# normal cards
|
||||||
@ -612,7 +613,7 @@ class AnkiConnect:
|
|||||||
collection = self.collection()
|
collection = self.collection()
|
||||||
|
|
||||||
config['id'] = str(config['id'])
|
config['id'] = str(config['id'])
|
||||||
config['mod'] = anki.utils.intTime()
|
config['mod'] = anki.utils.int_time()
|
||||||
config['usn'] = collection.usn()
|
config['usn'] = collection.usn()
|
||||||
if int(config['id']) not in [c['id'] for c in collection.decks.all_config()]:
|
if int(config['id']) not in [c['id'] for c in collection.decks.all_config()]:
|
||||||
return False
|
return False
|
||||||
@ -741,7 +742,6 @@ class AnkiConnect:
|
|||||||
nCardsAdded = collection.addNote(ankiNote)
|
nCardsAdded = collection.addNote(ankiNote)
|
||||||
if nCardsAdded < 1:
|
if nCardsAdded < 1:
|
||||||
raise Exception('The field values you have provided would make an empty question on all cards.')
|
raise Exception('The field values you have provided would make an empty question on all cards.')
|
||||||
collection.autosave()
|
|
||||||
|
|
||||||
return ankiNote.id
|
return ankiNote.id
|
||||||
|
|
||||||
@ -829,9 +829,7 @@ class AnkiConnect:
|
|||||||
pictureObjectOrList = note.get('picture')
|
pictureObjectOrList = note.get('picture')
|
||||||
self.addMedia(ankiNote, pictureObjectOrList, util.MediaType.Picture)
|
self.addMedia(ankiNote, pictureObjectOrList, util.MediaType.Picture)
|
||||||
|
|
||||||
ankiNote.flush()
|
self.collection().update_note(ankiNote, skip_undo_entry=True);
|
||||||
|
|
||||||
self.collection().autosave()
|
|
||||||
|
|
||||||
|
|
||||||
@util.api()
|
@util.api()
|
||||||
@ -895,11 +893,8 @@ class AnkiConnect:
|
|||||||
# Update the tags
|
# Update the tags
|
||||||
anki_note.tags = new_tags
|
anki_note.tags = new_tags
|
||||||
|
|
||||||
# Flush changes to ensure they are saved
|
# Update note to ensure changes are saved
|
||||||
anki_note.flush()
|
collection.update_note(anki_note, skip_undo_entry=True);
|
||||||
|
|
||||||
# Save changes to the collection
|
|
||||||
collection.autosave()
|
|
||||||
|
|
||||||
@util.api()
|
@util.api()
|
||||||
def updateNoteTags(self, note, tags):
|
def updateNoteTags(self, note, tags):
|
||||||
@ -953,7 +948,7 @@ class AnkiConnect:
|
|||||||
if note.has_tag(tag_to_replace):
|
if note.has_tag(tag_to_replace):
|
||||||
note.remove_tag(tag_to_replace)
|
note.remove_tag(tag_to_replace)
|
||||||
note.add_tag(replace_with_tag)
|
note.add_tag(replace_with_tag)
|
||||||
note.flush()
|
self.collection().update_note(note, skip_undo_entry=True);
|
||||||
|
|
||||||
self.window().requireReset()
|
self.window().requireReset()
|
||||||
self.window().progress.finish()
|
self.window().progress.finish()
|
||||||
@ -970,7 +965,7 @@ class AnkiConnect:
|
|||||||
if note.has_tag(tag_to_replace):
|
if note.has_tag(tag_to_replace):
|
||||||
note.remove_tag(tag_to_replace)
|
note.remove_tag(tag_to_replace)
|
||||||
note.add_tag(replace_with_tag)
|
note.add_tag(replace_with_tag)
|
||||||
note.flush()
|
self.collection().update_note(note, skip_undo_entry=True);
|
||||||
|
|
||||||
self.window().requireReset()
|
self.window().requireReset()
|
||||||
self.window().progress.finish()
|
self.window().progress.finish()
|
||||||
@ -989,7 +984,7 @@ class AnkiConnect:
|
|||||||
|
|
||||||
couldSetEaseFactors.append(True)
|
couldSetEaseFactors.append(True)
|
||||||
ankiCard.factor = easeFactors[i]
|
ankiCard.factor = easeFactors[i]
|
||||||
ankiCard.flush()
|
self.collection().update_card(ankiCard, skip_undo_entry=True)
|
||||||
|
|
||||||
return couldSetEaseFactors
|
return couldSetEaseFactors
|
||||||
|
|
||||||
@ -1019,7 +1014,7 @@ class AnkiConnect:
|
|||||||
ankiCard = self.getCard(card)
|
ankiCard = self.getCard(card)
|
||||||
for i, key in enumerate(keys):
|
for i, key in enumerate(keys):
|
||||||
setattr(ankiCard, key, newValues[i])
|
setattr(ankiCard, key, newValues[i])
|
||||||
ankiCard.flush()
|
self.collection().update_card(ankiCard, skip_undo_entry=True)
|
||||||
result.append(True)
|
result.append(True)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
result.append([False, str(e)])
|
result.append([False, str(e)])
|
||||||
|
Loading…
Reference in New Issue
Block a user