Closed markhavemann closed 2 years ago
while i think this is definitely doable, perhaps it's worth asking AnkiDroid devs (they've got a Discord) if they would be willing to incorporate this functionality into the app somehow? what this addon does is technically very simple, and they already support some custom things like chess notation, so perhaps they would do it
Thanks for the feedback!
I've made a feature request on the Ankidroid github here.
note to self; some suggestions from the chat:
Your code change due date but not the interval. Which mean that when a card is reviewed, maybe the interval since the last review was 70 days ago, but the .ivl value is still 60. Which mean when scheduling the next review, the scheduler is going to compute a date that is sooner than what should be used according to spaced repetition theory. Obviously, the theory is based on the false assumption that cards are independant, so I'm not stating that current anki scheduler is better without your add-on than with it. Only that your add-on does not consider the importance of interval since last review in the computation.
Also you can import constant from anki/consts.py instead of redefining them
I'd note however that with review log, you have all informations needed to postpone the cards on the computer, once the data are synced from ankidroid to anki. So if you care about it, you can ensure that after each sync, if there are new reviews in the log, they are checked, and siblings of reviewed cards get postponed as needed
anki desktop can bury reviews now, so if ankidroid gets (maybe it already has?) this option, which hopefully helps to remove siblings from the review queue, a more reasonable approach would be as suggested above, delaying siblings on desktop after syncing changes from the phone.
i like this solution a lot, but i'm not sure if i'll have the opportunity to work on it any time soon
I wanted this as well, so added a function that bulk delays future reviews based on either due date or latest review of siblings, rather than just a current review. I've made a pull request (#8) with the changes, so if either or both of you could check it over, that would be great. I haven't touched either of the other suggestions in the previous comment, though.
Sorry @duncrob99 I didn't have the time or energy to review your PR at the time, and then I kind of, uh, well, sorry.
Anyway, since I wanted the addon to make the minimum possible impact, I want it to only touch cards that were modified. I put some changes into https://github.com/oakkitten/anki-delay-siblings/tree/delay-after-sync, which is based on updated master that also has a few changes, including a few tests.
If enabled (on by default), after sync, the addon will now show a list of cards that it wants to delay, and ask the user if they want to proceed or not. Aaand that's it. (I guess I'll add a “don't show this again” setting, and perhaps the dialog could show something (Browser?) if you double-click a card.)
Thoughts? Most of the interesting stuff is in the ##### delay after sync
section in ___init__.py
.
Edit: added a setting to not show the confirmation dialog, and also a way to not reschedule siblings of cards that had their last review done manually. some crazy sql! https://github.com/oakkitten/anki-delay-siblings/commit/6035d81154a80bc451536fb0bbff5a8946a91468
Thank you so much for putting time into this!
Unfortunately, after updating today, it now says that the add-on requires Anki <= 2.1.48. Mine's updated to 2.1.49 which is the latest stable release on the anki website.
Is the lower version required because of the new functionality, or just Anki being weird? I don't mind downgrading if necessary, but I'll wait to see what @oakkitten says.
This is weird. Your Anki version is 2.1.49, right? . Does the message appear after updating the addon, or before trying to do it? Could you please show me the contents of your meta.json
? You can find it in Tools → Add-ons → select Delay siblings → View Files.
When I updated the add-on, since I decided to not test on Anki < 2.1.49, I uploaded another “branch”. So users on Anki 2.1.48 and below would get the old branch, and the users on Anki 2.1.49 and beyond would get the new branch.
So I expect that users on Anki 2.1.48 and below would not get an update, and users on Anki 2.1.49 would get the update from the new “branch”. Something weird is going on!
Edit: If you updated your Anki to 2.1.49, try selecting Tools → Add-ons → Check for Updates.
Does the message appear after updating the addon, or before trying to do it? It appeared after updating the addon.
If you updated your Anki to 2.1.49, try selecting Tools → Add-ons → Check for Updates. I should also add that I didn't update my anki. As far as I know, it's been 2.1.49 for quite a while.
This is the content of my meta.json file:
{"name": "Delay siblings", "mod": 1598530090, "min_point_version": 0, "max_point_version": -48, "branch_index": 0, "config": {"version": 0, "0": {"enabled": false, "quiet": false}, "1629330939934": {"enabled": true, "quiet": false}, "1610976842062": {"enabled": true, "quiet": false}, "1586073886164": {"enabled": true, "quiet": false}}, "disabled": false, "conflicts": [], "update_enabled": true}
Aha. Could you please try selecting Tools → Add-ons → Check for Updates? It should offer to update Delay siblings.
It seems to think everything is updated
Thanks for detailed replies!
Well, this is weird. I put your meta.json
into my Anki 2.1.49, and it does offer to update. Hold on, I'll report this on the Anki support forum.
Here's the thread on the support forum. The author of Anki also thinks this is weird. If you are willing, we can move there. They are suggesting to check the output of fetch_update_info()
, you can do so by opening Anki, pressing Ctrl-Shift-;, pasting the following code:
from anki.httpclient import HttpClient
pp(aqt.addons.fetch_update_info(HttpClient(), [1369579727]))
and pressing Ctrl-Enter. It would help if you paste the output of this on the support forum in that thread.
If you don't want to go through with this, you can try deleting the add-on and downloading it again maybe?
Yesterday my Anki popped up saying there is an update for the add-on. I updated and it works fine now.
I am using a VPN sometimes so I'm not sure if this messed things, but I was getting updates for other plugins at the same time so it doesn't seem like it would.
Yeah I'm not sure what's going on. In any case this probably isn't a problem with the add-on. At least, I didn't do anything with it in the past few days 😛 Glad it's working!
Thanks for putting in all the effort and spending time on this!
This isn't an issue, not really anyway.
My "issue" is that I don't want to use Ankidroid anymore because seeing sibling cards on the same days is frustrating.
Is there anyway to be able to run the addon in the PC version of Anki, for all the cards due today. This way it's possible to sync to Ankidroid for reviewing later.
I guess it won't be as efficient as doing it as each card is answered because I assume that it calculates according to how you answer each card, but it will still be way better than nothing.