Commit graph

829 commits

Author SHA1 Message Date
Damien Elmes
c69c4aa486 escape backslash in find&replace
https://anki.tenderapp.com/discussions/ankidesktop/35903-bug-find-and-replace-breaks-when-replacing-with-latexmathjax-commands
2019-09-24 15:46:26 +10:00
Damien Elmes
f7bbbfdbb1 fix negative due dates in filtered decks
https://anki.tenderapp.com/discussions/ankidesktop/35978-rebuilding-filtered-deck-on-experimental-v2-empties-deck-and-reschedules-to-the-year-1745

this means affected cards will not have the selected ordering applied,
but that seems preferable to the alternatives
2019-09-24 15:38:33 +10:00
Damien Elmes
9e3cd31e59 use locales instead of two digit lang codes
and move away from launchpad
2019-09-23 21:18:03 +10:00
Arthur Milchior
93afd44133 when sorting by easiness, put new card separately 2019-09-18 16:58:29 +02:00
Damien Elmes
4bfb8e8881 Merge pull request #328 from lovac42/clearUndoOnSchedConvert
clears undo before changing schedulers
2019-08-31 11:38:07 +10:00
Damien Elmes
ed0a1a255a Merge pull request #327 from Blauelf/patch-1
Prevent non-integer ivl when importing from Mnemosyne
2019-08-31 11:34:54 +10:00
lovac42
390dece050 clears undo before changing schedulers 2019-08-30 20:55:38 -04:00
Damien Elmes
59900ee458 statsbg credit/link 2019-08-31 10:47:01 +10:00
Blauelf
7e8604fde2 Prevent non-integer ivl when importing from Mnemosyne
A reddit user had a few issues when importing from Mnemosyne, one of which was non-integer values interpreted as "v2 scheduler bug". I assume that's the line where they originated.
https://www.reddit.com/r/Anki/comments/cxcv27/what_just_happened_cards_with_v2_scheduler_bug/
2019-08-30 14:56:44 +02:00
lovac42
68b8331347 rm unnecessary step 2019-08-20 23:31:04 -04:00
lovac42
6bddae5817 Fix case sensitive field names so that 'apple' and 'Apple' both show up in drop down list when performing a search and replace. 2019-08-20 22:28:45 -04:00
Damien Elmes
a2b7bcb3b1 Merge pull request #323 from SebastienGllmt/patch-1
Allow disabling timeTicks
2019-08-17 18:50:44 +10:00
Damien Elmes
9f27be3095 ensure random distribution of due cards for a given day in v2 sched 2019-08-17 18:45:00 +10:00
Sebastien Guillemot
afc741de7c Allow disabling timeTicks 2019-08-16 01:58:10 +10:00
Damien Elmes
54ba318171 cleanup recording on cancel 2019-07-14 11:19:29 +10:00
Damien Elmes
c2ea31422e fix flag changes in browser not syncing 2019-07-09 15:16:02 +10:00
Damien Elmes
b906593158 bump version 2019-06-27 10:27:31 +10:00
Damien Elmes
eca12446fa put deck fix messages in the collection log 2019-06-27 09:46:56 +10:00
Damien Elmes
51f9e7eec9 fix v2 relearning reset bug
https://anki.tenderapp.com/discussions/ankidesktop/34560-schedule-switching-bug
2019-06-14 09:15:48 +10:00
Damien Elmes
464ba4264b bump version 2019-06-11 15:25:45 +10:00
Damien Elmes
ca6142ccf0 fix v2 lrn scheduling bug
https://anki.tenderapp.com/discussions/ankimobile/9714-deleting-custom-study-deck-skips-learning-step-time
2019-05-31 15:05:12 +10:00
Damien Elmes
1a45b6e361 tweak type answer note type 2019-05-14 17:05:37 +10:00
Damien Elmes
0303939568 fix learn steps being assigned on relearn in v2 2019-04-30 09:27:28 +10:00
Damien Elmes
a0fe168137 wrap due numbers instead of capping them, and add warning
Wrapping (mostly) preserves the original card order, and starting
at 1M makes it easier for users to find the cards with the high
due numbers even after they have wrapped.

