Commit graph

848 commits

Author SHA1 Message Date
Damien Elmes
c7620478cf v2: limit learn delay fuzz to 5 minutes and sub-day 2018-07-28 13:56:56 +10:00
Damien Elmes
066adfd933 use scheduled ivl in lapse calculation
reverting to 2.0 behaviour

https://anki.tenderapp.com/discussions/effective-learning/1300-lapse-duration-not-being-honored-for-lapses-of-multi-stepday-relearn-cards
2018-07-27 15:02:41 +10:00
Damien Elmes
3c1aa8242f chunk deletions to reduce load on AnkiWeb 2018-07-26 21:34:53 +10:00
Damien Elmes
ee5eedeb3b strip out unused syncing code 2018-07-26 19:41:52 +10:00
Damien Elmes
e0f24b626f better handle invalid deck list
deleting will fail if the problem deck is the default deck - better to
rename instead

fixes infinite recursion errors
2018-07-26 11:34:10 +10:00
Damien Elmes
9a0a3a2674 bump version 2018-07-23 13:59:02 +10:00
Damien Elmes
991aa7d402 fixes for mpv focus switching
- avoid changing focus if an Anki window is already focused
- only try to restore focus when playing videos
2018-07-23 13:57:09 +10:00
Damien Elmes
d78a6eb3fb fix invalid cards when moving from v2->v1 sched
type needs to be reset from 3->2 when relearning cards removed from
learning

https://anki.tenderapp.com/discussions/beta-testing/1210-scheduling-error
2018-07-16 16:29:53 +10:00
Damien Elmes
134a788f9f bump version 2018-07-11 22:40:05 +10:00
Damien Elmes
2fdd9c89d5 differentiate easy button more when reviewing early
apply half the easy bonus post ivl calculation, or else very early
reviews with longer intervals appear to have the same intervals as
answering 'good'
2018-07-11 22:18:46 +10:00
Damien Elmes
f656a2da09 support customizing hard factor 2018-07-11 21:23:22 +10:00
Damien Elmes
4dbf51ef9a don't pull learning cards into v1 filtered deck
preventing emptying is harder - operations like suspending
don't expect remFromDyn() to fail
2018-07-11 20:28:14 +10:00
Damien Elmes
1e63ed2965 remove study card count cap in v2 sched
- cap kept for the deck list, as we need to calculate it for multiple
decks
- v2 sched can calculate review limit faster, as it doesn't have to
check each deck separately
- filtered deck cap is same as in interface
- as this will be deployed on ankiweb, beta clients will need to update
or risk getting sanity check errors when syncing with high due counts
2018-07-11 20:03:36 +10:00
Damien Elmes
7bc6b2beb0 Merge pull request #240 from maiself/avoid-reordering-when-importing
Avoid reordering entire deck when importing notes
2018-07-11 15:24:13 +10:00
Mai Lavelle
8832bfb7ee avoid reordering entire deck when importing notes
No need to reorder existing cards, which may have been manually
ordered by the user, when importing notes if we can give cards
a proper due number from the start. Retrieving any sibling's
due number for this is easy as all relevant cards will have
already been queried for when generating the new cards.
2018-07-06 00:49:47 -04:00
Damien Elmes
9f7464fac2 fix media check with [$]{{c1::a}}{{c2::b}}[/$]
https://anki.tenderapp.com/discussions/ankidesktop/28625-cloze-deletion-in-latex-check-medias-regression-in-21

