open-spaced-repetition / obsidian-spaced-repetition-recall

Fight the forgetting curve by reviewing flashcards & entire notes on Obsidian.md
https://www.stephenmwangi.com/obsidian-spaced-repetition/
MIT License
109 stars 6 forks source link

[Bug]: 复习笔记时,直接推送了没有到期的笔记 #56

Closed tangwells closed 4 months ago

tangwells commented 4 months ago

Describe the bug

对于一篇笔记,如果选择重来(5m),并不会自动打开下一篇笔记,而是一直呈现这篇笔记。但在 item info 中,其下一次复习时间确实是5m 后。实际操作发现,除了选择5m 的间隔,10m 的间隔也会触发这一问题。 对应的控制台信息如下:

image

全屏信息展示:

Pasted Graphic 2

To Reproduce

  1. 随意打开一篇今日待复习笔记。
  2. 选择重来按钮。

Expected behavior

选择重来(5m),应在5m 后再复习该笔记

Screenshots

No response

OS of your device

mac os sonoma 14.5

Obsidian version

v1.6.3

Plugin version

v1.12.4.5

Installer version

No response

Additional context

No response

Config file

No response

tangwells commented 4 months ago

使用你原先发给我的那个测试用的 main.js,该 bug 没有出现

tangwells commented 4 months ago

大佬,悬浮栏的不是什么大问题,重点是这个 bug。我新建了一个仓库来进行测试,发现当前插件逻辑是:

按照以上分析,肯定会有一种情况:假设「今日待复习队列」里有1篇笔记,「新笔记队列」里有10篇笔记。除非安排「今日待复习队列」里的这篇笔记的间隔时间大于1天,也就是让其脱离「今日待复习队列」。否则插件永远不会推送来自「新笔记队列」中的任何一篇笔记。 IMG_2796.MOV.zip实际的测试,也印证了我的猜测。

Newdea commented 4 months ago

嗯,在查了,先用之前那版吧

Newdea commented 4 months ago

现在这版(1.12.4.6)修复了,我电脑上已经可以只在到期时推送了,你再试下。

tangwells commented 4 months ago

目前没有这个问题了,我先 cloze了。

Newdea commented 4 months ago

大佬,更新之后问题变得更奇怪了。现在是对于我的带有#review标签的复习队列,无论是开始复习时打开一篇笔记,还是复习完后跳转到下一篇笔记,都会自动弹出 item info 窗口。 而且这个问题在同一个库的另一个队列是不存在的,在新库新建立的复习队列也不存在,仅在这个#review的复习队列里存在。 控制台的截图如下: image 录制的视频如下: IMG_2800.MOV.zip

弹出item info 窗口就是复习了没到期的笔记时(即针对问题 #56 ),做的一个调试功能。

只出现我的带有#review标签的复习队列,对于另一个复习队列是不存在这两个问题的。

这个问题是在使用了 clear queue 命令后出现的么?

按理说这个问题不应该再出现,目前代码中已经加入了每天自动清一次队列的。

        if (now.getDate() != new Date(this.lastQueue).getDate()) {
            this.newAdded = 0;
            this.clearQueue();
            newDayFlag = true;
        }

如果这个问题还是反复出现,请提供下对应的笔记库, !!!注意删除其他文件,只保留#review的几个笔记就可以,笔记内容全删除,只保留标签就行

或你在沙盒库中能稳定复现,直接提供对应的笔记库也可。

tangwells commented 4 months ago

这个问题是在使用了 clear queue 命令后出现的么?

我先前并没有使用过这个命令。一个好消息是这个会自动弹出 item info 窗口的 bug 消失了。消失前的我的最后一个具体操作是:在阅读模式下,使用快捷键“0”来对笔记选择重来。 感觉这个 bug 很玄学,不过能跑就行。

tangwells commented 4 months ago

消失前的我的最后一个具体操作是:在阅读模式下,使用快捷键“0”来对笔记选择重来。

现在看来与这个操作似乎没有直接关系,因为就在刚刚,这个bug 它又复现了。复现的场景是,某篇笔记选择了今天重来,再推送给我时「记得」的间隔为1天,我在选择记得后就开始每篇笔记都自动弹出 item info 窗口了。控制台的信息与我先前发送的是一致的。我再观察一下,如果还是出现这个问题我再给你发送笔记库。

tangwells commented 4 months ago

bug 库.zip 这是我的笔记库,个人及重要信息都已删除,插件啥的打开即用。上传前已确认还是会自动弹出 item info 窗口的。

Newdea commented 4 months ago

用你这个复现了几次弹item info窗口,看了复习数据,是可以复习,并不算是提前。

正常推送的逻辑 :

  1. 上次复习时间是当天之前,nextReview是当天之内;或
  2. 上次复习时间是当天,nextReview在现在时间之前。

弹item info 窗口的判断条件不全导致的,已经修改了,试过没有再出现,你再试下。效果如何请反馈下。 main_fix.zip

tangwells commented 4 months ago

自动弹出 item info 窗口的问题解决了!