Damien Elmes
74a0998a36
bump version
2010-11-28 18:21:00 +09:00
Damien Elmes
255deb9e9e
elaborate on debug msg
2010-11-28 18:14:09 +09:00
Damien Elmes
689a744266
bump version
2010-11-28 02:32:59 +09:00
Damien Elmes
850d883ab4
update rest of code to recognize&use new rendering
2010-11-28 02:26:53 +09:00
Damien Elmes
ac8f613aca
use pystache for template rendering; autoconvert old style for now
2010-11-28 02:06:54 +09:00
Damien Elmes
f247133ed8
make syncName work with foreign chars
2010-11-27 13:14:16 +09:00
Damien Elmes
ca9aeaa086
don't allow mature delay over a week for now; fix delay being reset to 0
2010-11-26 23:35:26 +09:00
Damien Elmes
386de21f87
don't fudge matplotlib path on win32
2010-11-26 21:59:09 +09:00
Damien Elmes
e58d7f8dac
bump version
2010-11-26 04:20:40 +09:00
Damien Elmes
84b99b1ae5
don't allow tags to be prefixed with a colon, as this breaks sqlite
2010-11-26 03:49:01 +09:00
Damien Elmes
3aa787a146
remove print statement
2010-11-26 03:39:58 +09:00
Damien Elmes
00087ed101
find duplicates support
2010-11-26 03:26:02 +09:00
Damien Elmes
d539018137
support multiple facts in fid: query
2010-11-26 03:25:32 +09:00
Damien Elmes
367143f4f3
make sure to set cards as not due when resetting/rescheduling for old clients
2010-11-26 01:49:10 +09:00
Damien Elmes
f4a35e9b03
support tags: at the top of file to import; fix comment stripping
2010-11-26 01:48:54 +09:00
Damien Elmes
e3dd736460
add ability to update fields when importing
2010-11-26 01:36:24 +09:00
Damien Elmes
dd00d1a5e1
when rebuilding tag priorities, don't include obsolote suspended
2010-11-25 21:56:08 +09:00
Damien Elmes
8f18299cc5
typo
2010-11-24 05:39:06 +09:00
Damien Elmes
f698481c19
don't keep changing the hard interval on load
...
only adjust it if it looks like the defaults haven't been changed
2010-11-24 05:32:09 +09:00
Damien Elmes
6bdca8b3c6
fix available card limiting when using %(tags)s, %(cardModel), etc
2010-11-24 05:14:07 +09:00
Damien Elmes
45dfc97e9f
add axis labels to graphs
...
note that due to limitations in the graphing library, these can't be
translated at the moment.
2010-11-24 05:09:00 +09:00
Damien Elmes
33567edb3e
numerous graph changes
...
- use bar graphs instead of line graphs for 3 months or less
- easier to read shades of blue for reps graph
- simplify day cutoff calculation
- fix off by one bug in work done data
- add missing entries when calculating cumulative due
2010-11-24 04:30:55 +09:00
Damien Elmes
7491cfc521
new syncName handling
...
- the local deck name must now match the online deck
- syncName is a hash of the current deck's path or None
- the hash is checked on deck load, and if it is different (because the deck
was copied or moved), syncing is disabled. This should prevent people from
accidentally clobbering their online decks
2010-11-23 23:12:34 +09:00
Damien Elmes
6ec898ca4b
Require explicit reset for most queue-modifying functions
...
When you call operations like deleteCards(), suspendCards() and so on, it is
now necessary to call deck.reset() afterwards. This allows the calling code to
delay a reset if necessary. If the calling code calls a function that says the
caller must reset, the caller should be sure to call .reset() and fetch the
current card again. Failure to do the latter will result in answerCard()
attempting to remove the card from the queue, when the queue has been cleared.
2010-11-23 17:41:36 +09:00
Damien Elmes
943c9a0e5f
make sure the finished message displays cards due tomorrow
2010-11-23 15:33:54 +09:00
Damien Elmes
03503cd9b9
fix cram from ids case
2010-11-22 08:09:20 +09:00
Damien Elmes
b03f30c279
no need to adjust hardInterval in upgrade; handled in deck open
2010-11-21 14:24:46 +09:00
Damien Elmes
76135dc8be
updated failed card handling when cramming
...
- temp suspend all answered cards, regardless of type
- fails influence the standard scheduling too
2010-11-21 13:39:28 +09:00
Damien Elmes
37e269ab81
bump version for coming development release
2010-11-21 12:58:14 +09:00
Damien Elmes
937d6a6513
update earliestTime() for new failed cards handling
2010-11-21 12:32:58 +09:00
Damien Elmes
b4493f0ec8
user may set young delay to more than a day
2010-11-21 12:25:54 +09:00
Damien Elmes
8e9d14a0fd
avoid passing the second fade argument, as it seems to be more robust
2010-11-16 18:04:04 +09:00
Damien Elmes
c2f2225b7f
update combinedDue for the current card object, not just for the db
2010-11-16 11:27:27 +09:00
Damien Elmes
0afec850c0
on second thought, avoid suspended cards or this will bite us in the future
2010-11-15 14:29:52 +09:00
Damien Elmes
1cd5125d4e
remove the rest of the obsolote rebuildTypes() code
2010-11-15 14:27:52 +09:00
Damien Elmes
26470c997e
remove unused where clause from rebuildTypes()
2010-11-15 14:07:13 +09:00
Damien Elmes
6d2e32e2df
finished message should use cutoff + 24hrs
2010-11-14 08:16:07 +09:00
Damien Elmes
6f8a5d6a24
fix wrong priority code in rebuildTypes()
2010-11-14 08:11:28 +09:00
Damien Elmes
aa753d35a5
don't include suspended cards in graphs
2010-11-14 07:37:51 +09:00
Damien Elmes
1f8adc791a
a few failed cards related fixes
...
- make sure cardLimit() matches on sql statements that are broken over lines
- fix logic in getCardId()
- don't increment failed count if delay1>0 and card was mature
2010-11-13 21:39:52 +09:00
Damien Elmes
7502fba5ce
change failed card handling
...
The old delay1 behaviour isn't easy to achieve with the queue code, as we only
refresh the queue when it's emptied, and if the user has delay1 set to say 9
hours, failed mature cards sitting in the queue could prevent subsequent young
failures from being displayed. Instead we convert delay1 to a count in days in
which to offset failed mature cards. 0 means the same time as delay0, 1 means
show the card a day later, and so on. This means users will lose the ability
to delay mature cards for x number of minutes more than young cards, but a
scan of AnkiOnline decks indicates that's not often done.
We also need to use a separate cutoff for failed cards, since we need to be
able to display them as they expire if the user has disabled per-day
scheduling.
And instead of marking cards as due in the future, we set their due time to
the current time, and move the delay0 calculation to getCardId(). This means
that if the user changes their failed card settings from say 1 hour to 10
minutes, the changes apply to the currently failed cards and not just cards
failed in the future.
2010-11-13 21:15:41 +09:00
Damien Elmes
b69fd48768
more type handling updates; don't munge counts on sync
...
In various parts of the code we need to get all cards of a given category
(new, failed, etc) regardless of whether they're suspended, buried, etc. So we
store the true type in the obsolete relativeDelay column and add in index for
it, because it's cheaper than putting indices on reps & successive.
2010-11-13 18:39:24 +09:00
Damien Elmes
268d2645fd
delete cards that have the wrong card model
2010-11-13 16:33:39 +09:00
Damien Elmes
274017036a
add sanity limits to cutoff calculation
2010-11-13 12:00:01 +09:00
Damien Elmes
4a35dbe6b2
python2.7/win32 fix for latex
2010-11-12 13:05:43 +09:00
Damien Elmes
919353c57d
only require due to be past cutoff if the card was passed
2010-11-12 12:51:53 +09:00
Damien Elmes
3a7f343464
fix typo - been writing too much javascript lately!
2010-11-12 12:50:07 +09:00
Damien Elmes
1b411938bf
add inactive argument to cramCardTags() so it performs like standard
2010-11-12 12:49:30 +09:00
Damien Elmes
6ed0bc91bb
update sync url
2010-11-08 09:22:36 +09:00
Damien Elmes
9d6b0f35f4
ensure cards are scheduled past cutoff, more
...
- because the cutoff adds a few hours past midnight, it's possible for a card
that's scheduled for 1.0 days ahead to fall within the current cutoff, so we
need to make sure that doesn't happen
- set spaceUntil=0 when answering card again
- fix randomizeNewCards() query. the whole codebase needs auditing for type
references which need updating
2010-11-07 06:48:35 +09:00
Damien Elmes
61610d8351
adjust some queries so sqlite uses the correct index
2010-11-06 08:57:47 +09:00
Damien Elmes
e0d46f0f12
be resilient if spaceUntil sent wrong
2010-11-06 07:50:05 +09:00
Damien Elmes
328a1a86a4
make sure we reset rev early cards too on deck load
2010-11-06 06:03:34 +09:00
Damien Elmes
172505a707
fix broken card type calculation in error msg
2010-11-05 02:40:30 +09:00
Damien Elmes
4c50729946
temp debug info for requeueCard()
2010-11-04 02:32:37 +09:00
Damien Elmes
b766a9164e
fix thinko in previous answerCard() update
2010-11-04 02:28:08 +09:00
Damien Elmes
4524fd84fe
collapse spacing when cramming
2010-11-04 02:23:15 +09:00
Damien Elmes
cc12c8c573
need to rebuild counts when cutoff updated
2010-11-04 01:51:16 +09:00
Damien Elmes
0535f0561c
redundant code in answerCard()
2010-11-03 23:45:44 +09:00
Damien Elmes
3f3f797348
don't space failed cards; make sure card type is calculated after stats update
2010-11-03 00:29:56 +09:00
Damien Elmes
46790f2e92
remove (incorrect) code in sync, is covered on deck load anyway
2010-11-02 22:34:10 +09:00
Damien Elmes
a68334220a
fix suspensions
2010-11-02 22:30:57 +09:00
Damien Elmes
73119c93cf
restore inactive tags with a more efficient query
2010-11-02 02:33:13 +09:00
Damien Elmes
37c15a320e
make sure we don't fail if attempting to reset revearly cards before upgrade
2010-11-02 02:04:54 +09:00
Damien Elmes
2c5ac66083
type/priority changes, cram/rev early refactor, more
...
* Adjust type to remove cards from the queues, so we don't have to rebuild
priorities to restore them:
Type -= 3 when suspending
Type += 3 when burying
Type += 6 when cramming / reviewing early
We still need to adjust priorities for backwards compatibility, but this can
be removed in the future.
* Factor out scheduler-specific code in answerCard(), so the different
schedulers are now fully modular
* Differentiate between a card's current queue and its type
* Make sure dueCutoff cuts off at the chosen offset instead of midnight
2010-11-02 01:59:20 +09:00
Damien Elmes
785ddc3786
make sure to set card limit on scheduler change
2010-10-31 18:59:49 +09:00
Damien Elmes
ce82861357
make sure to update field cache when adding fact
2010-10-31 18:17:49 +09:00
Damien Elmes
c4a1f807ec
update cram for new cardActive() handling
2010-10-31 18:12:16 +09:00
Damien Elmes
cc8f619458
remove support for inactive tags
...
Unlike active tags, they are not able to be implemented efficiently, and they
duplicate the functionality of manually suspending cards
2010-10-29 21:31:40 +09:00
Damien Elmes
2967819882
fix fid queries
2010-10-29 19:41:40 +09:00
Damien Elmes
621d11a6da
don't generate cards if the question is blank, again
2010-10-29 01:05:33 +09:00
Damien Elmes
7e6f4907b0
make sure we don't count/grab cards multiple times
2010-10-28 20:33:19 +09:00
Damien Elmes
46ba2db87a
use new field cache so we can ignore html in std search
2010-10-27 21:22:29 +09:00
Damien Elmes
731c4100f9
wrap the remaining really long lines
2010-10-27 21:06:45 +09:00
Damien Elmes
4cce768c70
update search code for new scheduler
2010-10-27 21:03:48 +09:00
Damien Elmes
8c7322c974
merge marcus' searching code
2010-10-27 20:54:42 +09:00
Damien Elmes
34d6efe1df
marcus: handle html entities properly when stripping html
2010-10-27 20:12:00 +09:00
Damien Elmes
8ce0ff5b8b
add a field cache for searching without html
2010-10-27 19:00:49 +09:00
Damien Elmes
9f9841cb22
use a join instead of a subquery as sqlite can optimize it better
2010-10-26 20:21:59 +09:00
Damien Elmes
c50b7e61cb
new indices, make sure to set type when reviewing early
...
- new type, combinedDue for failed cards & count checks
- only reset() on deck load if not already done
- remove isDue from dynamic indices but leave old ones around for now
2010-10-26 20:10:05 +09:00
Damien Elmes
ea3bf14019
if using no points of precision, take the floor
2010-10-26 12:54:58 +09:00
Damien Elmes
5bc7c390a0
make sure to respect failed card timing, fix default hard times
2010-10-26 11:46:35 +09:00
Damien Elmes
27b7ccb41f
set deck vars before updating the cutoff
2010-10-25 15:46:58 +09:00
Damien Elmes
71de076309
no need to adjust types when rebuilding priorities
2010-10-25 15:38:50 +09:00
Damien Elmes
c1d79b856f
superfluous rowcount
2010-10-25 15:36:43 +09:00
Damien Elmes
33e6a17141
make sure to set isDue=0 for spaced cards too, for backwards compat
2010-10-25 15:28:59 +09:00
Damien Elmes
b0e4748a1c
make sure to update combinedDue with the new value
2010-10-25 14:35:05 +09:00
Damien Elmes
de18f59474
compat hack for suspended cards on older platforms
2010-10-24 14:21:21 +09:00
Damien Elmes
1f20442921
require dingsbums decks to use a different name so we don't conflict
2010-10-24 13:26:51 +09:00
Damien Elmes
ecc99780e4
add bury support
2010-10-24 13:06:16 +09:00
Damien Elmes
1d89be0a1e
make sure to set isDue=0 when answering a card for compatibility reasons
2010-10-24 13:01:13 +09:00
Damien Elmes
4c76d25b05
remove obsolete 'inactive' from findCards()
2010-10-24 12:55:33 +09:00
Damien Elmes
a3040d1fb4
suspend leeches after they've been removed from the queue
2010-10-24 12:32:40 +09:00
Damien Elmes
fbae42d8ef
tweak deck stats for new scheduling
2010-10-24 12:26:18 +09:00
Damien Elmes
1e2d88dccf
make sure to consider active tags when calculating next due card
2010-10-24 11:47:47 +09:00
Damien Elmes
057414f404
use same active/inactive limits for failed queue
2010-10-23 16:15:42 +09:00
Damien Elmes
d1f1f914ad
python2.7 win32 compat fix
2010-10-23 13:58:03 +09:00
Damien Elmes
df2ae3b63b
give each scheduler a name
2010-10-20 18:03:10 +09:00
Damien Elmes
94ad0cb95e
new cram code, remove refs to inactive cards
...
- cramming is now a separate scheduler type
- correctly answering a card while cramming causes its scheduling to be
changed in the standard review too
- options to sort cards by earliest modified, ordered, random
- render priority 0 obsolete, as it's all done at queue generation time now
2010-10-20 13:12:17 +09:00
Damien Elmes
30a6f04708
make queue limit configurable, fix bulk fetching of cards for ankionline
2010-10-19 19:45:57 +09:00
Damien Elmes
b7e3d87e5d
new active/inactive handling, bigger queues
...
- separate categories for new & review cards
- 'only these tags' + 'none of these tags'
2010-10-19 19:17:52 +09:00
Damien Elmes
be4dea39b1
more scheduler updates
...
- reimplement reviewEarly and newEarly by replacing parts of the scheduler,
instead of adding special conditions
- remove references to isDue and priority (1,2,3,4) which is not necessary
anymore
- add option to switch between per-day scheduling and due now scheduling
- newCardsToday() -> newCardsDoneToday()
- don't decrement counts for suspended cards
- make sure to update type when suspending/unsuspending
- fix findCards()
- set hardInterval = 1-1.1 on upgrade, or the default per day scheduling doesn't
make sense
2010-10-18 18:01:19 +09:00
Damien Elmes
ad743d850d
start work on scheduling refactor
...
Previously we used getCard() to fetch a card at the time. This required a
number of indices to perform efficiently, and the indices were expensive in
terms of disk space and time required to keep them up to date. Instead we now
gather a bunch of cards at once.
- Drop checkDue()/isDue so writes are not necessary to the DB when checking
for due cards
- Due counts checked on deck load, and only updated once a day or at the end
of a session. This prevents cards from expiring during reviews, leading to
confusing undo behaviour and due counts that go up instead of down as you
review. The default will be to only expire cards once a day, which represents
a change from the way things were done previously.
- Set deck var defaults on deck load/create instead of upgrade, which should
fix upgrade issues
- The scheduling code can now have bits and pieces switched out, which should
make review early / cram etc easier to integrate
- Cards with priority <= 0 now have their type incremented by three, so we can
get access to schedulable cards with a single column.
- rebuildQueue() -> reset()
- refresh() -> refreshSession()
- Views and many of the indices on the cards table are now obsolete and will
be removed in the future. I won't remove them straight away, so as to not
break backward compatibility.
- Use bigger intervals between successive card templates, as the previous
intervals were too small to represent in doubles in some circumstances
Still to do:
- review early
- learn more
- failing mature cards where delay1 > delay0
2010-10-18 14:35:11 +09:00
Damien Elmes
747a28556a
when determining which card templates to use, replace text: too
2010-10-18 11:34:02 +09:00
Damien Elmes
8df9111b50
only copy used media on import/export
2010-10-16 10:29:39 +09:00
Damien Elmes
e010ef8062
add clock skew compensation again
...
this has the negative effect of causing multiple full syncs if syncing
multiple times within a 5 minute period of the previous full sync, but it
makes it much less likely that people's due counts will fall out of sync
2010-10-02 14:47:33 +09:00
Damien Elmes
99ba3f09c8
catch missing facts at end of sync
2010-09-12 12:21:39 +09:00
Damien Elmes
1f239c1e67
direct user to help page when file not in utf-8
2010-09-02 11:45:33 +09:00
Damien Elmes
ea32bce31c
support escaped quotes in csv file, ignore bom marker
2010-08-30 20:40:28 +09:00
Damien Elmes
4437024ecc
fix a bug caused by sqlite not understanding unicode case
2010-08-26 18:38:08 +09:00
Damien Elmes
c916478868
bump version number
2010-08-19 13:42:19 +09:00
Damien Elmes
cb533d9c02
don't die when filename case is borked in media check
2010-08-16 19:28:45 +09:00
Damien Elmes
9332444dfd
add hook for when undo is finished
2010-08-16 19:27:00 +09:00
Damien Elmes
84cb81854b
faster tag updating for large number of tags
2010-08-16 18:52:55 +09:00
Damien Elmes
ff60f105d9
add extra minor version number to ensure betas get upgraded
2010-08-02 13:26:48 +09:00
Damien Elmes
5e7c62bca5
don't compensate for clock skew
2010-07-30 18:15:24 +09:00
Damien Elmes
e956aa9afb
remove obsolete function
2010-07-27 22:54:51 +09:00
Damien Elmes
d3fb189a72
improved lastSync/modified handling
...
- never bump deck mod while syncing
- set lastSync to current time, not deck modified time
- don't update lastSync until the final part of the sync
- lower clock skew allowance to ~5 minutes
- bump full sync threshold to 1000 modified items
2010-07-27 22:46:04 +09:00
Damien Elmes
ecb6dbe69a
unicode in error messages
2010-07-26 20:59:56 +09:00
Damien Elmes
55194f8aa7
ensure cardmodel/fieldmodels work when given a string too
2010-07-26 17:15:05 +09:00
Damien Elmes
5fe42791c3
use relative path in latex generation
2010-07-26 17:14:49 +09:00
Damien Elmes
61a7d6d79e
make sure we match a given model even when given a string
2010-07-24 14:28:24 +09:00
Damien Elmes
a68366b5c4
fix card ordering when generating cards by basing card creation off fact
2010-07-21 19:46:27 +09:00
Damien Elmes
f3d2965e12
Revert "don't delete dangling facts when deleting cards" hack
...
We don't need this any more as we do conflict handling.
This reverts commit 880219567e .
2010-07-21 18:37:35 +09:00
Damien Elmes
6852b0acda
bump mod time on full sync to server, ensure lastSync matches
2010-07-21 18:37:05 +09:00
Damien Elmes
f58651cf1b
bump version number
2010-07-11 17:42:05 +09:00
Damien Elmes
b8401eff22
ignore parse errors due to invalid html on export
2010-06-28 11:52:25 +09:00
Damien Elmes
f03000d27b
remove string exceptions for python2.6
2010-06-10 13:24:46 +09:00
Damien Elmes
880219567e
don't delete dangling facts when deleting cards
...
If the user is not careful to only sync when one side has been modified, they
can end up with cards on one side and not the other. If they then delete a
card, deleting the dangling facts also deletes the fact associated with the
not-yet-synced card. In order to avoid this, we avoid deleting dangling facts
until a DB check.
2010-05-21 06:56:38 +09:00
Damien Elmes
edf121f8dc
add hex cache for dumb clients, make sure not to mark deck modified
2010-05-16 01:01:38 +09:00
Damien Elmes
5616e679f5
cache the css as a deck var, don't accidentally send it in sync
2010-05-10 21:32:36 +09:00
Damien Elmes
fd1953bfb5
convert to a list, not tuples, so we can modify on the fly
2010-05-07 16:05:35 +09:00
Damien Elmes
f69d946f83
more sqlalchemy compat
2010-05-02 16:15:32 +09:00
Damien Elmes
554d7021e0
don't specify an input index by default
2010-04-21 13:31:59 +09:00
Damien Elmes
a1d3f13f0a
update for sqlalchemy 0.6
2010-04-21 13:21:16 +09:00
Damien Elmes
1be5943903
remove erroneous comment
2010-04-16 01:25:47 +09:00
Damien Elmes
21ec548680
more explicit setting of creation time, don't fiddle with ordinals for rand
2010-04-15 23:05:14 +09:00
Damien Elmes
783751d7ea
support ? for single char search
2010-04-06 18:47:39 +09:00
Damien Elmes
af66630f07
delay beautifulsoup import until export
2010-04-01 22:57:26 +09:00
Damien Elmes
7f75364fbe
delete mediamissing tags before setting
2010-03-28 10:18:13 +09:00
Damien Elmes
465a890bcd
don't add = as a delim
2010-03-16 00:39:41 +09:00
Albert Peschar
ed50fb20d9
auto-detect '=' as import delimiter, strip fields
2010-03-14 11:40:31 +01:00
Damien Elmes
c8d9bac5df
clarify one way sync error
2010-03-05 09:27:11 +09:00
Damien Elmes
09f51e5028
when adding facts, use a small due increment for each card model
2010-03-03 02:51:05 +09:00
Damien Elmes
80197d9c2f
when generating cards, use a small creation date increment
2010-03-03 02:49:55 +09:00
Damien Elmes
27694adf1a
patch from Chris Burel, fix qt html rewriting on 4.6.1+
2010-02-23 17:25:12 +09:00
Damien Elmes
7111b3b924
add attr to tell if fact was pulled from db
2010-02-22 18:00:23 +09:00
Damien Elmes
8a28df1a80
patch from Piotr Kubowicz, fix some translations
2010-02-22 17:07:46 +09:00
Damien Elmes
220670a048
update combinedDue attr in cardAnswered(), not just on disk
2010-02-22 16:41:20 +09:00
Damien Elmes
472b68b831
don't backup when importing / saving as
2010-02-20 10:03:39 +09:00
Damien Elmes
bc345d3711
create backup dir if missing
2010-02-20 09:54:54 +09:00
Damien Elmes
7c8e612704
use a constant for chunk size
2010-02-18 17:36:54 +09:00
Damien Elmes
4769bfa7a5
another hack for w32's low timer resolution
2010-02-12 16:03:48 +09:00
Damien Elmes
6857233eef
bump version
2010-02-12 14:40:45 +09:00
Damien Elmes
4a1dd99cc9
bump version
2010-02-09 01:55:01 +09:00
Damien Elmes
6dce4e0602
add progress dialog to save as
2010-02-09 01:52:06 +09:00
Damien Elmes
ae690ccea3
don't bother with an integrity check if the deck is unchanged
2010-02-09 01:36:39 +09:00
Damien Elmes
715c82aba9
remove debugging line in exporting
2010-02-09 01:31:05 +09:00
Damien Elmes
295bacacd8
forget sync name on saveas
2010-02-09 01:30:16 +09:00
Damien Elmes
095a7dbb6f
implement save as without attaching a db
...
Attaching new to old causes old to be implicitly commited.
We also can't access old from new if a write lock has been
taken out, so the only option left is to move all the data
through Python and take the speed hit.
2010-02-09 01:27:49 +09:00
Damien Elmes
dfd88cc4c1
don't set modtime of 0
2010-02-06 01:20:50 +09:00
Damien Elmes
c659660864
don't send acq cards when there are cards to review & new cards shown last
2010-02-05 13:07:42 +09:00
Damien Elmes
09f51e27f0
return newly created card ids when generating cards
2010-02-05 12:59:54 +09:00
Damien Elmes
582a9dd290
don't create empty tags on export
2010-02-05 12:27:32 +09:00
Damien Elmes
187caa874b
make sure to remove deck if exists before exporting into it
2010-02-02 00:28:15 +09:00
Damien Elmes
04ba9c9a4e
strip elements out of range in review time graph
2010-02-01 07:16:40 +09:00
Damien Elmes
8378f71c73
since interval is updated first, use lastInterval in cardIsBeingLearnt()
2010-02-01 05:11:34 +09:00
Damien Elmes
9b61d86096
place a minimum bound on average factor
...
Since SM2's grading has a bias towards starting high and going down (fail/hard
decrease the interval more than easy increases it), more conservative users
find their average interval reaches the minimum allowable interval and the
times given by hard/good start to converge. In the future, the whole concept
of using the average interval for new cards should be revisited to see if the
data supports it
2010-02-01 05:01:23 +09:00
Damien Elmes
3106ecd80d
change location of matplotlibrc file in frozen distrib
2010-02-01 04:44:39 +09:00
Damien Elmes
d8ba9e1987
revert ease1 change
...
suspicious of the previous change, I had a look at the example pascal and
found the EF _was_ actually updated on a failure. The spec is misleading there.
2010-02-01 04:44:27 +09:00
Damien Elmes
095ac330b5
fix first-time latex generation in a deck with no media dir
2010-02-01 03:33:13 +09:00
Damien Elmes
87a0e087e5
tweak scheduler
...
- don't touch factor on fail, as per SM2 specs
- hard code no-punish-on-hard 'learning period' to 7 days so users who tweak
the initial intervals aren't punished too early
2010-02-01 03:28:46 +09:00
Damien Elmes
863d3d8319
add stripMedia()
2010-01-29 20:20:00 +09:00
Damien Elmes
ec263d0d63
if there is a period, always use the plural
2010-01-29 20:05:04 +09:00
Damien Elmes
9172c9b697
remove obsolete time span pair code
2010-01-29 19:28:38 +09:00
Damien Elmes
c90828349c
remove obsolete reference to card tags, don't store card tags on import
2010-01-23 10:59:40 +09:00
Damien Elmes
ea2fa24fed
add progress info to card/fact export
2010-01-23 10:51:02 +09:00
Damien Elmes
b4f1d6622a
use html parser on text export instead of fragile regex
2010-01-23 08:13:43 +09:00
Damien Elmes
28ff71a031
fix dingsbums tests
2010-01-23 06:42:02 +09:00
Damien Elmes
1ae05a8bc7
limit auto-detected delimiter to a known-good set
2010-01-23 06:00:06 +09:00
Damien Elmes
a6a7782030
fix another windows timer resolution bug
2010-01-22 02:16:57 +09:00
Damien Elmes
33aede4d56
document 'features' reuse, add tool to get var as string
2010-01-19 01:51:35 +09:00
Damien Elmes
bf35112bd0
improve latex error message
2010-01-12 04:38:44 +09:00
Damien Elmes
c7340edd6f
strip html for text: fields
2010-01-08 22:02:16 +09:00
Damien Elmes
20da165b6e
check backup integrity using existing db connection to avoid locking issues
2010-01-04 22:37:14 +09:00
Damien Elmes
33ec7ce133
clarify comment
2009-12-02 03:38:46 +09:00
Damien Elmes
ec9a7c3755
check db integrity on backup
2009-11-30 14:31:47 +09:00
Damien Elmes
6a8c19a889
use threadlocal for single user access
2009-11-30 08:34:31 +09:00
Damien Elmes
d44cbd5518
remove logging hack
2009-11-30 08:11:34 +09:00
Damien Elmes
e2f306ae3b
fix cards/day amount
2009-11-29 19:47:53 +09:00
Damien Elmes
84b88507a2
tweak importing message
2009-11-27 19:53:24 +09:00
Damien Elmes
4bea904dc6
give the card id on cardAnswered hook, not old card
2009-11-27 15:59:58 +09:00
Damien Elmes
17630fa339
close text file after import
2009-11-27 15:27:01 +09:00
Damien Elmes
a50ec2649a
fix undo of deck properties bug
2009-11-27 15:26:03 +09:00
Damien Elmes
093395b9e0
Revert "add 30 second timeout to all sync ops"
...
This reverts commit cbc23e5231 .
2009-11-24 23:35:34 +09:00
Damien Elmes
feaedccc9a
fix field ordinals on db check
2009-11-19 13:07:43 +09:00
Damien Elmes
c3833a6a10
quote loadfile cmd
2009-11-08 14:47:17 +09:00
Rick Gruber-Riemer
4971069856
Added importing for DingsBums?! decks
2009-11-08 14:39:09 +09:00
Damien Elmes
7e2fd90963
Merge git://github.com/jmazon/libanki
2009-10-31 15:50:56 +09:00
Jean-Baptiste Mazon
fe19dd806d
rewrite field names as tags when importing with tagDuplicates
2009-10-31 00:35:46 +01:00
Damien Elmes
9671d15371
rewrite expression to be clearer
2009-10-25 19:48:28 +09:00
Damien Elmes
cbc23e5231
add 30 second timeout to all sync ops
2009-10-04 19:53:12 +09:00
Damien Elmes
164b0583c3
unlink tmp file after full up
2009-10-04 19:33:18 +09:00
Damien Elmes
4e83a67e00
lowercase is:foo searches
2009-10-04 19:30:21 +09:00
Damien Elmes
7d8904a65d
factor spacing into due time
2009-10-01 20:17:31 +09:00
Damien Elmes
9f182b4d61
new stats
2009-10-01 17:44:43 +09:00
Damien Elmes
c786479268
timeout @ 60
2009-09-28 09:22:57 +09:00
Damien Elmes
1111cae80a
mark everything updated on full db check
2009-09-26 23:13:28 +09:00
Damien Elmes
76376d9040
move the simple player code into a plugin
2009-09-26 23:05:30 +09:00
Damien Elmes
ebac830248
don't define MATPLOTLIBDATA on osx
2009-09-26 20:54:08 +09:00
Damien Elmes
faea67e14b
add primitive player back, and fall back to it on osx 10.3
2009-09-26 08:57:36 +09:00
Damien Elmes
1906741e11
give a more intuitive error when trying to import utf16
2009-09-26 06:02:25 +09:00
Damien Elmes
75f56d13e2
decrease chunk size to 32k due to crappy win32 network cards
2009-09-26 05:51:22 +09:00
Damien Elmes
11c1e7799b
use relative paths in latex as the path may contain foreign chars
2009-09-26 05:47:52 +09:00
Damien Elmes
e687b1d033
don't translate graphs, as agg can't cope
2009-09-26 05:14:16 +09:00
Damien Elmes
029390f73b
mark version as snapshot
2009-09-26 04:21:50 +09:00
Damien Elmes
0863acc160
make pool an argument instead of progress handling; timeout=30
2009-09-25 18:08:53 +09:00
Damien Elmes
1028b04d9c
default timeout of 90 seconds
2009-09-22 18:35:31 +09:00
Damien Elmes
2e2444f488
apsw -> nullpool
2009-09-21 20:48:04 +09:00
Damien Elmes
d02c1fb70a
add nullpool to db, crop newlines in logs
2009-09-21 20:41:58 +09:00
Damien Elmes
fa6d1f9528
set isolation_level=None when using apsw
2009-09-20 19:55:56 +09:00
Damien Elmes
dce35eda06
disable progress handler if apsw enabled
2009-09-17 01:33:29 +09:00
Damien Elmes
2a72a4dc70
apsw wants unicode
2009-09-17 01:08:19 +09:00
Damien Elmes
090529c4d7
add option to initialize via apsw
2009-09-17 00:25:53 +09:00
Damien Elmes
1b1b69e966
don't die on resetUndo() if undo disabled
2009-09-14 15:30:20 +09:00
Damien Elmes
a9f3e4dca7
don't throw a traceback with an invalid fid
2009-09-06 17:31:47 +09:00
Damien Elmes
03ae1d6ca7
patch from saturnien to make mp3 encoding optional
2009-09-06 17:16:02 +09:00
Damien Elmes
5fed1f7f35
support rtl in html too
2009-08-17 07:42:19 +09:00
Damien Elmes
fd9ce1a876
random(0, time())
2009-08-17 06:52:26 +09:00
Damien Elmes
52be4b059d
make short times i18n
2009-08-17 06:52:14 +09:00
Damien Elmes
8bc7e0c945
enforce ordinal ordering when importing
2009-08-17 05:05:50 +09:00
Damien Elmes
c33c6318b2
handle text:field in rename & delete
2009-08-17 04:53:29 +09:00
Damien Elmes
1006943d8e
SuperMemo import fix from Petr
...
Fix supermemo import of Q&A part in escaped html. Supermemo 2004/2006 export
can contain unescaped chars > or < that confuse beautifulsoap library. Switch
autocreation of tags from all titles to True.
2009-07-26 12:38:36 +09:00
Damien Elmes
4be3de322c
tweak pyaudio error message
2009-07-18 18:11:57 +09:00
Damien Elmes
d96b46887e
make stat formatting consistent
2009-07-18 18:09:52 +09:00
Damien Elmes
b80fc40aee
lazy-load beautifulsoup
2009-07-10 00:37:06 +09:00
Damien Elmes
2f2487e5b8
increase 5 year max scheduling time to 100 years
2009-07-09 23:07:38 +09:00
Damien Elmes
fe99ff7518
add supermemo importer from Petr Michalec
2009-07-09 23:03:23 +09:00
Damien Elmes
fdb9327864
fix locking in ubuntu
2009-07-08 14:38:40 +09:00
Damien Elmes
13a14e498c
increase mod in delete
2009-07-08 12:29:09 +09:00
Damien Elmes
50103693d1
add progress to cache/uncache
2009-07-08 12:28:48 +09:00
Damien Elmes
95d6ba64ab
fix uncache latex
2009-07-08 12:24:25 +09:00
Damien Elmes
6f27ae52cc
revert to old style file-only latex handling
2009-07-08 12:20:56 +09:00
Damien Elmes
0011489220
improve error message when utf16 file passed in
2009-07-06 21:26:46 +09:00
Damien Elmes
b4a330a946
add hook for deck stats
2009-07-05 16:53:12 +09:00
Damien Elmes
7612259a72
add card ease stats
2009-07-05 16:41:18 +09:00
Damien Elmes
6dfaccaa5e
reuse features as rtl marker, fix deck version
2009-07-05 02:19:13 +09:00
Damien Elmes
2579bebbda
bump version
2009-07-04 18:10:52 +09:00
Damien Elmes
8f383db5d2
don't bump mod time on upgrade
2009-07-04 17:10:32 +09:00
Damien Elmes
6514c2a2a5
when previewing cards, use all available card models
2009-07-04 16:50:25 +09:00
Damien Elmes
1d5ee36314
add a filter for formatQA()
2009-07-04 15:40:42 +09:00
Damien Elmes
0d0b9fc81e
make sure card count is properly updated in importing
2009-07-04 15:40:36 +09:00
Damien Elmes
932440165a
when files have been modified, make sure to retain originalPath
2009-07-04 15:17:49 +09:00
Damien Elmes
670439c805
support for exporting original filenames
2009-07-04 14:56:25 +09:00
Damien Elmes
e2ad8a7ce3
bump deck mod time on suspend/unsuspend
2009-07-02 23:42:05 +09:00
Damien Elmes
a73e4757ad
universal newlines when importing
2009-07-02 23:23:05 +09:00
Damien Elmes
a9bb1639c0
remove locales
2009-06-30 11:32:15 +09:00
Damien Elmes
01cb3a4b7d
when regenerating cards, use fact's creation date
2009-06-29 23:30:13 +09:00
Damien Elmes
e1c3cc7b5c
honour card/fact creation order when exporting as text
2009-06-29 23:26:35 +09:00
Damien Elmes
5e9a68d4c7
fix problem upgrading shared decks
2009-06-28 22:23:40 +09:00
Damien Elmes
b1f213644e
tweak deck stats
2009-06-28 10:54:05 +09:00
Damien Elmes
1cc077e1e7
make sure save as copies deck vars
2009-06-27 17:20:49 +09:00
Damien Elmes
f0c5833bf5
bump version number for beta
2009-06-26 15:47:13 +09:00
Damien Elmes
a12878347a
force always on top for the video window, add a hook to fix an osx issue
2009-06-26 10:51:22 +09:00
Damien Elmes
b23dc8053d
updated translations from jarvik
2009-06-26 09:47:34 +09:00
Damien Elmes
0d40fb6743
Merge branch 'master' of git://github.com/sanna/libanki
2009-06-26 09:43:30 +09:00
Damien Elmes
35731d0cb3
move leech detection into libanki
2009-06-26 08:10:33 +09:00
Damien Elmes
2b86cd6b33
add ability to customize separato in csv import
2009-06-26 07:13:14 +09:00
Susanna Björverud
f90a15acb4
Updated version string to 0.9.9.8.3 for Swedish translation and reran translation.sh
2009-06-25 10:42:42 +02:00
Damien Elmes
5598bcbce4
make sure to set leech vars on create, fix recently created decks
2009-06-25 14:57:34 +09:00
Damien Elmes
fd6ea460ae
bump version
2009-06-25 06:49:48 +09:00
Damien Elmes
27732e3553
catch large # of reviews in full sync, reduce limit to 500
2009-06-25 05:47:14 +09:00
Damien Elmes
1e7cae5202
add leech control
2009-06-25 05:24:02 +09:00
Damien Elmes
1bd5c988b1
create mplayer threads lazily on play, make sure not to deadlock
2009-06-25 04:35:58 +09:00
Susanna Björverud
b5b3f9fd8c
Updated version number in Swedish translation and reran translation.sh
2009-06-23 16:49:50 +02:00
Damien Elmes
1a5d243520
reenable removal of suspended tag
2009-06-23 23:43:21 +09:00
Damien Elmes
3270417cfd
bump version number
2009-06-23 23:29:09 +09:00
Susanna Björverud
19327c317b
Updated Swedish translation and reran translation.sh
2009-06-23 09:05:32 +02:00
Damien Elmes
03dff653ab
handle latex too
2009-06-23 06:41:19 +09:00
Damien Elmes
28a45a4f4c
add support for downloading missing media
2009-06-23 06:30:14 +09:00
Damien Elmes
a4d1c55d4f
if mplayerCond is none, finish thread
2009-06-23 06:29:52 +09:00
Susanna Björverud
ea5a867397
Updated Swedish translation and reran translation.sh
2009-06-21 20:07:29 +02:00
Damien Elmes
2f93ca3d8f
reuse features as media url, blank
2009-06-21 06:51:48 +09:00
Damien Elmes
6b7c0d7997
fix missing media problem, fix json decode float
2009-06-21 04:36:36 +09:00
Damien Elmes
31f6b83b88
rebuild translations
2009-06-21 03:34:02 +09:00
Damien Elmes
88acd65858
updated German from Michael Jürges
2009-06-21 03:33:18 +09:00
Damien Elmes
2b9220e5bd
Merge branch 'master' of git://github.com/sanna/libanki
2009-06-21 03:18:43 +09:00
Damien Elmes
f94104ed9f
new backup-friendly backup handling
2009-06-20 02:05:11 +09:00
Damien Elmes
1f0a8edfa4
strip out mediaSupported
2009-06-20 01:32:20 +09:00
Damien Elmes
3d81181323
bulk media support -> local media copy, always send media table
2009-06-19 11:50:31 +09:00
Damien Elmes
aca3ea2513
upgrade suspended, but don't mark cards dirty and don't delete from suspended
2009-06-19 10:26:54 +09:00
Damien Elmes
f96a7a7c5b
Reverting "suspend/unsuspend noweb on full sync"; obsolete
2009-06-19 10:10:37 +09:00
Damien Elmes
358b453906
always update buried/reviewEarly cards
2009-06-19 08:02:40 +09:00
Damien Elmes
3e2c150b17
only set lastDue if card is not new, hide due for new cards in stats
2009-06-19 07:46:26 +09:00
Susanna Björverud
98be8e1c47
Fixed error in Swedish translation and reran translation.sh
2009-06-18 10:36:39 +02:00
Susanna Björverud
6a8e3effe8
Updated Swedish translation and reran translation.sh
2009-06-18 09:54:08 +02:00
Damien Elmes
a1981cf220
strip suspended upgrade code, users will have to do it manually
2009-06-18 07:57:38 +09:00
Damien Elmes
b079df2a13
don't use communicate(), catch win32 error
2009-06-18 07:11:39 +09:00
Damien Elmes
e6b207f7af
force media sync to go in one direction
2009-06-18 06:48:41 +09:00
Damien Elmes
d0653f2f7a
make mplayer threads daemons
2009-06-18 06:43:12 +09:00