appears to have broken in 61cc3cec86
2018-06-28 13:11:04 +10:00
Damien Elmes
2949d4ceec bump version 2018-06-25 20:27:45 +10:00
Damien Elmes
51f50e7b4c make sure we don't put suspended leeches back in the learning queue
fixes
https://anki.tenderapp.com/discussions/beta-testing/1119-anki-210-beta-38#comment_45555453
2018-06-25 20:27:26 +10:00
Damien Elmes
3486511d02 Merge pull request #239 from emrysn/master
Update lang.py with correct Romanian language option
2018-06-18 10:19:46 +10:00
Floren
cb7df4972f Update lang.py 2018-06-16 21:32:47 +03:00
Damien Elmes
580deee1be bump version 2018-06-15 11:59:22 +10:00
Damien Elmes
5bc2b6395f fix detection of multiline cloze deletions 2018-06-15 11:24:59 +10:00
Damien Elmes
d3fd519d0b remove comments when stripping
gets rid of unwanted metadata from ms word pastes
2018-06-09 16:27:46 +10:00
Damien Elmes
34eb85cc77 make sure we don't import cards into a filtered deck 2018-06-08 14:51:55 +10:00
Damien Elmes
d352ec7581 ignore delay in hard case
https://anki.tenderapp.com/discussions/ankidesktop/27627-request-allow-setting-maximum-delay-for-interval-calculation-in-overdue-cards
2018-06-01 12:24:11 +10:00
Damien Elmes
1333019557 bump version 2018-05-31 16:26:31 +10:00
Damien Elmes
b7d3e5fa68 speed up v2 deckDueList() in many decks case 2018-05-31 16:21:33 +10:00
Damien Elmes
69cb9a9d37 fix incorrect scheduling when importing cards in relearning
private link:
https://anki.tenderapp.com/discussions/ankidesktop/28234
2018-05-31 13:27:59 +10:00
Damien Elmes
0562c7ba45 need to record active window prior to playing in mpv 2018-05-31 13:22:17 +10:00
Damien Elmes
f8101d0084 fix regular reviews being treated as relearning in v2 sched 2018-05-31 12:44:23 +10:00
Damien Elmes
3b91c1d6c5 cache deck name->obj map to improve many decks case 2018-05-29 19:30:13 +10:00
Damien Elmes
cc6ad80dd0 add Armenian lang 2018-05-28 11:23:24 +10:00
Damien Elmes
e6ef4267ca bump version 2018-05-10 16:49:24 +10:00
Damien Elmes
0487620ce2 bump version 2018-05-01 14:41:18 +10:00
Damien Elmes
73ddd79967 work around video focus stealing
https://anki.tenderapp.com/discussions/ankidesktop/27401-bug-when-playing-a-video-on-anki-for-mac-anki-lanches-mplayer-and-doesnt-quit-it-or-return-to-anki
2018-04-30 17:12:26 +10:00
Damien Elmes
7ae073e955 check upload doesn't exceed ankiweb limits
better to abort prior to upload instead of giving a misleading error
2018-04-30 16:58:00 +10:00
Damien Elmes
cdee96baa6 add envvar to disable ssl verification 2018-04-30 15:36:55 +10:00
Dudemanguy911
0f6312ee68 force mpv --keep-open=no 2018-04-08 11:18:51 -05:00
Damien Elmes
d07c6e7978 fix memory leak caused by text_factory 2018-03-05 15:27:22 +10:00
Damien Elmes
fe52cc8fc9 bump version 2018-03-01 15:55:17 +10:00
Damien Elmes
5bcb76e176 don't convert quotes to entities on import
https://anki.tenderapp.com/discussions/ankidesktop/26926-bug-report-exporting-than-re-importing-messes-up-quotes
2018-03-01 13:38:06 +10:00
Damien Elmes
ce8f66fac8 normalize to NFC on all platforms
APFS is normalization-preserving, which results in spurious changes
being detected if we assume we'll receive NFD from file listings

this needs to be ported to 2.0.x as well
2018-02-28 16:22:06 +10:00
Damien Elmes
c8b5c9da42 increase default rev limit to 200 2018-02-27 12:58:24 +10:00
Damien Elmes
841e88c2a8 change sibling burying to default to off
causes too much confusion for new users
2018-02-22 17:00:11 +11:00
Damien Elmes
29597abe85 give hard a 1.5x interval when there's only one (re)learning step
otherwise we end up with two buttons that do the same thing
2018-02-06 15:41:56 +10:00
Damien Elmes
fe85b3bf26 misleading spacing 2018-02-06 11:47:28 +10:00
Damien Elmes
2c8668a5f9 bump version 2018-02-05 16:10:29 +10:00
Damien Elmes
80487ad664 rename _restoreFromFiltered
and use same logic as restoreQueueSnippet
2018-02-02 19:10:35 +10:00
Damien Elmes
b9932249e3 remove _cidsByDid()
no longer necessary
2018-02-02 16:55:53 +10:00
Damien Elmes
32241b9cb1 fix is:buried in v2 scheduler 2018-02-02 16:17:26 +10:00
Damien Elmes
067191b8cc simplify rev card answering 2018-02-02 15:19:41 +10:00
Damien Elmes
3d3cf3d135 fix no relearn steps case in v2 sched 2018-02-02 14:30:53 +10:00
Damien Elmes
4f281b5db0 v2 sched cleanups 2018-02-02 12:44:56 +10:00
Damien Elmes
386329fc09 include average answer time for today 2018-01-31 17:35:22 +10:00
Damien Elmes
ce89d769c3 bump version 2018-01-31 15:34:04 +10:00
Damien Elmes
58f51ca095 make sure we don't import v1 scheduling into a v2 collection 2018-01-31 15:33:58 +10:00
Damien Elmes
7013cbcd57 experiment with counting learning cards instead of learning steps
When studying, the learning count now indicates the number of
learning cards due within the learn ahead limit, instead of the total
number of learning steps required to complete that day.

Also fix the ineffective limit clauses in the learning counts.
2018-01-31 14:50:17 +10:00
Damien Elmes
bcbc6ee44a fix check for nesting under filtered deck 2018-01-31 11:40:16 +10:00
Damien Elmes
a681a8e299 enable syncing w/ v2 scheduler, and bump sync version
any client using a sync version of 9 must be able to handle
the V2 scheduler
2018-01-30 17:52:03 +10:00
Damien Elmes
c474f58748 enforce schema version; allow importing+exporting v2 scheduler
To avoid all sorts of problems, we need to ensure cards scheduled with
the V2 scheduler are not studied in older clients. Unfortunately we
can't just bump the file's schema version, as the existing clients will
freely import files created with newer versions. This patch changes
that, so things should be a bit easier in the future.

