mortii / anki-morphs

A MorphMan fork rebuilt from the ground up with a focus on simplicity, performance, and a codebase with minimal technical debt.
https://mortii.github.io/anki-morphs/
Mozilla Public License 2.0
55 stars 8 forks source link

still nothing happens "mark as name" #70

Closed HQYang1979 closed 9 months ago

HQYang1979 commented 9 months ago

image

mortii commented 9 months ago

If you open names.txt found in:

is there anything inside the file?

HQYang1979 commented 9 months ago

If you open names.txt found in:

  • Windows: C:\Users\[user]\AppData\Roaming\Anki2\[profile_name]
  • Mac: /Users/[user]/Library/Application Support/Anki2/[profile_name]
  • Linux: /home/[user]/.local/share/Anki2/[profile_name]

is there anything inside the file?

Yes I checked it, the names I marked are in the file.

Vilhelm-Ian commented 9 months ago

@HQYang1979 after marking it as a name you need to recalc press CTRL+M

HQYang1979 commented 9 months ago

@HQYang1979 after marking it as a name you need to recalc press CTRL+M

I thought on last thread we've already corrected it.

And it will not be convenient when you have a large collection.

Vilhelm-Ian commented 9 months ago

@HQYang1979 No what the last thread did was you don't have to close(alt+f4) anki so you can recalc with the new word in names.txt

What I do is I mark a word as name.txt and press burry

HQYang1979 commented 9 months ago

image

@HQYang1979 after marking it as a name you need to recalc press CTRL+M

Pressing recalc doesn't seem to work either. It's still here.

image

Vilhelm-Ian commented 9 months ago

@HQYang1979 check if you have the names.txt option enabled in settings

HQYang1979 commented 9 months ago

@HQYang1979 check if you have the names.txt option enabled in settings

image yes it is enabled.

Vilhelm-Ian commented 9 months ago

can you send the deck. Just press export export without media and add .zip after the .colpkg or .apkg so I can test it

HQYang1979 commented 9 months ago

can you send the deck. Just press export export without media and add .zip after the .colpkg or .apkg so I can test it

https://drive.google.com/file/d/1suWt7Yljlj_lZvPZ_J1oMj5zPfpXXgPE/view?usp=drive_link

please let me know if it can't be downloaded.

Vilhelm-Ian commented 9 months ago

you didn't had to upload it to gdrive you could have drag and dropped it. HQYang I am busy today I am going to check it out tomorrow

HQYang1979 commented 9 months ago

you didn't had to upload it to gdrive you could have drag and dropped it. HQYang I am busy today I am going to check it out tomorrow

test apkg.zip

Ah yes, I see, I can zip it.

mortii commented 9 months ago

@HQYang1979 after marking it as a name you need to recalc press CTRL+M

I thought on last thread we've already corrected it.

And it will not be convenient when you have a large collection.

If the name is the only unknown morph on the card then you can use 'set known and skip' and then it will work without having to recalc. The name will still not be counted as 'known' since recalc will ignore morphs found in names.txt.

Edit: Actually, just answering the card will also make the name be ignored for future cards today without having to recalc.

HQYang1979 commented 9 months ago

@HQYang1979 after marking it as a name you need to recalc press CTRL+M

I thought on last thread we've already corrected it. And it will not be convenient when you have a large collection.

If the name is the only unknown morph on the card then you can use 'set known and skip' and then it will work without having to recalc. The name will still not be counted as 'known' since recalc will ignore morphs found in names.txt.

Edit: Actually, just answering the card will also make the name be ignored for future cards today without having to recalc.

Thank you. I just assumed before that when the names are marked, they will automatically be known or something without pressing recalt.

Well, it's actually not a big deal. It's just not what I expected.

mortii commented 9 months ago

Thank you. I just assumed before that when the names are marked, they will automatically be known or something without pressing recalt.

Well, it's actually not a big deal. It's just not what I expected.

That is great feedback!

What do you want to happen after you click 'mark as name'? Should the card be buried/skipped immediately?

HQYang1979 commented 9 months ago

Thank you. I just assumed before that when the names are marked, they will automatically be known or something without pressing recalt. Well, it's actually not a big deal. It's just not what I expected.

That is great feedback!

What do you want to happen after you click 'mark as name'? Should the card be buried/skipped immediately?

What I expect is: after I click 'mark as name', it will be added to the name.txt, the card and related cards (only containing the name as the focus word) are skipped (it will come back if just buried), and do not count as known.

Vilhelm-Ian commented 9 months ago

@HQYang1979 I figured out a workaround that would address your issue.

BTW I think the problem you had with Recalc doing nothing is that maybe all the other cards in your deck had known morphs

HQYang1979 commented 9 months ago

@HQYang1979 I figured out a workaround that would address your issue.

BTW I think the problem you had with Recalc doing nothing is that maybe all the other cards in your deck had known morphs

