Git Product home page Git Product logo

anki-suspend-siblings-until-mature's People

Contributors

gustavotrott avatar

Watchers

 avatar  avatar

anki-suspend-siblings-until-mature's Issues

Respect manually suspended cards

Thank you for making this add-on ^_^

The problem

If I’m not mistaken, currently this add-on does not treat cards suspended by the user as special, and will unsuspend them when their sibling becomes mature. For example, if we have three new siblings, card 1, card 2 and card 3, and the user chose for whatever reason to suspend card 2 manually beforehand, by learning card 1 the sibling card 3 will become suspended in a way that does not differentiate it from card 2. When card 1 becomes mature, both card 3 and card 2 are unsuspended by the add-on. This should not happen, of course, the user’s choice to suspend card 2 manually should be respected.

A proposal for solution

When suspending siblings, tag the notes with tags that mark which ones were suspended by the add-on (say, wait-3 in the above case). When a card achieve maturity and its siblings are to be unsuspended, unsuspend only those which have a corresponding tag (card 3 in the above case, leaving card 2 alone) and remove the tags.

Disclaimer

I have not tested this add-on on my actual deck, because I didn’t want to unsuspend cards I suspended for a reason. If my understanding of the way the add-on works is incorrect, please accept my apology for opening this issue.

Error when trying to click Good

I really like this add-on which is essential for me because I have multiple cards on similar content (vocab learning). Unfortunately today I'm getting this whenever I try to click Good on a card:

Error
An error occurred. Please start Anki while holding down the shift key, which will temporarily disable the add-ons you have installed.
If the issue only occurs when add-ons are enabled, please use the Tools>Add-ons menu item to disable some add-ons and restart Anki, repeat until you discover the add-on that is causing the problem.
When you've discovered the add-on that is causing the problem, please report the issue on the add-ons section of our support site.
Debug info:
Anki 2.1.54 (b6a7760c) Python 3.9.7 Qt 6.3.1 PyQt 6.3.1
Platform: Mac 12.0.1
Flags: frz=True ao=True sv=3
Add-ons, last update check: 2023-04-08 14:29:40
Add-ons possibly involved: ⁨Suspend siblings until mature⁩

Caught exception:
Traceback (most recent call last):
File "aqt.taskman", line 122, in _on_closures_pending
File "aqt.taskman", line 71, in
File "aqt.taskman", line 90, in wrapped_done
File "aqt.operations", line 125, in wrapped_done
File "aqt.reviewer", line 437, in after_answer
File "aqt.reviewer", line 450, in _after_answering
File "aqt.hooks_gen", line 3345, in call
File "/Users/general2/Library/Application Support/Anki2/addons21/712964150/init.py", line 38, in reviewer_did_answer_card
if sibling.id in mw.col.sched._revQueue:
File "anki._legacy", line 78, in getattr
AttributeError: 'Scheduler' object has no attribute '_revQueue'

The add-on buries same-day siblings in the whole collection

Hi, I'm not very familiar with github, I hope this thread is appropriate.

In my experience and as far as I can tell, the add-on buries same-day siblings in the whole collection, not only in the decks where it's enabled.

To me the add-on would be way more functional if this behavior was completely absent and/or it was optional and/or it was limited to the decks where the add-on is enabled.

Would you help?

Delay unsuspending for a while after a sibling becomes mature

The problem

If I understand correctly, the way things work now is that siblings are unsuspended immediately after their new sibling achieves the mature level. This may cause a problem: the data in question is still very much fresh in the user’s memory, and thus the recently unsuspended siblings are unrepresentatively easy.

A proposal for a solution

I suggest we wait before we unsuspend the siblings. Two scenarios:

  • Without FSRS this can be a certain number of days (a user-modifiable variable).
  • With FSRS this can be calculated by the retrievability value of the sibling which has become mature. Right after rating it, the retrievability is 100%, but it decreases over time. I suggest we wait until the value decreases to a certain value (user-modifiable, of course) before we unsuspend the other cards. The default can be, say, 95%, but in any case it has to be greater than the desired retention value, because otherwise the suspended cards would never be unsuspended.

Doesn't work if most recently rated is not first sibling

The loop over siblings ends prematurely if any sibling evaluated has an order before the one that was just rated. init.py line 35 should be continue instead of return, to move to the next sibling instead of stopping all processing.

Additionally, I don't know that the code for removing cards from the queues is needed at all (lines 37-56); isn't that already handled by standard sibling burying settings?

Also, I don't see the point of stopping processing if the rated card is in the relearning queue (lines 67-69), but if that is desired behavior for some reason, it seems like it shouldn't be inside the sibling loop, but before the whole thing.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.