In the mean time, we need a way to prevent older clients from importing
files created with the V2 scheduler. To do this, we switch to using a
'collection.anki21' file in the archive, and include a dummy collection
.anki2 file.

The code has been tested with both deck and collection packages, but
exporting deck packages w/ scheduling info will remain disabled until
the V2 scheduler has had more testing.
2018-01-29 14:12:04 +10:00
Damien Elmes
4545db7e8c remove unused bundled certs 2018-01-27 16:08:31 +10:00
Damien Elmes
82957a1c4f bump version 2018-01-27 15:48:27 +10:00
Damien Elmes
15f4304920 re.escape leaves _ alone in python 3 2018-01-27 15:15:07 +10:00
Damien Elmes
8d536a16e8 fix error on final step of lapsed card
https://anki.tenderapp.com/discussions/beta-testing/968-experimental-scheduler-in-anki-210beta31#comment_44552449
2018-01-22 12:10:39 +10:00
Damien Elmes
a5dbb8287d bump version 2018-01-22 11:25:09 +10:00
Damien Elmes
fa3b70236c linux mpv doesn't understand --input-media-keys 2018-01-21 10:34:29 +10:00
Damien Elmes
13d7319c60 bump version 2018-01-20 16:12:09 +10:00
Damien Elmes
7c79f24916 add option to show day learn cards before reviews 2018-01-20 16:07:57 +10:00
Damien Elmes
65b81b0a47 make preview delay customizable 2018-01-20 15:26:11 +10:00
Damien Elmes
b8c498b570 fix counts in preview mode
We can't preserve the original queues when in preview mode, as
otherwise the due counts report the remaining steps of cards in
the learning queue, instead of just 1.

Rather than the rather complicated approach of making the learning and
deck list code aware of the current mode we're in, preview mode moves
all cards to the review queue when the filtered deck is built - just as
cards are moved to the new queue in Anki 2.0.x. The reason for the
review queue is that users were frequently confused when cards appeared
as new - hopefully this is slightly less confusing.
2018-01-20 14:22:57 +10:00
Damien Elmes
96cb1e6dd9 return to win32 audio driver on windows
fixes various playback issues some users were experiencing
2018-01-20 13:41:12 +10:00
Damien Elmes
43d5589e6a prevent exceptions when invalid utf-8 in db 2018-01-20 11:23:49 +10:00
Damien Elmes
f6669cc362 work around some decks with mod time stored as string 2018-01-19 11:42:06 +10:00
Damien Elmes
07dcacf09b remove format literals so we can support python 3.5 2018-01-16 16:07:30 +10:00
Damien Elmes
0612e20dfe bump version 2018-01-14 19:32:31 +10:00
Damien Elmes
5b8f2ad4e5 bump version 2018-01-14 17:53:09 +10:00
Damien Elmes
1f818aa10b disable syncing and deck exports for v2 sched 2018-01-14 17:35:59 +10:00
Damien Elmes
5f22a067e2 extra newline 2018-01-14 17:01:39 +10:00
Damien Elmes
3c728e60f5 support sched versions in collection 2018-01-14 16:58:04 +10:00
Damien Elmes
59aa78f253 code in new scheduler to move between versions 2018-01-14 16:57:40 +10:00
Damien Elmes
1b88490bb1 add old sched code back 2018-01-14 16:55:07 +10:00
Damien Elmes
cdb3ee4702 rename new sched code to schedv2.py 2018-01-14 16:54:48 +10:00
Damien Elmes
0482a37517 support a second filter in filtered decks 2018-01-14 13:08:38 +10:00
Damien Elmes
f671a7aa99 store day rollover relative to local time 2018-01-14 12:16:53 +10:00
Damien Elmes
3f3fbd6fe3 make sure we log the correct type when card.type=3 2018-01-14 12:16:53 +10:00
Damien Elmes
f6176748c5 don't fetch reviews in deck order
- fetch reviews from all child decks at once, sorted by due order
- shuffle the gathered cards as we did previously
- review limits on child decks are ignored - only the current deck and
its parents control what the limit is
- to make the deck list consistent with actual counts, we can't sum the
child counts, as the sum in the parent limit>child limit case may not
reflect the actual number of cards that would be presented
2018-01-14 12:16:53 +10:00
Damien Elmes
65c779f25d distinguish between buried siblings and manually buried cards 2018-01-14 12:16:53 +10:00
Damien Elmes
38cd7f543a preserve learning/filtered state when suspending/burying
add new card type of 3 so we can distinguish cards in relearning from
normal reviews
2018-01-14 12:16:53 +10:00
Damien Elmes
a312ccf32e experiment with simple resched=off case to 'preview mode'
the previous approach meant we weren't able to preserve the card state
exactly when cards were in learning, since we didn't record the step
position prior to cards being moved into the filtered deck.

