biome: 1.9.2 -> 1.9.3 (#349335)
[NixPkgs.git] / pkgs / games / mnemosyne / default.nix
blobcd8142574d8db862596397640cbebc771758e457
1 { python
2 , fetchurl
3 , anki
4 }:
6 python.pkgs.buildPythonApplication rec {
7   pname = "mnemosyne";
8   version = "2.10.1";
10   src = fetchurl {
11     url    = "mirror://sourceforge/project/mnemosyne-proj/mnemosyne/mnemosyne-${version}/Mnemosyne-${version}.tar.gz";
12     sha256 = "sha256-zI79iuRXb5S0Y87KfdG+HKc0XVNQOAcBR7Zt/OdaBP4=";
13   };
15   nativeBuildInputs = with python.pkgs; [ pyqtwebengine.wrapQtAppsHook ];
17   buildInputs = [ anki ];
19   propagatedBuildInputs = with python.pkgs; [
20     cheroot
21     cherrypy
22     googletrans
23     gtts
24     matplotlib
25     pyopengl
26     pyqt6
27     pyqt6-webengine
28     argon2-cffi
29     webob
30   ];
32   prePatch = ''
33     substituteInPlace setup.py \
34       --replace '("", ["/usr/local/bin/mplayer"])' ""
35   '';
37   # No tests/ directory in tarball
38   doCheck = false;
40   postInstall = ''
41     mkdir -p $out/share/applications
42     mv mnemosyne.desktop $out/share/applications
43   '';
45   dontWrapQtApps = true;
47   makeWrapperArgs = [
48     "\${qtWrapperArgs[@]}"
49   ];
51   meta = {
52     homepage = "https://mnemosyne-proj.org/";
53     description = "Spaced-repetition software";
54     mainProgram = "mnemosyne";
55     longDescription = ''
56       The Mnemosyne Project has two aspects:
58         * It's a free flash-card tool which optimizes your learning process.
59         * It's a research project into the nature of long-term memory.
61       We strive to provide a clear, uncluttered piece of software, easy to use
62       and to understand for newbies, but still infinitely customisable through
63       plugins and scripts for power users.
65       ## Efficient learning
67       Mnemosyne uses a sophisticated algorithm to schedule the best time for
68       a card to come up for review. Difficult cards that you tend to forget
69       quickly will be scheduled more often, while Mnemosyne won't waste your
70       time on things you remember well.
72       ## Memory research
74       If you want, anonymous statistics on your learning process can be
75       uploaded to a central server for analysis. This data will be valuable to
76       study the behaviour of our memory over a very long time period. The
77       results will be used to improve the scheduling algorithms behind the
78       software even further.
79     '';
80   };