studyctl 2.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. studyctl/__init__.py +3 -0
  2. studyctl/calendar.py +140 -0
  3. studyctl/cli/__init__.py +56 -0
  4. studyctl/cli/_config.py +128 -0
  5. studyctl/cli/_content.py +462 -0
  6. studyctl/cli/_lazy.py +35 -0
  7. studyctl/cli/_review.py +491 -0
  8. studyctl/cli/_schedule.py +125 -0
  9. studyctl/cli/_setup.py +164 -0
  10. studyctl/cli/_shared.py +83 -0
  11. studyctl/cli/_state.py +69 -0
  12. studyctl/cli/_sync.py +156 -0
  13. studyctl/cli/_web.py +228 -0
  14. studyctl/content/__init__.py +5 -0
  15. studyctl/content/markdown_converter.py +271 -0
  16. studyctl/content/models.py +31 -0
  17. studyctl/content/notebooklm_client.py +434 -0
  18. studyctl/content/splitter.py +159 -0
  19. studyctl/content/storage.py +105 -0
  20. studyctl/content/syllabus.py +416 -0
  21. studyctl/history.py +982 -0
  22. studyctl/maintenance.py +69 -0
  23. studyctl/mcp/__init__.py +1 -0
  24. studyctl/mcp/server.py +58 -0
  25. studyctl/mcp/tools.py +234 -0
  26. studyctl/pdf.py +89 -0
  27. studyctl/review_db.py +277 -0
  28. studyctl/review_loader.py +375 -0
  29. studyctl/scheduler.py +242 -0
  30. studyctl/services/__init__.py +6 -0
  31. studyctl/services/content.py +39 -0
  32. studyctl/services/review.py +127 -0
  33. studyctl/settings.py +367 -0
  34. studyctl/shared.py +425 -0
  35. studyctl/state.py +120 -0
  36. studyctl/sync.py +229 -0
  37. studyctl/tui/__main__.py +33 -0
  38. studyctl/tui/app.py +395 -0
  39. studyctl/tui/study_cards.py +396 -0
  40. studyctl/web/__init__.py +1 -0
  41. studyctl/web/app.py +68 -0
  42. studyctl/web/routes/__init__.py +1 -0
  43. studyctl/web/routes/artefacts.py +57 -0
  44. studyctl/web/routes/cards.py +86 -0
  45. studyctl/web/routes/courses.py +91 -0
  46. studyctl/web/routes/history.py +69 -0
  47. studyctl/web/server.py +260 -0
  48. studyctl/web/static/app.js +853 -0
  49. studyctl/web/static/icon-192.svg +4 -0
  50. studyctl/web/static/icon-512.svg +4 -0
  51. studyctl/web/static/index.html +50 -0
  52. studyctl/web/static/manifest.json +21 -0
  53. studyctl/web/static/style.css +657 -0
  54. studyctl/web/static/sw.js +14 -0
  55. studyctl-2.0.0.dist-info/METADATA +49 -0
  56. studyctl-2.0.0.dist-info/RECORD +58 -0
  57. studyctl-2.0.0.dist-info/WHEEL +4 -0
  58. studyctl-2.0.0.dist-info/entry_points.txt +3 -0
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 192">
2
+ <rect width="192" height="192" rx="32" fill="#1a1b26"/>
3
+ <text x="96" y="120" text-anchor="middle" font-size="100" fill="#7aa2f7">S</text>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 192">
2
+ <rect width="192" height="192" rx="32" fill="#1a1b26"/>
3
+ <text x="96" y="120" text-anchor="middle" font-size="100" fill="#7aa2f7">S</text>
4
+ </svg>
@@ -0,0 +1,50 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
6
+ <meta name="theme-color" content="#1a1b26">
7
+ <meta name="apple-mobile-web-app-capable" content="yes">
8
+ <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
9
+ <title>Socratic Study Mentor</title>
10
+ <link rel="stylesheet" href="/style.css">
11
+ <link rel="manifest" href="/manifest.json">
12
+ <link rel="icon" href="/icon-192.svg" type="image/svg+xml">
13
+ </head>
14
+ <body>
15
+ <header>
16
+ <h1>Socratic Study Mentor</h1>
17
+ <div class="header-controls">
18
+ <button class="toggle-btn" id="pomo-toggle" title="Pomodoro timer (25min study / 5min break)">
19
+ <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg>
20
+ </button>
21
+ <button class="toggle-btn" id="voice-toggle" title="Toggle voice (reads questions aloud)">
22
+ <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"/><path d="M19.07 4.93a10 10 0 010 14.14M15.54 8.46a5 5 0 010 7.07"/></svg>
23
+ </button>
24
+ <select id="voice-select" class="voice-select hidden" title="Choose voice"></select>
25
+ <button class="toggle-btn" id="theme-toggle" title="Toggle light/dark theme">
26
+ <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg>
27
+ </button>
28
+ <button class="toggle-btn" id="dyslexic-toggle" title="Toggle OpenDyslexic font">Aa</button>
29
+ </div>
30
+ </header>
31
+ <div class="pomodoro hidden" id="pomodoro">
32
+ <div class="pomo-ring">
33
+ <svg width="44" height="44" viewBox="0 0 44 44">
34
+ <circle class="track" cx="22" cy="22" r="18"/>
35
+ <circle class="fill" cx="22" cy="22" r="18" id="pomo-arc"
36
+ stroke-dasharray="113.1" stroke-dashoffset="0"/>
37
+ </svg>
38
+ </div>
39
+ <div>
40
+ <div class="pomo-time" id="pomo-time">25:00</div>
41
+ <div class="pomo-label" id="pomo-label">Study</div>
42
+ </div>
43
+ <button class="pomo-btn" id="pomo-pause" title="Pause/Resume">&#10074;&#10074;</button>
44
+ <button class="pomo-btn" id="pomo-stop" title="Stop">&times;</button>
45
+ </div>
46
+ <main id="app"></main>
47
+ <div class="shortcuts" id="shortcuts"></div>
48
+ <script src="/app.js"></script>
49
+ </body>
50
+ </html>
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "Socratic Study Mentor",
3
+ "short_name": "StudyCtl",
4
+ "description": "AuDHD-friendly flashcard and quiz review",
5
+ "start_url": "/",
6
+ "display": "standalone",
7
+ "background_color": "#1a1b26",
8
+ "theme_color": "#7aa2f7",
9
+ "icons": [
10
+ {
11
+ "src": "/icon-192.svg",
12
+ "sizes": "192x192",
13
+ "type": "image/svg+xml"
14
+ },
15
+ {
16
+ "src": "/icon-512.svg",
17
+ "sizes": "512x512",
18
+ "type": "image/svg+xml"
19
+ }
20
+ ]
21
+ }