it also meant the answer buttons needed to change depending on state - 4
for cards in learning/review, but 2 when the card is on the final step
or is a review.

instead, in preview mode cards always have 2 buttons: again will repeat
again after a delay, and good immediately removes the card and restores
it to its previous state.

to accomplish this, we use a separate queue #, as the learn count
always needs to have a 1:1 correspondence to the number of cards
2018-01-14 12:16:53 +10:00
Damien Elmes
accf75be26 tweaks to interval constraining
- move fuzzing into _constrainedIvl() so it's applied prior to limits
like maxIvl

- don't fuzz early reviews, so cards get the same interval if a filtered
deck is rebuilt again
2018-01-14 12:16:53 +10:00
Damien Elmes
60db50a285 use the review queue for undue reviews 2018-01-14 12:16:53 +10:00
Damien Elmes
4b581c9f77 schedtest changes, squashed from local branch 2018-01-14 12:16:53 +10:00
Carl Hofmeister
430d38223c Fix string decode error when importing csv files 2017-12-31 14:01:47 -06:00
Damien Elmes
d08f6c4f46 bump version 2017-12-24 22:27:09 +10:00
aakatov
793e12a84c fix play sound with HTML special symbols in its filename 2017-12-23 12:36:26 +03:00
Damien Elmes
b5c17cb370 bump version 2017-12-22 21:48:13 +10:00
Damien Elmes
9230211809 different cloze colour in night mode 2017-12-20 16:05:28 +10:00
Damien Elmes
174e1a46b3 fix error when importing 2017-12-12 11:55:27 +10:00
Damien Elmes
39bc5d42ae fix mpv warnings 2017-12-11 17:26:25 +10:00
Damien Elmes
83b220f931 more open() and regex strings 2017-12-11 17:25:51 +10:00
Damien Elmes
7bc9fd6d04 move regex flags to start of string 2017-12-11 16:42:19 +10:00
Damien Elmes
ebfc475efe fix 'unclosed file' warnings with python -Wall 2017-12-11 16:38:15 +10:00
Damien Elmes
ccb39c5f50 cgi.escape is deprecated 2017-12-11 16:20:00 +10:00
Damien Elmes
4875d0502e add the ability to disable cert verification 2017-12-07 17:15:20 +10:00
Damien Elmes
54780dcd53 work around pops in recording start
https://anki.tenderapp.com/discussions/ankidesktop/26005-when-recording-sound-on-mbp

on my machine, the pops start around sample 2048 of a 44.1khz recording,
and only for the first recording after the audio hardware has gone to
sleep
2017-12-05 11:07:52 +10:00
Damien Elmes
857c9a5cea bump version 2017-12-04 12:58:29 +10:00
Damien Elmes
5f787d6d3c play question audio when preview set to 'show both sides' 2017-12-04 12:45:22 +10:00
Damien Elmes
b2c2cbf421 fix time translation patch 2017-12-04 12:33:23 +10:00
Damien Elmes
7c520c55df night mode 2017-12-04 12:20:56 +10:00
Damien Elmes
7fbbee43e6 add catalan 2017-12-03 16:06:56 +10:00
Piotr Kubowicz
b821c70929 Allow to better translate "in x minutes"
"There is 1 minute" and "in 1 minute" need to be translated
differently in Slavic languages.

Additionally remove unused afterTimeTable.
2017-11-30 20:03:51 +01:00
Damien Elmes
63c03eea83 bump version 2017-11-27 11:17:42 +10:00
Damien Elmes
e3a29ac3d1 accept current and future mnemosyne imports 2017-11-27 10:49:38 +10:00
Damien Elmes
b632a1805d restore media dir mod check
https://anki.tenderapp.com/discussions/beta-testing/853-anki-210-beta-21/page/1#comment_44071381
2017-11-20 14:22:53 +10:00
Damien Elmes
3cda126717 bump version 2017-11-17 17:35:36 +10:00
Damien Elmes
a97f1d87ff detect image extension, catch errors, add timeout 2017-11-17 17:30:01 +10:00
Damien Elmes
ee4e1cadbf fix crash when deleting nested default deck
https://anki.tenderapp.com/discussions/ankidesktop/25777-bug-report-syn
2017-11-14 13:13:52 +10:00
Damien Elmes
7d9530377e bump version 2017-11-11 12:15:38 +10:00
Damien Elmes
1631160ddc favour most recent modified when importing template changes 2017-11-11 12:11:45 +10:00
Damien Elmes
97833c71ad fix stutter when multiple audio files on card on windows
setting playlist pos to 0 was causing half-played sound to restart
2017-11-10 19:52:20 +10:00
Damien Elmes
3da4b9f60e bump version 2017-10-27 18:07:29 +10:00
Damien Elmes
87d19a2619 bump version 2017-10-26 19:57:47 +10:00
Damien Elmes
ffcd0833be bump version 2017-10-25 20:47:00 +10:00
Damien Elmes
86c50f067c drop experimental prewrap mode
- pasting in prewrap mode had been broken for a while and nobody noticed
- needs changes to export code and cloze handling code to deal with the
newlines
- newline rewriting in filterNode() is likely fragile
- may revisit post 2.1
2017-10-25 19:18:00 +10:00
Damien Elmes
d35210c42b don't leave a wav file lying around when recording 2017-10-25 18:35:39 +10:00
Damien Elmes
61cc3cec86 fix detection of media refs in cloze
https://anki.tenderapp.com/discussions/beta-testing/796-another-check-media-issue
2017-10-18 21:56:57 +10:00
Damien Elmes
3b23cdafc2 bump version 2017-10-13 13:12:36 +10:00
Damien Elmes
6a61516622 don't capture media keys 2017-10-13 13:11:22 +10:00
Damien Elmes
0fa24f4e0b probable fix for win32 startup errors; add timeout to mpv start 2017-10-13 12:14:40 +10:00
Damien Elmes
f87bd23f3f bump version 2017-10-11 14:50:28 +10:00
Damien Elmes
37dc564402 bump version 2017-10-05 17:26:48 +10:00
Damien Elmes
253dcd5e1f don't show album artwork 2017-10-05 14:35:58 +10:00
Damien Elmes
1edcafcd5d add coding: line to mpv.py for xgettext 2017-10-02 16:41:14 +10:00
Damien Elmes
fac3ee4604 bump version 2017-10-02 16:38:20 +10:00
Damien Elmes
c9aac25fba integrate _packagedCmd() into mpv for binary distrib 2017-10-02 16:37:52 +10:00
Damien Elmes
28893890f5 turn off mpv debug 2017-09-30 19:33:09 +10:00
Damien Elmes
975f19b642 use named pipes for mpv on windows
currently using non-blocking mode which involves a sleep in the read
loop - overlapped i/o might be a better option in the future
2017-09-30 19:32:48 +10:00
Damien Elmes
7a3bcc62ae mpv support 2017-09-30 19:29:48 +10:00
Damien Elmes
5c4296d41c mpv.py fixes
- enable input keys for video seeking
- output debug info to stdout so it's not caught by anki's error handler
- before sending a command, check the process is still alive, and
restart if necessary - otherwise a user who closes a video window will
end up with errors
2017-09-30 19:29:48 +10:00
Damien Elmes
4f0afb0a20 add mpv.py 2017-09-30 19:29:48 +10:00
Damien Elmes
5af1d67cef fix normalization in normal import 2017-09-30 19:29:33 +10:00
Damien Elmes
8cfc1e1315 stripHTML() should work when tag split over multiple lines 2017-09-30 15:33:05 +10:00
Damien Elmes
ed0561e914 another fix for mathjax+cloze 2017-09-12 13:53:08 +10:00
Damien Elmes
830258b2b3 Merge pull request #209 from sieben/simplify_comparisons
Simplify comparisons
2017-09-11 15:01:07 +10:00
Damien Elmes
a3c2efee89 Merge pull request #208 from sieben/none_comparison
Comparison with None shouldn't use equality
2017-09-11 15:01:01 +10:00
Rémy Léone
2a2b4a86dd Simplify comparisons 2017-09-10 15:32:51 +02:00
Rémy Léone
4ee2ebdada Comparison with None shouldn't use equality
That type of comparisons should always be done with 'is' or 'is not',
never the equality operators.
2017-09-10 15:30:22 +02:00
Rémy Léone
02fc117096 Remove trailing semicolon 2017-09-10 14:41:38 +02:00
Damien Elmes
f10968769f fix broken cloze deletion 2017-09-10 19:51:25 +10:00
Damien Elmes
2460311f6a bump version 2017-09-10 18:54:08 +10:00
Damien Elmes
9658fbb91e use separate .colpkg extension for collection exports
- allows translations of filename
- allows users to keep multiple collection exports in the same folder
- provides a clearer distinction between deck and collection packages
- the collection/backup .apkg special cases will continue to work in
future 2.1.x releases
2017-09-10 16:58:55 +10:00
Damien Elmes
cb69ff7eac only strip formatting when inside mathjax 2017-09-08 19:35:34 +10:00
Damien Elmes
d91faa67b4 mathjax tweaks
- drop support for $$ in favour of separate opening and closing tags
- add shortcuts to add mathjax
- don't highlight any clozes in blue if field contains mathjax chars
2017-09-08 19:20:37 +10:00
Damien Elmes
d1f35ae909 re.escape() deck search 2017-09-08 15:13:46 +10:00
Damien Elmes
1d257c05ce 'oldest first' now uses the revlog for correct ordering 2017-09-06 13:02:52 +10:00
Damien Elmes
ca6412b6c9 don't force win32 audio output
was added in 2008 as a hack around sound problems users were having, but
it causes problems for other users and prevents overriding in the conf
file, so let's try with the default

report:
https://anki.tenderapp.com/discussions/ankidesktop/24859-poor-playback-with-mono-mp3