that'll not be the case, my English collection has about 140,000 cards... and I was starting from the top...

mortii commented 9 months ago

What I expect is: after I click 'mark as name', it will be added to the name.txt, the card and related cards (only containing the name as the focus word) are skipped (it will come back if just buried), and do not count as known.

Let me make sure we are on the same page:

Say my current card is card1 with the text : "Good morning, Harry Potter".

  1. I mark "Harry Potter" as a name.
  2. card1 is immediately buried/skipped once I click 'mark as name'
  3. any future cards that has that name as a focus morph should be skipped

Is that right @HQYang1979 ?

Vilhelm-Ian commented 9 months ago

@mortii That's how I also interepted it.

I thought of two potential solutions to this.

  1. To auto recalc if someone "mark name" which would be slow
  2. To add the card to "seen_today". The issue with this is that def update_seen_morphs_today_single_card(self, card_id: int) -> None: uses card id as input. And trying to get the card id from the reviewer seems like a pain
  3. We can also loop through the entire collection and bury any cards that contain the name. But tomorrow when he will study he will have to do it again if he dosen't recalc. To be fair this is would be such a rare event that we can ignore it
HQYang1979 commented 9 months ago

What I expect is: after I click 'mark as name', it will be added to the name.txt, the card and related cards (only containing the name as the focus word) are skipped (it will come back if just buried), and do not count as known.

Let me make sure we are on the same page:

Say my current card is card1 with the text : "Good morning, Harry Potter".

  1. I mark "Harry Potter" as a name.
  2. card1 is immediately buried/skipped once I click 'mark as name'
  3. any future cards that has that name as a focus morph should be skipped

Is that right @HQYang1979 ?

Well, I thought about it, it might just let me bury it like a new word, it would be much easier. Or when I 'mark as name', it will be buried as any other words, but it will not be counted as a known. Will it be alright? It is just I am a little bit perfectionist, the known words should not include proper names...

Vilhelm-Ian commented 9 months ago

the known words should not include proper names...

Yup, that's the entire reason why we made names.txt . Otherwise a simple solution would be to dump all names in a card and mark it as known. But then you would have like 2k known morphs that are just names.

@HQYang1979 Out of the three solutions above which do you prefer

If you just want to auto burry a single card when you press mark as name. That be an easy fix

Vilhelm-Ian commented 9 months ago

A rare issue I want to avoid is somebody that started using morphman. He would be shown cards with more than 1 unknown morph. If he presses "mark as name" not to mark all the other unknowns as known

HQYang1979 commented 9 months ago
  1. Mark as name;
  2. Bury it.
  3. Not count as a known. then I am satisfied.
mortii commented 9 months ago
  1. Mark as name;
    1. Bury it.
    2. Not count as a known. then I am satisfied.

That is reasonable.

A rare issue I want to avoid is somebody that started using morphman. He would be shown cards with more than 1 unknown morph. If he presses "mark as name" not to mark all the other unknowns as known

yes, we want to avoid giving any of those skipped cards the 'am-known' tag

@mortii That's how I also interepted it.

I thought of two potential solutions to this.

1. To auto recalc if someone "mark name" which would be slow

2. To add the card to "seen_today". The issue with this is that `   def update_seen_morphs_today_single_card(self, card_id: int) -> None:` uses card id as input. And trying to get the card id from the reviewer seems like a pain

3. We can also loop through the entire collection and bury any cards that contain the name. But tomorrow when he will study he will have to do it again if he dosen't recalc. To be fair this is would be such a rare event that we can ignore it

A robust solution might not be super simple, mainly because the name might be lost on undo.

Vilhelm-Ian commented 9 months ago

@mortii I was thinking about this I think putting it in seen_morphs_today is the wrong way to go about it. I think we should just loop through the entire collection and bury every card that has only one unknown_morph and that unknonw morph is the name. That way we won't have to worry the fact that the db is rebuild when the user undos

mortii commented 9 months ago

@Vilhelm-Ian I think a simpler solution is to always include all the morphs from names.txt in 'seen morphs today', that basically fixes all the problems I think. I'll try it out and see if it works.

Vilhelm-Ian commented 9 months ago

@Vilhelm-Ian I think a simpler solution is to always include all the morphs from names.txt in 'seen morphs today', that basically fixes all the problems I think. I'll try it out and see if it works.

That's a smart solution. Didn't think of that

mortii commented 9 months ago

@Vilhelm-Ian I think a simpler solution is to always include all the morphs from names.txt in 'seen morphs today', that basically fixes all the problems I think. I'll try it out and see if it works.

This introduces a couple of problems:

I think those problems are ok for the time being, if they turn out to be annoying then we can potentially fix them later.

I also fixed a bug where all morphs were being loaded into 'seen morps' on anki startup, which is pretty bad, so this has been productive.

I'll push a new release now.

github-actions[bot] commented 6 months ago

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.