related discussion:
https://anki.tenderapp.com/discussions/ankidesktop/33664-due-value-of-new-card-being-1000000
2019-04-29 18:17:33 +10:00
Damien Elmes
aa1cad76a9 bump version 2019-04-29 14:51:34 +10:00
Damien Elmes
11bfe205d8 cleanup mpv on exit 2019-04-29 14:36:51 +10:00
Damien Elmes
60afbcf62d daemonize helper threads so that sys.exit() during startup works
with daemonize set to False, the app hangs waiting on the helper threads
2019-04-29 14:36:44 +10:00
Damien Elmes
d1d7f230fe catch full mpv request queue
presumably happening if multiple requests are sent before previous
response fetch times out

Caught exception:
  File "aqt/webview.py", line 314, in handler
  File "aqt/editor.py", line 351, in <lambda>
  File "aqt/addcards.py", line 225, in afterSave
  File "aqt/addcards.py", line 231, in doClose
  File "aqt/addcards.py", line 210, in _reject
  File "anki/sound.py", line 417, in clearAudioQueue
  File "anki/sound.py", line 117, in clearQueue
  File "anki/mpv.py", line 558, in command
  File "anki/mpv.py", line 352, in _send_request
  File "anki/mpv.py", line 311, in _send_message
<class 'anki.mpv.MPVTimeoutError'>: unable to put request
2019-04-21 18:56:11 +10:00
Damien Elmes
98ce38dcdd ensure the list of note types is not empty
fixes an issue opening the add screen if a user manages to delete
all their note types with an add-on or a sync
2019-04-21 18:02:12 +10:00
Damien Elmes
609262624f another attempt to preventing mpv from accessing standard config
https://github.com/dae/anki/pull/296
2019-04-09 15:32:44 +10:00
Damien Elmes
78fc2e82c0 psutil may throw OSError when calling .exe()
https://anki.tenderapp.com/discussions/ankidesktop/33406-failed-to-execute-script-runanki
2019-04-08 15:56:06 +10:00
Damien Elmes
9e8a29532d Merge pull request #290 from jianli/change-chunk-by-deck-age
Fix chunk size for newer decks
2019-03-13 12:23:35 +10:00
Damien Elmes
47692a02f5 Update stats.py
disable spurious pylint warning
2019-03-11 15:12:21 +10:00
Damien Elmes
f6da277ab7 bump version 2019-03-11 14:36:19 +10:00
Damien Elmes
732aa38f93 Revert "moveTemplate slightly quicker"
This reverts commit 450f260781.

This caused a regression:
https://github.com/dae/anki/pull/294
2019-03-11 13:49:58 +10:00
Jian Li
4dc49322ee Clean up code 2019-03-10 18:20:08 -07:00
Jian Li
5079b8aab8 Restrict bin count to 100 2019-03-10 17:30:14 -07:00
Jian Li
ba9c89ccb0 Change bin width (chunk) based on deck age 2019-03-10 17:19:16 -07:00
Jian Li
b4732efdf1 Refactor chunk calculation 2019-03-10 16:37:06 -07:00
Damien Elmes
b6e12e13cb bump version 2019-03-07 18:43:56 +10:00
Damien Elmes
8c6d5b6332 keep json in utils for add-on compat
https://anki.tenderapp.com/discussions/beta-testing/1399-anki-2110-beta#comment_47036452
2019-03-06 07:18:26 +10:00
Damien Elmes
856c11082e cleanup old mplayer instances in profile unload as well
possible fix for users still having permission errors when
renaming profiles
2019-03-05 09:01:31 +10:00
Damien Elmes
d118c5cc9f add option to strip html in export 2019-03-05 08:57:53 +10:00
Damien Elmes
2319ba8706 strip [[type:...]] in card export 2019-03-05 08:55:57 +10:00
Damien Elmes
75a95ee1fb tidy up unused imports 2019-03-04 17:25:19 +10:00
Damien Elmes
300231e318 use raw strings for regexs 2019-03-04 17:03:43 +10:00
Damien Elmes
60aac80a2c fix wrong var name in previous warning fix 2019-03-04 17:02:52 +10:00
Damien Elmes
71f2b0627d fix inconsistent indentation 2019-03-04 16:54:22 +10:00
Damien Elmes
7d0f7ae33c fix some warnings 2019-03-04 16:01:10 +10:00
Damien Elmes
b9957d820a use distro in place of deprecated dist() method 2019-03-04 15:39:10 +10:00
Damien Elmes
8981da61c1 silence some spurious errors and remove some unused code 2019-03-04 11:22:40 +10:00
Damien Elmes
085679d5d1 move versionWithBuild into anki module 2019-02-28 08:37:42 +10:00
David Lönnhager
f087d77ce0 Fix permissions error on Windows 2019-02-27 02:51:28 +01:00
Damien Elmes
95bdcfbb11 bump version 2019-02-24 16:20:49 +10:00
Damien Elmes
a42bfe2839 send build number when syncing too 2019-02-19 08:04:25 +10:00
Damien Elmes
5ca567362c style and arg order fix 2019-02-18 12:44:04 +10:00
Arthur-Milchior
2608513381 Show deck of the addCard window 2019-02-16 12:25:22 +01:00
Arthur-Milchior
7e72361b22 Correct deck when previewing an existing card 2019-02-16 11:28:50 +01:00
Damien Elmes
d62794779d allow running with pyaudio missing 2019-02-13 09:36:39 +10:00
Damien Elmes
f8bdf0ceec revlog changes need to limited to (re)learning cards
if you switched schedulers with the git code or the beta, please
restore from a backup prior to the switch
2019-02-11 18:12:44 +10:00
Damien Elmes
da4e5955b3 rollover may not be set 2019-02-08 16:31:56 +10:00
Damien Elmes
77bd141638 cleanup old mplayer instances after crash
fixes
https://anki.tenderapp.com/discussions/ankidesktop/31908-no-consigo-renomear-meu-nome-no-anki
2019-02-06 09:03:39 +10:00
Damien Elmes
a7eb6bb357 update copyright and clarify licenses 2019-02-05 14:01:33 +10:00
Damien Elmes
8261873364 make sure bulk flag changes sync
https://anki.tenderapp.com/discussions/ankidesktop/31774-flag-syncing-bug
2019-02-05 13:01:07 +10:00
Damien Elmes
852b9b60d7 support {{CardFlag}}
https://anki.tenderapp.com/discussions/ankidesktop/32158-flags
2019-02-05 13:00:47 +10:00
Damien Elmes
5a1aaf1426 don't outline answer buttons graph
small numbers lead to the outline overlapping the graph bounds
2019-02-05 12:40:05 +10:00
Damien Elmes
7dada26674 fix decimal intervals in revlog as well 2019-02-05 12:30:22 +10:00
Damien Elmes
9e540ea5e6 shift revlog eases when turning v2 sched on/off
fixes old 'good'/'easy' answers showing up as 'hard'/'good' in
the graphs
2019-02-05 12:30:01 +10:00
Damien Elmes
fb6082c572 show all four possible eases in v2 sched learning ease graph 2019-02-05 12:27:17 +10:00
Damien Elmes
88050fc4e7 fix v2 sched+hourly retention graph issue 2019-02-05 12:26:36 +10:00
Damien Elmes
b50edbd3ae fix due column as well in db check 2019-02-04 14:33:53 +10:00
Damien Elmes
89d784a0d7 ensure today and dayCutoff are integers
https://github.com/dae/anki/pull/272
2019-02-04 14:29:52 +10:00
Damien Elmes
bc8bd7b092 add decimal ivl fix to fixIntegrity() 2019-01-29 08:17:24 +10:00
Damien Elmes
ff0d478694 add .cursor() 2019-01-29 08:17:10 +10:00
Damien Elmes
914077e807 make sure lapse % doesn't create decimal intervals
issue reported on
https://github.com/dae/anki/pull/272
2019-01-29 08:01:23 +10:00
Arthur-Milchior
450f260781 moveTemplate slightly quicker
When a template is moved, only move the ord of cards whose position
did change.
2019-01-20 15:46:58 +01:00
Damien Elmes
c292964095 bump version 2019-01-02 15:24:00 +10:00
Damien Elmes
d9e4a1c98b make sure we normalize deck names on input
https://anki.tenderapp.com/discussions/ankidesktop/31635-anki-crashes-when-new-card-is-added
2018-12-24 10:03:59 +10:00
Damien Elmes
bf38475ffc deck fix print statements may be running in ascii environment
this should probably use the collection log in the future
2018-12-24 09:54:59 +10:00
Damien Elmes
ae591ce240 fix recording overflow handling 2018-12-22 13:41:35 +10:00
Damien Elmes
25c4491a21 bump version 2018-12-18 19:42:00 +10:00
Damien Elmes
328c73d0bc ignore broken reset hooks in database check
ideally the original code should be correctly cleaning up the hooks,
but if it does not, then we don't want to repeatedly present the user
with confusing errors when they try to check their database is ok.
2018-12-15 13:14:33 +10:00
Damien Elmes
0c6cd8f1e8 restart mpv if it stops responding
https://anki.tenderapp.com/discussions/ankidesktop/31433-error
2018-12-13 21:30:17 +10:00
Damien Elmes
0e62ab7699 bump version 2018-12-13 21:03:56 +10:00
Damien Elmes
6e09d1c6ec find comparisons needs to be normalized
this data should probably be normalized when it's originally
added to the collection