originally changed in c50203b9a1
2017-09-04 19:05:02 +10:00
Damien Elmes
62a1382c0d python 3 doesn't save us from misconfigured locales 2017-09-02 13:59:10 +10:00
Damien Elmes
ecb683cdd1 bump version 2017-08-31 22:00:37 +10:00
Damien Elmes
5fd9228273 handle invalid filename encodings
on Linux users can end up creating filenames that can't be encoded to utf8,
which breaks Anki when it tries to store the filename in sqlite
2017-08-31 18:55:25 +10:00
Damien Elmes
c18bd47a6e scan media each time
Experiment with ignoring dirMod and scanning the folder for changes on
each sync. Use scandir() for better performance. Please let me know if
this causes a noticeable slowdown for you.
2017-08-29 10:52:13 +10:00
Damien Elmes
25cb6d3abe bump version 2017-08-28 22:30:05 +10:00
Damien Elmes
3faa82571c warn about subfolders 2017-08-28 22:01:13 +10:00
Damien Elmes
ca37b15aa7 bump version 2017-08-26 15:25:10 +10:00
Damien Elmes
2c9f286026 update python ver dep 2017-08-25 16:39:21 +10:00
Damien Elmes
08e0174f2e remove dupeOnSchemaChange
no longer required now that anki 1.x importing dropped
2017-08-21 13:50:11 +10:00
Damien Elmes
ff2e7b9e81 typo in stats 2017-08-21 11:29:54 +10:00
Damien Elmes
3ad9261c8c catch corrupt media db, fix it in 'check media' 2017-08-17 13:33:54 +10:00
Damien Elmes
e8cc960da3 bump version 2017-08-16 21:53:21 +10:00
Damien Elmes
375c071a26 catch attempts to write outside the media folder
big thanks to David Bailey for discovering this
2017-08-16 21:08:46 +10:00
Damien Elmes
af14051637 add check to see if drag&drop caused a recent bug
user was getting errors because they had a deck starting with double
quotes
2017-08-15 15:11:59 +10:00
Damien Elmes
a353135af3 add type-in-the-answer note type 2017-08-13 19:42:27 +10:00
Damien Elmes
be1514a97b bump version 2017-08-12 17:04:53 +10:00
Damien Elmes
b7be2ad744 clear flags on export 2017-08-12 16:13:53 +10:00
Damien Elmes
71101d041a ditch marked tag in favour of card flags
Users can now mark individual cards with one of four different coloured
flags, instead of relying on a tag that applied to the whole note.

- replaced marking functionality in reviewer and browser with new
flag options
- added flag:x search
- marked and leech tags now show in normal tag list in filter screen,
instead of being treated specially
- the other clients will need updating to set and shown the flags, but
flags set in the beta should be preserved by the other clients
2017-08-12 16:08:10 +10:00
Damien Elmes
1c88315e86 bump version 2017-08-10 21:51:46 +10:00
Damien Elmes
94cf132918 make sure exporting ignores subfolders 2017-08-10 21:06:41 +10:00
Damien Elmes
82aeb57318 Revert "experiment with displaying FrontSide under answer"
This reverts commit a1b0ddb00c.
2017-08-10 15:04:24 +10:00
Damien Elmes
17693f1b63 bump version 2017-08-08 20:05:20 +10:00
Damien Elmes
d5aede7252 bump version 2017-08-07 18:39:29 +10:00
Damien Elmes
a1b0ddb00c experiment with displaying FrontSide under answer
- avoids having to move eyes to answer section
- the fade out/fade in step feels more natural when the
question section moves

feedback welcome
2017-08-07 18:38:35 +10:00
Damien Elmes
e40445a9c4 bump version 2017-08-06 15:30:41 +10:00
Damien Elmes
072489f436 fix unicode error when generating latex 2017-08-06 13:03:32 +10:00
Damien Elmes
0543a4533b add devMode flag to utils
also remove the extra toolbar call in loadProfile(), as we require a
restart to update the translations anyway
2017-08-01 14:28:13 +10:00
Damien Elmes
d2507899c2 bump version 2017-07-31 16:35:18 +10:00
Damien Elmes
96c737f24f fix translations on Mac 2017-07-31 13:59:10 +10:00
Damien Elmes
d6a7cc0a51 bump version 2017-07-28 18:38:42 +10:00
Damien Elmes
8cd20f3352 turn latex svg into a note type option
needed until the other clients support svgs
2017-07-28 18:38:31 +10:00
Damien Elmes
7ad6966943 split js code out into separate files, mathjax improvements
- js code that was previously bundled in .py files is now in the
web folder
- add helpers to create links to bundled files, and update
stdHtml() to accept a list of javascript files to include
instead of text
- render MathJax in card layout and preview screens - these should be
updated in the future to update the document dynamically like the
reviewer does
- start media server earlier so it can be used to serve content for
the toolbar, etc
- work around a bug in WebEngine on Windows that could cause the
media server to hang
2017-07-28 16:35:45 +10:00
Damien Elmes
b1959e5c83 latex fixes
- fix the missing replacement tmp.%s
- use a zoom factor of 2 by default
- look for both png and svg files before creating
2017-07-22 12:36:31 +10:00
Damien Elmes
9cda9334d3 Merge pull request #112 from sigkell/master
Output SVG instead of PNG for LaTeX
2017-07-22 11:00:13 +10:00
Damien Elmes
8a85471374 bump version 2017-07-20 12:17:59 +10:00
Damien Elmes
17bb179d06 experimental prewrap support
- add option to wrap html in implicit pre-wrap environment during
editing and review - defaults to off
- update paste filter to convert divs/Ps to newlines and non-breaking
spaces to normal ones
- catch enter key and write \n instead of creating a new div

