JASchilz / AnkiSyncDuolingo

Pull your Duolingo vocabulary into Anki, as an Anki plugin
MIT License
101 stars 10 forks source link

Default not populated despite new notes #56

Closed dougienisbet closed 1 year ago

dougienisbet commented 2 years ago

I think I'm seeing the same problem as noted in https://github.com/JASchilz/AnkiSyncDuolingo/issues/52 but perhaps a different case use/workflow.

I've recently intalled the plugin and tried it with my Duolingo Spanish deck. It worked fine.

I RENAMED the Default Anki deck to DuolingoSpanish.

Next I logged into Duolingo, and changed my active deck to Catalan. Normally I do English to Spanish, but occassionally have a dabble with Spanish to Catalan.

I then ran the plugin again in Anki. It rececognised there were new words and I went ahead with the import.

However, when I looked at the newly created Default deck it was empty. I tried browsing it too and definitely empty.

Hang on, Hang on, Hang on ... I see what's happened. (Sometimes writing down the problem really helps - it makes you step through all the processes!)

Ok, the Catalan stuff has gone into the DuolingoSpanish deck (see screengrab). Whenever I try repeat the pull an empty Default deck is created.

My guess: Because I RENAMED the Default deck it used some sort of pointer to the new DuolingoSpanish deck? So any subsequent pulls go to the moved Default deck.

I've only just started using the plugin so don't yet have any experience of doing subsequent pulls for new vocab.

My question is: Is there any way I can tidy this up? Ideally I'd like different decks for different pulled Duolingo languages. If that's not possible it's not a huge problem.

I was browsing through the code to see if there was a way to reset the count but couldn't see where it's stored. Perhaps uninstall/re-install?

Perhaps what I should've done was to Clone the Default deck after the first pull, so that it had the structure, then move the notes from Default to cloned deck. Would that work?

Thanks for a handy plugin.

Dougie

image

dougienisbet commented 2 years ago

A bit of follow-up. I tried deleting and re-installing the plugin but it still 'knew' where I was up to and didn't re-import from Duolingo. I tried a Check Database and Media Repair and followed the steps in Managing Files but the dump and reimport of the db failed.

JASchilz commented 2 years ago

Hmm...thank you....this is a really interesting clue!

Sometimes I flirt with the idea of...like...a pulldown option on the synchronization menu that would let you choose a deck to add to. It's a moderate amount of work in that I think I'd probably want to add some memory to the plugin so that it could remember your last selection, and I also haven't worked with that kind of pull-down option in Anki before.

It sounds like you've definitely described a bug that I'd like to fix, though: that the plugin pushes to the former default deck rather than the actual default deck. I might not address this right away, but will definitely work on it the next time I touch the plugin.

As for how to make separate decks from separate languages, I can definitely see why you'd want to do that. The best way available right now would be to filter for tag:duolingo_sync and tag:Catalan in the Anki card browser and then move those into a new deck using that browser. That's admittedly inconvenient in that you'll need to repeat that process every time you re-import.

As for how to get the plugin to re-import cards that you've already imported, you would need to actually delete those cards: the plugin looks at all of your vocabulary in Duolingo and all of the cards with the tag duolingo_sync in order to figure out which of your vocabs are already imported. If you really wanted to double-import a card (have two copies of it in Anki), you might be able to do that by removing the duolingo_sync tag from the card, although I'm not sure whether or not there's a way to do that in bulk for multiple cards.

On Sat, Oct 8, 2022 at 2:55 AM Dougie Nisbet @.***> wrote:

I think I'm seeing the same problem as noted in #52 https://github.com/JASchilz/AnkiSyncDuolingo/issues/52 but perhaps a different case use/workflow.

I've recently intalled the plugin and tried it with my Duolingo Spanish deck. It worked fine.

I RENAMED the Default Anki deck to DuolingoSpanish.

Next I logged into Duolingo, and changed my active deck to Catalan. Normally I do English to Spanish, but occassionally have a dabble with Spanish to Catalan.

I then ran the plugin again in Anki. It rececognised there were new words and I went ahead with the import.

However, when I looked at the newly created Default deck it was empty. I tried browsing it too and definitely empty.

Hang on, Hang on, Hang on ... I see what's happened. (Sometimes writing down the problem really helps - it makes you step through all the processes!)

Ok, the Catalan stuff has gone into the DuolingoSpanish deck (see screengrab). Whenever I try repeat the pull an empty Default deck is created.

My guess: Because I RENAMED the Default deck it used some sort of pointer to the new DuolingoSpanish deck? So any subsequent pulls go to the moved Default deck.

I've only just started using the plugin so don't yet have any experience of doing subsequent pulls for new vocab.

My question is: Is there any way I can tidy this up? Ideally I'd like different decks for different pulled Duolingo languages. If that's not possible it's not a huge problem.

I was browsing through the code to see if there was a way to reset the count but couldn't see where it's stored. Perhaps uninstall/re-install?

Perhaps what I should've done was to Clone the Default deck after the first pull, so that it had the structure, then move the notes from Default to cloned deck. Would that work?

Thanks for a handy plugin.

Dougie

[image: image] https://user-images.githubusercontent.com/5359681/194701392-4c072e8e-855b-4855-a397-8b26a6fa57b6.png

— Reply to this email directly, view it on GitHub https://github.com/JASchilz/AnkiSyncDuolingo/issues/56, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABO2Q4BYOTKXGMP5IH7L6A3WCFAJBANCNFSM6AAAAAARAGA3FQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>

dougienisbet commented 2 years ago

_The best way available right now would be to filter for tag:duolingosync and tag:Catalan in the Anki card browser and then move those into a new deck using that browser. That's admittedly inconvenient in that you'll need to repeat that process every time you re-import.

I've just had a play with this method and it's not too bad at all. Given how often I'm likely to do a pull it certainly isn't too much of an overhead. I'll observe where the notes go on future pulls (I'm guessing they'll import to the renamed deck I created rather than Default - although that does seem to be created and empty) then just Select-All on the deck contents and move somewhere else.

For my case use it works pretty well. I have a few subdecks under languages and I can either review them as a big random block, or as individual decks. I'm still experimenting but I quite like the variety of having more than one language randomly popping up in a review session even though I believe this isn't considered an optimum way to learn. It is quite interesting though.

jameskraus commented 1 year ago

I opened PR https://github.com/JASchilz/AnkiSyncDuolingo/pull/67 as an attempt to solve this problem by skipping creation of the "Default" deck. I still don't think it's a great solution – it just skips the weird empty "Default" deck.

Sometimes I flirt with the idea of...like...a pulldown option on the synchronization menu that would let you choose a deck to add to. It's a moderate amount of work in that I think I'd probably want to add some memory to the plugin so that it could remember your last selection, and I also haven't worked with that kind of pull-down option in Anki before.

Something along these lines sounds better than the PR I've opened. Obviously more work than a 2 line PR though lol.

JASchilz commented 1 year ago

Thanks @jameskraus et. al! I'm going to go ahead and close this issue to reflect: