Metadata-Version: 2.4
Name: lecture-manager
Version: 3.0.2.post1
Summary: Unified media manager for YouTube lectures, Facebook content, Instapaper offline reading, question bank, and Pomodoro timer
Home-page: https://github.com/blee-design/lecture-manager
Author: Udaya Raj Joshi
Author-email: udayarajjoshi@gmail.com
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: MacOS
Classifier: Environment :: Console
Classifier: Environment :: Web Environment
Classifier: Framework :: Flask
Classifier: Topic :: Education
Classifier: Topic :: Multimedia :: Video
Classifier: Topic :: Office/Business
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: mysql-connector-python>=8.0.0
Requires-Dist: yt-dlp>=2023.0.0
Requires-Dist: flask>=2.0.0
Requires-Dist: browser-cookie3>=0.1.0
Requires-Dist: bgutil-ytdlp-pot-provider>=0.0.1
Requires-Dist: requests>=2.25.0
Requires-Dist: gallery-dl>=1.20.0
Requires-Dist: ffmpeg-python>=0.2.0
Requires-Dist: curl-cffi>=0.5.0
Requires-Dist: tinycss2
Requires-Dist: google-api-python-client>=2.0.0
Requires-Dist: google-auth-oauthlib>=0.4.0
Requires-Dist: tqdm>=4.60.0
Requires-Dist: beautifulsoup4>=4.9.0
Requires-Dist: html2text>=2020.1.16
Requires-Dist: tabulate>=0.8.9
Requires-Dist: bleach>=6.0.0
Requires-Dist: readability-lxml>=0.8.1
Requires-Dist: lxml>=4.9.0
Requires-Dist: requests-oauthlib>=1.3.0
Requires-Dist: matplotlib>=3.0.0
Requires-Dist: numpy>=1.20.0
Requires-Dist: build
Requires-Dist: twine
Requires-Dist: tldextract>=3.0.0
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: black; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license-file
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# 📚 Lecture Manager

**Unified media manager for YouTube lectures, Facebook content, offline article reading, question banking, and productivity tracking.**

[![Python](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

---

## 🌟 Features

### 📺 YouTube Lectures
- Add lectures via YouTube URL or video ID
- Auto‑detect title, lecturer, date, and time from the title
- Organise files into a structured folder tree (by paper, subject, chapter)
- Download videos in 720p (or lower) with metadata and thumbnails
- Local playback via embedded player (web UI) or external player (CLI)
- YouTube upload (unlisted) with automatic mirror ID linking
- Mirror management – link original videos to uploaded copies

### 📘 Facebook Content
- Download videos, reels, and photos from Facebook
- Auto‑detect uploader and title
- Organise files by type (video/photo) with MD5‑based filenames
- Full database tracking with export/import

### ❓ Question Bank (New!)
- Import/export questions in multiple formats: **TXT, CSV, JSON, XML (Moodle), HTML**
- Support for four question types: **essay, multichoice, truefalse, matching**
- **Context‑aware import** – set global defaults (date, institution, level, paper, group, subject) and reuse them across questions
- **Reading passage** feature – define once, reuse in many questions
- **Group** questions into exam sections
- Web UI for browsing, searching, and viewing whole papers
- Advanced search and filtering

### ⏱️ Pomodoro Timer (New!)
- Built‑in Tkinter GUI timer with study sessions, short/long breaks
- Task management with priority, completion, and bulk add
- Study logging with subjects, session types (study/revision/pretest/exam)
- Daily, weekly, and monthly progress tracking
- Badges and streak tracking to keep you motivated
- Detailed analytics with charts (matplotlib)

### 📰 Offline Article Reader (Instapaper Integration)
- Save articles, YouTube lectures, or questions to Instapaper
- Offline storage of full article content with local search
- OAuth authentication and full API sync

### 🌐 Web Interface (Flask)
- Dashboard with library statistics and paper breakdown
- Browse and manage YouTube and Facebook entries
- View questions, whole papers, and browse by chapter
- Import/export questions via the web UI
- Stream local video files directly in the browser

### 🛠️ CLI Tools
- Full terminal interface with colour‑coded menus
- Tally and sync database with actual files
- Duplicate detection and resolution
- Backup, restore, and trash management
- File compression (re‑encode to 480p H.264) to save space
- Share/restore files via a shared directory

### 🗄️ Database Backend
- MariaDB/MySQL with automatic schema creation and migration
- Unique constraints prevent duplicate questions and lecture records
- Transaction‑safe import/export operations

---

### 🔊 Sound / Beep

The Pomodoro timer uses a beep to signal session end. If you don't hear a sound:

- In Konsole, enable the audible bell in Settings → Notifications.
- Or install `beep`: `sudo apt install beep`
- On some systems, the `paplay` or `speaker-test` fallbacks will work without extra setup.


## 🚀 Quick Start

### Prerequisites
- Python 3.8 or higher
- MariaDB/MySQL server
- `ffmpeg` (for video processing)
- `deno` (optional, used by some internal tools)

### Installation

```bash
# Clone the repository
git clone https://github.com/blee-design/lecture-manager.git
cd lecture-manager

# Create a virtual environment and install the package
make setup