also:

- remove extra caretToEnd() call that is no longer required
- add dd/dt/dl to allowed tags
2017-07-20 12:16:47 +10:00
Damien Elmes
9df1947e41 require decorator 2017-07-17 13:18:56 +10:00
Damien Elmes
dffab1376f Merge branch 'master' of github.com:dae/anki 2017-07-17 13:16:06 +10:00
dequis
37ba8832f8 Make hooks.wrap preserve signatures, fixes hooking some pyqt5 callbacks
It looks like pyqt5 is playing dirty and checking the number of args of
functions before calling them. When using hooks.wrap, pyqt5 thinks it
can pass any amount of arguments (because *args) and you get exceptions
like this inside the wrap function, when calling the 'old' function:

>TypeError: onFindDupes() takes 1 positional argument but 2 were given

This commit fixes it by preserving the signature of the wrapped method,
by adding an optional dependency on the "decorator" module.

Making it an optional dependency is probably not the wisest idea but
since this is a small edge case it might be smoother to start like this.

I also added functools.wraps() as a fallback, which won't help much but
is slightly more correct.

See this article for details: https://hynek.me/articles/decorators/
2017-07-16 23:25:34 -03:00
Damien Elmes
4eb3902759 bump version 2017-07-12 11:26:26 +10:00
Damien Elmes
e8777e8630 bump version 2017-07-10 15:22:47 +10:00
Damien Elmes
36ed23e103 fix python version check 2017-07-05 12:28:03 +10:00
Damien Elmes
c392418ba7 bump version 2017-07-05 10:54:27 +10:00
Damien Elmes
4967275973 bump version 2017-06-22 18:09:48 +10:00
Damien Elmes
0abff36cfa bump version 2017-06-07 13:31:16 +10:00
Luke Williams
9e375f1c7b Fix issue where null tag list crashes Mnemosyne import 2017-05-30 17:38:39 -04:00
Damien Elmes
7f7b8fc52f make sure we don't use inherited ld_library_path when calling mplayer 2017-05-22 15:40:04 +10:00
Damien Elmes
1dd17e9f3a when reviews have incorrect due date, make them due today
https://anki.tenderapp.com/discussions/ankidesktop/19394-strange-behavior-with-year-long-intervals#comment_42510830
2017-05-09 12:27:23 +10:00
Damien Elmes
a98c20a22f bump version 2017-04-13 10:53:05 +10:00
Damien Elmes
aa89d06304 Revert "don't rely on cwd in media.py"
This reverts commit 975ca90225.

reverting for now as it breaks showing of images during review
2017-04-11 12:50:33 +10:00
Damien Elmes
17d68cc957 use a clearer name for fmtQA() 2017-03-14 15:48:40 +09:00
Damien Elmes
ef0a28f294 Merge pull request #179 from henrikh/fmtQA
Unify inline card formatting
2017-03-14 15:39:19 +09:00
Henrik Enggaard Hansen
1dfc4466f1 Move card formatting to anki.utils 2017-03-13 15:52:02 +01:00
Joel Kitching
975ca90225 don't rely on cwd in media.py
media.py sets CWD to the media directory of the collection
(collection.media), and relies on that directory being
maintained as CWD throughout execution.  The original CWD
is restored in the close() function.

