Commit Graph

364 Commits

Author SHA1 Message Date
Damien Elmes
2d4e88afbd tolerate a str arg to writeData() 2013-10-09 13:13:48 +09:00
Damien Elmes
bc96a00fd2 we need to clear out std models on export or we end up renaming
and the rename affects the exporting deck as well
2013-10-06 09:45:38 +09:00
Damien Elmes
7aee582a58 loop should exit early, and allNames() doesn't need modification 2013-10-06 09:26:43 +09:00
Damien Elmes
6c304ebe2f to normalize unicode we need to have unicode 2013-10-06 04:53:11 +09:00
Damien Elmes
3ed2861115 include platform in cv 2013-10-06 04:37:39 +09:00
Damien Elmes
e3a102ef92 bump version 2013-10-05 23:53:27 +09:00
Damien Elmes
f1837e7e0a when ensuring model unique, check id not obj
this should fix an issue where we were attaching a suffix to non-duplicate
names on sync
2013-10-05 23:53:09 +09:00
Damien Elmes
f23392b6a3 Merge pull request #35 from hssm/compile-regex
Pre-compile HTML-stripping regexes.
2013-10-04 13:39:44 -07:00
Damien Elmes
9524dbed96 give note types unique name when adding/importing (#325) 2013-10-04 09:00:08 +09:00
Damien Elmes
f29a04ae29 bump sync ver to 7 and change meta return value
- /sync/meta now returns a dictionary
- it includes the following extra fields
- msg: if non-empty, show this message at the end of the sync
- cont: if false, show above message and abort sync
- uname: the user's email address, so it can be stored by the local client to
  show users who have forgotten which email address they used. in the future
  this will be saved only when logging in, so do a conditional access on it
2013-10-04 06:09:28 +09:00
Damien Elmes
b55761190f option to tag notes in find dupes function 2013-10-04 00:07:11 +09:00
Damien Elmes
33403fd890 include client type in cv 2013-10-02 04:09:16 +09:00
Damien Elmes
621ba0e1ac include client version in /sync/meta 2013-10-02 03:53:10 +09:00
Damien Elmes
7725a93d24 don't say tomorrow for burying until we introduce the new change 2013-10-02 03:50:59 +09:00
Damien Elmes
3d33436a86 move version number into libanki 2013-10-02 03:50:19 +09:00
Damien Elmes
318b4e371f bump sync ver to 6 (see note)
when porting this to other platforms, please ensure you have ported all
changes in sched.py after 2.0.12 first
2013-09-27 17:14:23 +09:00
Damien Elmes
8277233827 remove invalid line 2013-09-27 17:13:26 +09:00
Damien Elmes
79ed57a445 reschedule should not operate on filtered/suspended/buried
this should fix some issues with rescheduled cards ending up in an invalid
state
2013-09-27 13:30:39 +09:00
Damien Elmes
d36655a8c7 use unicode when recording 2013-09-23 15:13:46 +09:00
Damien Elmes
d348179ad4 add internal option to disable burying on answer 2013-09-20 19:39:19 +09:00
Damien Elmes
0d1d8c5bf9 define standard encoding for unicode (#893)
- always store media references in fields in NFC form
- always encode filenames on disk in NFC form on machines other than macs
- use relevant encoding when placing files in the media folder during syncs
  and apkg imports as well
- rename 'unused media' back to 'check media'
- check media can now automatically change media references and filename
  encodings to the correct format
2013-09-20 19:28:44 +09:00
Damien Elmes
4d42282b7b strip html in duplicate check (#906) 2013-09-20 17:25:24 +09:00
Damien Elmes
cc7ddca7d7 Merge branch 'new_branch_name' 2013-09-17 18:35:16 +09:00
Damien Elmes
fe0ed4dac9 fix replacement of other clozes
https://anki.tenderapp.com/discussions/ankidesktop/2904-cloze-deletion-behaves-oddly-instead-of-giving-error-when-single-colon-is-used?mail_type=queue
2013-09-16 13:28:19 +09:00
Damien Elmes
bd8707f54c support import of renamed .apkg files 2013-09-11 15:56:59 +09:00
Damien Elmes
aa2b31a82b honor home deck's new card bury setting 2013-09-11 15:43:26 +09:00
Damien Elmes
c1827e0561 unbury from overview shouldn't unbury all decks 2013-09-11 15:33:27 +09:00
Damien Elmes
511bde0396 change misleading note import msg 2013-09-11 15:30:31 +09:00
Damien Elmes
0bef1d8530 unbury on open/close and make sure we set usn when unburying 2013-09-04 04:38:00 +09:00
Damien Elmes
492ed33f4d add relative overdueness option 2013-09-04 04:17:43 +09:00
Damien Elmes
a2463eb67d unbury on open for now 2013-09-04 02:31:10 +09:00
Damien Elmes
0c2a1fe19e report more info when note type changes prevent an import 2013-09-04 02:19:15 +09:00
Damien Elmes
e73bfa9d02 ignore qfmt/afmt when checking if note types are the same 2013-09-04 02:18:53 +09:00
Damien Elmes
4fe76257f1 about about and available languages 2013-08-22 15:54:33 +09:00
Damien Elmes
afde11671e rework sibling handling and change bury semantics
First, burying changes:

- unburying now happens on day rollover, or when manually unburying from
  overview screen

- burying is not performed when returning to deck list, or when closing
  collection, so burying now must mark cards as modified to ensure sync
  consistent

- because they're no longer temporary to a session, make sure we exclude them
  in filtered decks in -is:suspended

Sibling spacing changes:

- core behaviour now based on automatically burying related cards when we
  answer a card

- applies to reviews, optionally to new cards, and never to cards in the
  learning queue (partly because we can't suspend/bury cards in that queue at
  the moment)

- this means spacing works consistently in filtered decks now, works on
  reviews even when user is late to review, and provides better separation of
  new cards

- if burying new cards disabled, we just discard them from the current queue.
  an option to set due=ord*space+due would be nicer, but would require
  changing a lot of code and is more appropriate for a future major version
  change. discarding from queue suffers from the same issue as the new card
  cycling in that queue rebuilds may cause cards to be shown close together,
  so the default burying behaviour is preferable

- refer to them as 'related cards' rather than 'siblings'

These changes don't require any changes to the database format, so they
should hopefully coexist with older clients without issue.
2013-08-10 15:56:26 +09:00
Damien Elmes
8a4fbcc430 unbury in deckbrowser, not deckduelist() (#946) 2013-08-08 15:19:57 +09:00
Damien Elmes
914f56dbc0 allow updates to existing notes in .apkg import 2013-08-08 13:01:47 +09:00
Damien Elmes
988fc102d8 remove redundant regex in latex code 2013-07-19 19:42:20 +09:00
Damien Elmes
adf4f4687c allow includegraphics in latex 2013-07-18 19:04:38 +09:00
Damien Elmes
26a3c30365 escape + in deck names 2013-07-18 18:44:40 +09:00
Damien Elmes
c0454fe3e7 reduce max media count to 100 per chunk 2013-07-12 08:44:27 +09:00
Damien Elmes
2ba8c41fec replace nbsp with standard space when stripping html
fixes https://anki.tenderapp.com/discussions/ankidesktop/1952-duplicate-not-detected-on-paste
2013-07-11 21:23:13 +09:00
Damien Elmes
0fa9b75af5 fix importing with schema change logic
the previous fix for #612 was broken, and led to notes with altered schemas
being imported with the incorrect schema
2013-07-11 18:47:49 +09:00
Damien Elmes
5ea074ed2a make sure we always show 3 buttons for cards in initial learning (#928)
even if there's only a single learning step, the easy bonus means we need to
show both buttons
2013-07-11 17:59:44 +09:00
Damien Elmes
a538e29480 refactor illegal char handling and file adding for media
- add writeData() so we can add files to media folder without having to
  save them in an intermediate folder first
- we were stripping or checking for illegal filename characters in
  multiple places; factor those checks out into separate routines
- add * to invalid char list, and disallow both forward and backslash
- remove size checks in syncAdd(); is handled server-side
2013-07-11 15:33:24 +09:00
Damien Elmes
a3190d52f1 make sure we include 'px' in stats (thanks to steveaw) 2013-07-09 08:14:13 +09:00
Damien Elmes
2d4b79b490 keep scanning csv until we find non-zero field count (#920) 2013-07-03 04:23:33 +09:00
Damien Elmes
56143c346a fix graph regression caused by div changes (#913) 2013-07-03 04:06:44 +09:00
Houssam Salem
0ce829b6b3 Pre-compile HTML-stripping regexes. 2013-06-23 18:37:39 +10:00
Damien Elmes
f2d538d546 catch errors trying to determine fs type 2013-06-14 13:15:05 +09:00
Damien Elmes
a6b44cff01 skip fat32 check on unmapped network drive (#902) 2013-06-10 15:32:21 +09:00
Damien Elmes
adaf951a5a force y axis min of 0 in reps graph too 2013-06-06 08:19:32 +09:00
Damien Elmes
4d2101cf89 dupes->dupe (fix dupe search) 2013-06-06 07:40:18 +09:00
Damien Elmes
8e8de1e333 mnemosyne importer tweaks
- convert newlines to br
- non-greedy match mnemosyne clozes
2013-06-05 18:39:32 +09:00
Damien Elmes
a4b7a93bcc mnemosyne importer improvements
- support cloze type
- use proper names for front/back, etc
- change <audio> to [sound:]
- change mnemosyne-style latex references
2013-06-03 13:58:40 +09:00
Damien Elmes
5db00d5815 fix find dupes when fieldname case differs 2013-06-01 10:49:33 +09:00
Damien Elmes
ec888eb2aa fix bug in media sync where we weren't fetching needed files 2013-05-31 14:03:34 +09:00
Damien Elmes
122c5c8f4c ensure we have access to col when removing notes while syncing 2013-05-31 10:42:24 +09:00
Damien Elmes
be78c3f9e3 better msg when media sanity fails 2013-05-30 10:54:55 +09:00
Damien Elmes
9714143af9 remove dropbox image escape hack 2013-05-29 09:34:12 +09:00
Damien Elmes
744d9abfdb fix modification check in note merge 2013-05-28 14:41:12 +09:00
Damien Elmes
84a03d291d modding the schema should also set collection modified
required for the force full sync case
2013-05-28 12:42:12 +09:00
Damien Elmes
e38aa0c615 fix importing of images 2013-05-27 16:20:53 +09:00
Damien Elmes
dceacff47c tell server which files we need 2013-05-27 15:29:24 +09:00
Damien Elmes
0a81df60dc automatically resync media, and don't send media server already has (#583) 2013-05-27 14:25:30 +09:00
Damien Elmes
cfac1eb99b add utf8 input back to latex
This was what we originally had in templates in Anki 1. It was changed to
utf8x at one point, then we discovered that some LaTeX installs didn't have
that package so it was removed, when we should have reverted to utf8 instead.
This fixes things like umlauts but does not allow display of things like
Japanese text.
2013-05-27 10:52:55 +09:00
Damien Elmes
73b197b3a9 only duplicate notes with diff schema in anki1 import (#612) 2013-05-24 11:55:50 +09:00
Damien Elmes
97a92e5ea9 translation issues 2013-05-24 10:46:44 +09:00
Damien Elmes
97a342ae23 when media deleted during sync, move to trash instead of deleting 2013-05-23 13:38:51 +09:00
Damien Elmes
d72fb35825 need to order cards after import for sibling spacing (#464) 2013-05-22 13:16:12 +09:00
Damien Elmes
e61e849e09 Merge branch 'findhook' 2013-05-22 12:35:05 +09:00
Damien Elmes
ce1199e9cb Merge branch 'addhook-search' of git://github.com/valgaav/anki into findhook
Conflicts:
	anki/find.py
2013-05-22 12:34:21 +09:00
Damien Elmes
ddc01ad8e8 log deletions in text file 2013-05-22 12:27:37 +09:00
Damien Elmes
4f073f0b85 fix upgrading of latex references 2013-05-22 09:46:09 +09:00
Damien Elmes
918694a096 more media regexp fixes
- split quoted and unquoted image case into separate regexps, since we can't
  include a group reference inside a character set
- disallow spaces in the non-quoted case
- this should fix matching on images with other attributes again
2013-05-22 09:45:58 +09:00
Damien Elmes
81b4e521cc fix float issue in stats
[Beta Testing #23]
2013-05-22 08:56:15 +09:00
Damien Elmes
85cb7ef47e ignore _ in field references (#803) 2013-05-18 18:57:24 +09:00
Damien Elmes
f97abacb4a add mature today stat 2013-05-18 18:37:17 +09:00
Damien Elmes
3326254eec fix cloze+latex issue in media check, and duplicate answers (#757, #758)
we were replacing spans with spaces during review but not during media check.
just strip the tags instead, which makes the media check consistent and
doesn't result in multiple identical answers
2013-05-18 18:07:34 +09:00
Damien Elmes
201b54777a leave new cards alone when exporting, so order is preserved (#447) 2013-05-17 16:22:11 +09:00
Damien Elmes
4aa634bc44 need greedy match on images 2013-05-17 16:20:27 +09:00
Damien Elmes
da66844f6b canonify tags when saving, and strip quotes (#794) 2013-05-17 13:51:49 +09:00
Damien Elmes
8f36841281 ensure we match on identical closing quote (#769) 2013-05-17 12:23:56 +09:00
Damien Elmes
403a53cebf shuffle after importing when random on (#576) 2013-05-16 21:55:57 +09:00
Damien Elmes
13a2943667 full media scan on fat32 drives (#844) 2013-05-16 17:58:30 +09:00
Damien Elmes
c8f4d3a582 check checksum of all filename alternatives when adding media
patch thanks to Julien Baley
2013-05-16 17:24:20 +09:00
Damien Elmes
3dd72ad4d6 log updates & duplicates (#859) 2013-05-16 17:24:12 +09:00
Damien Elmes
a7b9a7b055 fix bug where 2 buttons shown on second learn step (#864) 2013-05-16 17:10:31 +09:00
Damien Elmes
e06594a303 fix rescheduling of relearn cards (#874)
- need to reset 'odue'
- also need to reset 'due' so the new cards don't take on - timestamp
  positions
2013-05-16 16:36:37 +09:00
Damien Elmes
3f6266a712 fix duplicate search in browser (#855) 2013-05-16 14:17:28 +09:00
Damien Elmes
0dceb0ce22 round() doesn't convert to int 2013-05-15 23:37:27 +09:00
Damien Elmes
f7c5003c1c better error with very long fields in import (#852) 2013-05-14 18:38:35 +09:00
Damien Elmes
7ad33fea06 catch notes with invalid field count in db check 2013-05-14 18:12:31 +09:00
Damien Elmes
ab198c46be unify pre-check, sanity-check and upload error messages 2013-05-14 15:41:18 +09:00
Damien Elmes
79d4451299 move full sync into preferences, and remove maintenance menu 2013-05-14 15:27:40 +09:00
Damien Elmes
e913c75fd7 perform basic check prior to syncing 2013-05-14 15:10:58 +09:00
Damien Elmes
d2535fd6cb run basic integrity check prior to full up 2013-05-13 19:36:09 +09:00
Damien Elmes
a379e47ca5 handle cloned note types in mnemo import 2013-05-13 13:58:10 +09:00
Mike Blume
dcf097b55f use futuristic division
Python used to use C-style division, where division of two ints was
truncated, and division involving a float resulted in a float.

This is confusing, because you often can't tell from looking at a
line of code in isolation what sort of division it's supposed to do.

With 'from __future__ import division' Python ensures that division is
always explicit.

// means (floored) integer division
/ means float division

regardless of argument types.

This should make the source a bit clearer now, as well as removing one
obstacle if Anki is ever ported to Python 3.
2013-05-05 11:09:16 -07:00
Damien Elmes
9875e26e06 make sure y axis starts at 0
https://anki.tenderapp.com/discussions/ankidesktop/793-strange-scaling-in-statistics-bar-bug
2013-05-04 15:45:57 +09:00
Damien Elmes
b571a4caa8 failure to find a field should not break entire query
https://anki.tenderapp.com/discussions/ankidesktop/656-unexpected-results-on-search-with-boolean-or-operator
2013-04-22 22:13:29 +09:00
Damien Elmes
c44cf32dc2 don't save note if no changes made (#705) 2013-04-11 19:20:23 +09:00
Damien Elmes
ed9fba954e handle extra attributes in imgs in condition repl (#700) 2013-04-11 18:34:53 +09:00
ospalh
d806f44484 Only the Mac file system stores file names NFD-normalized. So do that normalization only there when looking for files. 2013-04-11 17:37:06 +09:00
Damien Elmes
55cd51c079 handle nbsp in furigana (#327) 2013-04-11 14:45:53 +09:00
Damien Elmes
a525d3c32c make sure we don't chomp embedded newlines when clearing comments (#722) 2013-04-11 14:33:30 +09:00
Damien Elmes
7957dff33f make sure sort field updated when field deleted (#737) 2013-04-11 14:23:06 +09:00
Damien Elmes
f3f7835032 add upper bound to # of media files in single zip 2013-04-11 14:13:11 +09:00
Damien Elmes
c437a38446 move card type deletion back to X on card tabs 2013-04-11 14:02:01 +09:00
Damien Elmes
e8e1bd9550 allow HTML in mnemosyne import (#774) 2013-04-11 13:28:30 +09:00
Damien Elmes
bf1af126b0 properly generate clozed latex in unused media check (#775) 2013-04-11 13:26:52 +09:00
Damien Elmes
0b7344c84f when showing time with no decimal, round not floor 2013-04-01 14:48:17 +09:00
Damien Elmes
e64d825730 fix some sync issues
- better error message when upload fails
- don't show success message on error
- fix 'unable to find server' accidentally being catchall
2013-03-01 01:36:14 +09:00
Damien Elmes
487919fe6e Merge branch 'master' of github.com:dae/anki 2013-02-26 18:41:56 +09:00
Damien Elmes
1efafedcaa fix sanityCheck2 bug 2013-02-26 15:23:01 +09:00
Andreas Klauer
fcd3bd5eee fix HTML in cards 2013-02-25 13:41:00 +01:00
Damien Elmes
9642ce9337 fixed off by one err in collection start date calc 2013-02-25 16:13:50 +09:00
Andreas Klauer
b6c9253034 support LearnedTimestamps and flipped cards 2013-02-24 23:39:36 +01:00
Andreas Klauer
a78c4d6c31 add Pauker Lesson Importer 2013-02-24 02:10:50 +01:00
Damien Elmes
fa07268763 don't allow invalid chars in file export (#694) 2013-02-20 15:12:07 +09:00
Damien Elmes
3de7b34fc6 must remove from lrn queue before resched as rev (#668) 2013-02-20 14:47:30 +09:00
Pauline Gomér
fc612a71d3 moved loading of plugins to initialization 2013-02-16 13:23:51 +01:00
Jon-Erik 'TorrentKatten' Johnzon
b07254cb09 added search-hook for plugins using "search" scope 2013-02-15 19:45:40 +01:00
Pauline Gomér
ff82aad50f refactor the large if-elif-else used for searching 2013-02-15 19:45:40 +01:00
Damien Elmes
24bf9a023b fix crash when ix_fields_factId was missing 2013-02-02 22:58:11 +09:00
Damien Elmes
60b5b77d65 allow apostrophe in deck names (#623) 2013-02-01 23:21:53 +09:00
Damien Elmes
71bc925e8b show (end) when exiting with resched=off 2013-02-01 00:25:01 +09:00
Damien Elmes
cee9b2efd9 strip tags before including on card (#505) 2013-01-31 14:07:17 +09:00
Damien Elmes
19012e6110 don't set browser font on card creation (#543) 2013-01-29 09:40:47 +09:00
Damien Elmes
1203775aef ignore html in conditional tags 2013-01-29 09:14:28 +09:00
Damien Elmes
073f129ab8 fix media sanity fail being identified as normal sanity error 2013-01-29 09:05:55 +09:00
Damien Elmes
8aadb18d4d better warning when certs missing 2013-01-26 22:25:50 +09:00
Damien Elmes
439130d58a mention that dyn may be bool 2013-01-25 19:18:24 +09:00
Damien Elmes
cb1485d18b when reapplying fail mult, ensure minInt (#552) 2013-01-23 15:30:11 +09:00
Damien Elmes
17b68d5dc0 fix import of suspended anki1 cards (#565) 2013-01-23 15:28:11 +09:00
Damien Elmes
8d66578d43 move sanity check to server and automatically force full sync
- server will log mismatches so we don't require people to post on the forums
  anymore or manually force a full sync
- if we find problems like missing notes, report that in the sanity check so
  the server can keep track of problems
- when the server detects a conflict it can immediately abort the sync, so a
  subsequent sync will no longer report a conflict
2013-01-18 09:17:12 +09:00
Damien Elmes
ef92719eeb Revert "add automatic <br> back to field references"
This reverts commit 05a68488e7.
2013-01-16 11:28:10 +09:00
Damien Elmes
05a68488e7 add automatic <br> back to field references
{{Front}}
{{Back}}

will now automatically add a <br> to the first field reference, like previous
Anki versions did. The <br> is too complicated for users who just want a plain
template without any HTML.
2013-01-15 08:28:39 +09:00
Damien Elmes
ab46fa0a70 don't fail when importing apkg that references subdirs 2013-01-15 07:43:10 +09:00
Damien Elmes
f5028c2573 force rdns for proxy (#331) 2013-01-15 07:30:49 +09:00
Damien Elmes
e610776bb0 possible fix for supermemo importer (#480)
Not sure why the original author was converting angle brackets separately -
that code breaks the example provided in #480, but I'm not sure if removing it
will break other files.
2013-01-15 06:37:30 +09:00
Damien Elmes
120c1d4136 match a single note type in browser even if duplicate names 2013-01-15 06:15:27 +09:00
Damien Elmes
aefc58d5d5 we must remove cards from learning queue on bury
or they end up with an invalid status when unburied

https://anki.lighthouseapp.com/projects/100923/tickets/484-cant-sync
2013-01-15 05:38:40 +09:00
Piotr Kubowicz
12bde7b40f allow 'Studied 1 card in ...' to be translated properly 2013-01-13 20:20:17 +01:00
Damien Elmes
e309a68306 update manual link 2013-01-09 07:50:49 +09:00
Damien Elmes
c335ea2cee note type manager needs to ignore the default note type for current deck 2013-01-08 21:39:37 +09:00
Damien Elmes
ea89be5f4a make sure we encode data as utf8 before checksumming 2013-01-08 10:42:15 +09:00
Damien Elmes
289f0a6452 automatically fix 1.2 errors when upgrading 2013-01-08 09:43:29 +09:00
Damien Elmes
0447cb4f41 fix issues with clozes and <% %> 2013-01-04 14:39:06 +09:00
Damien Elmes
e9b24f9f3e don't indiscriminately modSchema on db check 2012-12-28 17:23:03 +09:00
Damien Elmes
8cf072c735 preserve image filenames when stripping html
- also do this for the sort field
2012-12-24 14:08:42 +09:00
Damien Elmes
e2c4fd5945 patch for httplib2 change from Arfrever 2012-12-22 13:31:36 +09:00
Damien Elmes
26ae5e1c47 spread reviews before sibling check 2012-12-22 12:36:51 +09:00
Damien Elmes
d11a1e0d54 allow browser font customization on a per-template basis 2012-12-22 10:10:52 +09:00
Damien Elmes
c6b0945af1 import descriptions in parent decks 2012-12-22 09:39:38 +09:00
Damien Elmes
cc9bbb2ab7 disable cert check when running through proxy 2012-12-22 09:20:54 +09:00
Damien Elmes
b2457811a2 optimize imports 2012-12-22 09:17:10 +09:00
Damien Elmes
e27cbd2cb7 reapply failure mult on failures in lrn queue 2012-12-22 07:32:49 +09:00
Damien Elmes
011cbde3b9 card tsv exporter 2012-12-21 21:32:21 +09:00
Damien Elmes
2095e5c4b3 strip HTML when calculating field checksum (users will need to checkDB) 2012-12-21 20:51:45 +09:00
Damien Elmes
f6ff63eeb8 earlier fix for logging new in filt broke logging of non-new in filt 2012-12-21 20:30:08 +09:00
Damien Elmes
395d80aa2f fix i18n when /usr/bin/locale exists 2012-12-21 18:47:51 +09:00
Damien Elmes
1f1fa125f0 fix i18n on linux install 2012-12-21 18:04:26 +09:00
Damien Elmes
d477df8c28 merged libanki and ankiqt into single distro 2012-12-21 16:51:59 +09:00