mirror of
https://github.com/gosticks/flashcards-obsidian.git
synced 2025-10-16 12:05:33 +00:00
Add error message if an inserted card is actually not in Anki
This commit is contained in:
parent
fe2ced83bb
commit
f559262d4a
5
main.ts
5
main.ts
@ -61,7 +61,10 @@ export default class ObsidianFlashcard extends Plugin {
|
|||||||
|
|
||||||
private generateCards(activeFile: TFile) {
|
private generateCards(activeFile: TFile) {
|
||||||
this.cardsService.execute(activeFile).then(res => {
|
this.cardsService.execute(activeFile).then(res => {
|
||||||
new Notice(res.join(" "), noticeTimeout)
|
for (let r of res) {
|
||||||
|
new Notice(r, noticeTimeout)
|
||||||
|
}
|
||||||
|
console.log(res)
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
Error(err)
|
Error(err)
|
||||||
})
|
})
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"id": "flashcards-obsidian",
|
"id": "flashcards-obsidian",
|
||||||
"name": "Flashcards",
|
"name": "Flashcards",
|
||||||
"version": "1.5.0",
|
"version": "1.5.1",
|
||||||
"minAppVersion": "0.9.17",
|
"minAppVersion": "0.9.17",
|
||||||
"description": "Anki integration",
|
"description": "Anki integration",
|
||||||
"author": "Alex Colucci",
|
"author": "Alex Colucci",
|
||||||
|
|||||||
@ -70,7 +70,7 @@ export class CardsService {
|
|||||||
let ankiCards = ankiBlocks ? await this.anki.getCards(this.getAnkiIDs(ankiBlocks)) : undefined
|
let ankiCards = ankiBlocks ? await this.anki.getCards(this.getAnkiIDs(ankiBlocks)) : undefined
|
||||||
|
|
||||||
let cards: Card[] = this.parser.generateFlashcards(this.file, deckName, vaultName, filePath, globalTags)
|
let cards: Card[] = this.parser.generateFlashcards(this.file, deckName, vaultName, filePath, globalTags)
|
||||||
let [cardsToCreate, cardsToUpdate] = this.filterByUpdate(ankiCards, cards)
|
let [cardsToCreate, cardsToUpdate, cardsNotInAnki] = this.filterByUpdate(ankiCards, cards)
|
||||||
let cardIds: number[] = this.getCardsIds(ankiCards, cards)
|
let cardIds: number[] = this.getCardsIds(ankiCards, cards)
|
||||||
let cardsToDelete: number[] = this.parser.getCardsToDelete(this.file)
|
let cardsToDelete: number[] = this.parser.getCardsToDelete(this.file)
|
||||||
|
|
||||||
@ -80,6 +80,13 @@ export class CardsService {
|
|||||||
console.info(cardsToUpdate)
|
console.info(cardsToUpdate)
|
||||||
console.info("Flashcards: Cards to delete")
|
console.info("Flashcards: Cards to delete")
|
||||||
console.info(cardsToDelete)
|
console.info(cardsToDelete)
|
||||||
|
if (cardsNotInAnki) {
|
||||||
|
console.info("Flashcards: Cards not in Anki (maybe deleted)")
|
||||||
|
for (let card of cardsNotInAnki) {
|
||||||
|
this.notifications.push(`Error: Card with ID ${card.id} is not in Anki!`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.info(cardsNotInAnki)
|
||||||
|
|
||||||
this.insertMedias(cards, sourcePath)
|
this.insertMedias(cards, sourcePath)
|
||||||
await this.deleteCardsOnAnki(cardsToDelete, ankiBlocks)
|
await this.deleteCardsOnAnki(cardsToDelete, ankiBlocks)
|
||||||
@ -280,6 +287,7 @@ export class CardsService {
|
|||||||
public filterByUpdate(ankiCards: any, generatedCards: Card[]) {
|
public filterByUpdate(ankiCards: any, generatedCards: Card[]) {
|
||||||
let cardsToCreate: Card[] = []
|
let cardsToCreate: Card[] = []
|
||||||
let cardsToUpdate: Card[] = []
|
let cardsToUpdate: Card[] = []
|
||||||
|
let cardsNotInAnki: Card[] = []
|
||||||
|
|
||||||
if (ankiCards) {
|
if (ankiCards) {
|
||||||
for (let flashcard of generatedCards) {
|
for (let flashcard of generatedCards) {
|
||||||
@ -288,11 +296,12 @@ export class CardsService {
|
|||||||
let ankiCard = undefined
|
let ankiCard = undefined
|
||||||
if (flashcard.inserted) {
|
if (flashcard.inserted) {
|
||||||
ankiCard = ankiCards.filter((card: any) => Number(card.noteId) === flashcard.id)[0]
|
ankiCard = ankiCards.filter((card: any) => Number(card.noteId) === flashcard.id)[0]
|
||||||
if (!flashcard.match(ankiCard)) {
|
if (!ankiCard) {
|
||||||
|
cardsNotInAnki.push(flashcard)
|
||||||
|
} else if (!flashcard.match(ankiCard)) {
|
||||||
flashcard.oldTags = ankiCard.tags
|
flashcard.oldTags = ankiCard.tags
|
||||||
cardsToUpdate.push(flashcard)
|
cardsToUpdate.push(flashcard)
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
cardsToCreate.push(flashcard)
|
cardsToCreate.push(flashcard)
|
||||||
}
|
}
|
||||||
@ -301,7 +310,7 @@ export class CardsService {
|
|||||||
cardsToCreate = [...generatedCards]
|
cardsToCreate = [...generatedCards]
|
||||||
}
|
}
|
||||||
|
|
||||||
return [cardsToCreate, cardsToUpdate]
|
return [cardsToCreate, cardsToUpdate, cardsNotInAnki]
|
||||||
}
|
}
|
||||||
|
|
||||||
public async deckNeedToBeChanged(cardsIds: number[], deckName: string) {
|
public async deckNeedToBeChanged(cardsIds: number[], deckName: string) {
|
||||||
@ -323,7 +332,9 @@ export class CardsService {
|
|||||||
let ankiCard = undefined
|
let ankiCard = undefined
|
||||||
if (flashcard.inserted) {
|
if (flashcard.inserted) {
|
||||||
ankiCard = ankiCards.filter((card: any) => Number(card.noteId) === flashcard.id)[0]
|
ankiCard = ankiCards.filter((card: any) => Number(card.noteId) === flashcard.id)[0]
|
||||||
ids = ids.concat(ankiCard.cards)
|
if (ankiCard) {
|
||||||
|
ids = ids.concat(ankiCard.cards)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user