Remove reliance on CWD being set and maintained throughout
execution of media.py.  Improves portability and usability
in different codebases.
2017-03-07 15:55:40 +08:00
Damien Elmes
4693e71104 bump version 2017-03-05 19:49:24 +10:00
luoliyan
491b8ea63f Allow special characters to be escaped 2017-02-28 08:10:43 +09:30
Damien Elmes
9f37cddfda Merge pull request #169 from luoliyan/regex-tag-removal
Allow wildcard tag deletion
2017-02-22 20:51:23 +10:00
luoliyan
5b43222f52 Remove unneeded condition 2017-02-22 19:31:31 +09:30
luoliyan
dee0fe2880 Escape unsupported regex chars 2017-02-22 18:24:03 +09:30
Damien Elmes
2d96d59512 bump version 2017-02-22 18:36:53 +10:00
Damien Elmes
7aa8499850 Merge pull request #168 from luoliyan/dont-register-nonexistent-tags
Don't register non-existent tags
2017-02-22 18:27:21 +10:00
luoliyan
2d40baa95f Don't register non-existent tags 2017-02-21 17:37:01 +09:30
luoliyan
12c98a21f0 Allow wildcard tag deletion 2017-02-21 17:27:50 +09:30
Damien Elmes
6335dcb90e canonicalize to NFC form on edit/import 2017-02-19 12:49:52 +10:00
Damien Elmes
4430785122 fix error when closing collection on python 3.6 2017-02-08 19:41:44 +10:00
Damien Elmes
506f999581 Merge branch 'master' of github.com:dae/anki 2017-02-08 17:28:30 +10:00
Damien Elmes
227ca090db use a constant for the starting factor 2017-02-08 17:28:12 +10:00
Illia Volochii
13b7e01044 Stop inheriting from object
It is not needed in Python 3.
2017-02-07 00:21:33 +02:00
Damien Elmes
2fc47773b6 show error on invalid search 2017-02-02 21:00:58 +10:00
Damien Elmes
affede8079 bump version 2017-01-29 15:38:18 +10:00
Damien Elmes
04bc1a7766 use sync.ankiweb.net for syncing
media sync goes through the same domain now, avoiding a slow extra
SSL handshake
2017-01-29 14:57:59 +10:00
Damien Elmes
820f87ff0f bump version 2017-01-20 16:07:54 +10:00
Damien Elmes
4380705992 add timeout to sync steps 2017-01-17 15:53:17 +10:00
dequis
9c902aec18 Turn "vacuum analyze" into two commands (fix for sqlite 3.15)
Before sqlite 3.15, the parameter to vacuum was ignored. Since sqlite
3.15, it became a database name parameter. The "vacuum analyze" syntax
was never supported by sqlite, seems to be just a psql thing.

The error for this is "OperationalError: unknown database analyze", and
happens when doing a media sync.
2017-01-15 13:25:21 -03:00
Damien Elmes
b5a8973791 bump version 2017-01-13 22:36:09 +10:00
Damien Elmes
ed07a147f9 support for saving stats to a pdf 2017-01-13 17:36:26 +10:00
Damien Elmes
e6adc3c195 fixes for sqlite on python 3.6
we need to switch to autocommit mode before executing vacuums &
certain pragmas

also removed the pysqlite version workaround; we just use the
python-provided versions in all cases now as it is new enough
2017-01-13 17:00:03 +10:00
Damien Elmes
a05ebdbefb do GC on autosave
- ensures we're not called as part of the db progress callback
- minimises the chance of data loss if a gc causes a crash
2017-01-13 16:20:39 +10:00
Damien Elmes
f238bc772e fix audio on mac 2017-01-09 12:52:52 +10:00
Damien Elmes
c653e39dbe bump version 2017-01-08 21:20:45 +10:00
Damien Elmes
f104044a09 adjust user agent name 2017-01-08 19:57:04 +10:00
Damien Elmes
f6245cdfd1 use requests for http; add progress info back
- wrap request in AnkiRequestsClient so we can keep track of
upload/download bytes without having to monkey patch anything
- force a 64kB buffer size instead of the default 8kB
- show one decimal point in up/down so small requests still give
visual feedback
- update add-on downloading and update check to use requests
- remove the update throttling in aqt/sync.py, as it's not really
necessary anymore
2017-01-08 19:06:32 +10:00
Damien Elmes
e8423f0874 fix a bug that caused media data not to be uploaded 2017-01-02 20:53:15 +10:00
Damien Elmes
03b2ad37d9 add (currently unused) abort command 2016-12-25 12:54:47 +10:00
Damien Elmes
4fbe091c3b don't reload data on close 2016-12-24 15:33:46 +10:00
Damien Elmes
d181133ac0 some sync fixes
- fix an extra \r\n being included at the end of the last form var
- req()s in the middle of a sync should throw an exception if they
receive a 403, as the calling code does not check for an empty return
2016-12-21 10:42:13 +10:00
Damien Elmes
7e34dc47dd bump version 2016-12-17 13:51:00 +10:00
Damien Elmes
f9385572df fix audio not stopping or overlapping
make sure we always send bytes
2016-12-17 13:47:07 +10:00
Damien Elmes
98485621b6 bump version 2016-12-15 21:14:55 +10:00
Damien Elmes
27c23c01d6 some html regexps should be case insensitive 2016-10-24 19:42:03 +10:00
Damien Elmes
2b8d2c9d74 Merge pull request #139 from Self-Perfection/compress_exported_svg_files
Restore compression of SVG files on export
2016-09-05 18:57:09 +10:00
Damien Elmes
5cea6b8a7a Merge branch 'master' of github.com:dae/anki 2016-09-05 18:34:29 +10:00
Christoph Mack
079d551782 Add missing boundary at end of multipart/form-data request body for requests that include no application/octet-stream data
This makes the sync request sent to the /download endpoint valid multipart/form-data according to RFC 2046, 5.1
2016-09-03 14:15:09 +02:00
Self-Perfection
a5b0852360 Restore compression of SVG files on export 2016-09-02 14:27:24 +03:00