https://anki.tenderapp.com/discussions/ankidesktop/31409-cant-search-by-deck-when-searching-decks-containing-arabic-text
2018-12-13 20:36:04 +10:00
Damien Elmes
9a726d0e4e bump version 2018-12-10 15:17:21 +10:00
Damien Elmes
87575674f9 scan for due learning cards more frequently 2018-12-10 12:11:45 +10:00
Damien Elmes
2e0ff282cc disable wal on win32
another attempt at fixing 'database locked' errors on windows,
based on the suspicion that pysqlite is holding an open statement
handle that is preventing the switch from wal mode on close

also remove unused sync arg
2018-12-10 09:53:02 +10:00
Alexey Lebedeff
8a992a9f30 Make quotes consistent with surroundings 2018-12-01 10:52:19 +01:00
Alexey Lebedeff
ba67e3e71c Fix searching for python 3.7
3.7 introduced a change to `re.escape()`, which no longer escapes
`%`. By using `re.escape("%")` instead of a literal, we can detect
a proper form at runtime.
2018-11-30 10:44:39 +01:00
Damien Elmes
c1f9f4e277 bump version 2018-11-27 19:40:27 +10:00
Damien Elmes
aeea07498c update learning cutoff time periodically
prevents users from having to leave and return to the deck to show
cards that have become due during the study session

https://anki.tenderapp.com/discussions/ankimobile/8530-ankimobile-with-experimental-schedule-not-showing-due-cards-in-realtime
2018-11-27 19:37:46 +10:00
Damien Elmes
0560b6c4b2 limit find&replace fields to selected notes 2018-11-27 16:42:00 +10:00
Damien Elmes
4fb7fb07fd find&replace should not be case sensitive on field 2018-11-27 16:34:48 +10:00
Damien Elmes
d532726adb cap filename length when attaching media to cards
https://anki.tenderapp.com/discussions/ankidesktop/30953-can-not-paste-or-upload-images-into-deck
2018-11-27 14:45:38 +10:00
Arthur Milchior
690680bbe3 Using cardIds in AnkiExporter 2018-11-26 10:47:26 +01:00
Arthur-Milchior
708cc0a628 Change order of new cards
This commit corrects the following bug:

* Create a note N in an empty deck D of type basic (reverse), with
only some back, no front. Only card 2 will be generated.
* Edit the note, add a front. Card 1 will be generated.
* In the main window, try to learn deck D. In anki, currently, you'll
  see Card 2 first. According to the manual (and to my common sens),
  it should be Card 1 first.

This commit correct this bug, and ensure that new cards are seen
according to their order, and not to their creation date.
2018-11-20 21:50:36 +01:00
Damien Elmes
28c8d6eefa be more verbose in importing dialog
Many users seem to get confused when duplicates are not imported,
so we list out what's being skipped now to help the users to be able
to search for the content.
2018-11-14 16:58:47 +10:00
Damien Elmes
9b1b142906 bump version 2018-11-13 11:30:27 +10:00
Damien Elmes
f576d19426 improve handling of invalid deck trees
- move checking code out of the schedulers and into the deck manager
- ensure we can fix the problem in one loop - the previous recursive
approach could lead to stack overflows if the top level of a large
deck tree was missing. this was also the cause of the sqlite
'interrupted' error that some users were seeing
2018-11-09 15:04:35 +10:00