torrent-downloader-react 1.1.3__py3-none-any.whl → 1.1.5__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.
@@ -1 +1 @@
1
- :root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#213547;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;margin:0;padding:0}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: dark){:root{color:#ffffffde;background-color:#242424}.torrent-item{background-color:#2a2a2a!important;border-color:#404040!important}.torrent-info h3{color:#e2e8f0!important}.torrent-info p{color:#94a3b8!important}.progress-bar{background-color:#404040!important}input{background-color:#2a2a2a;color:#fff;border-color:#404040!important}input::placeholder{color:#94a3b8}}:root{--text-primary: #1e293b;--text-secondary: #64748b;--border-color: #e2e8f0;--background-primary: #ffffff;--background-secondary: #f8fafc}@media (prefers-color-scheme: dark){:root{--text-primary: #e2e8f0;--text-secondary: #94a3b8;--border-color: #334155;--background-primary: #0f172a;--background-secondary: #1e293b}}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.container{max-width:1200px;margin:0 auto;padding:2rem}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}header h1{margin:0;font-size:2rem;color:var(--text-primary)}.error-message{background-color:#fee2e2;border:1px solid #fecaca;color:#dc2626;padding:1rem;border-radius:4px;margin-bottom:1rem}.input-section{display:flex;gap:1rem;margin-bottom:2rem}.input-section input{flex:1;padding:.75rem;border:1px solid #ccc;border-radius:4px;font-size:1rem}button{padding:.75rem 1.5rem;background-color:#2563eb;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem;transition:background-color .2s}button:hover:not(:disabled){background-color:#1d4ed8}button:disabled{background-color:#93c5fd;cursor:not-allowed}.remove-button{background-color:#dc2626;padding:.5rem 1rem;font-size:.875rem}.remove-button:hover:not(:disabled){background-color:#b91c1c}.torrents-list{display:flex;flex-direction:column;gap:1rem}.torrent-item{background-color:var(--background-secondary);border:1px solid var(--border-color);border-radius:8px;padding:1rem}.torrent-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.torrent-info{margin-bottom:1rem}.torrent-info h3{margin:0 0 .5rem;color:var(--text-primary)}.torrent-info p{margin:.25rem 0;color:var(--text-secondary)}.progress-bar{width:100%;height:8px;background-color:#e2e8f0;border-radius:4px;overflow:hidden}.progress{height:100%;background-color:#2563eb;transition:width .3s ease}@media (prefers-color-scheme: dark){.error-message{background-color:#450a0a;border-color:#7f1d1d;color:#fecaca}}.header-buttons{display:flex;gap:1rem}.torrent-actions{display:flex;gap:.5rem}
1
+ :root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#213547;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;margin:0;padding:0}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: dark){:root{color:#ffffffde;background-color:#242424}.torrent-item{background-color:#2a2a2a!important;border-color:#404040!important}.torrent-info h3{color:#e2e8f0!important}.torrent-info p{color:#94a3b8!important}.progress-bar{background-color:#404040!important}input{background-color:#2a2a2a;color:#fff;border-color:#404040!important}input::placeholder{color:#94a3b8}}:root{--text-primary: #1e293b;--text-secondary: #64748b;--border-color: #e2e8f0;--background-primary: #ffffff;--background-secondary: #f8fafc}@media (prefers-color-scheme: dark){:root{--text-primary: #e2e8f0;--text-secondary: #94a3b8;--border-color: #334155;--background-primary: #0f172a;--background-secondary: #1e293b}}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.container{max-width:1200px;margin:0 auto;padding:2rem}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}header h1{margin:0;font-size:2rem;color:var(--text-primary)}.error-message{background-color:#fee2e2;border:1px solid #fecaca;color:#dc2626;padding:1rem;border-radius:4px;margin-bottom:1rem}.input-section{display:flex;gap:1rem;margin-bottom:2rem}.input-section input{flex:1;padding:.75rem;border:1px solid #ccc;border-radius:4px;font-size:1rem}button{padding:.75rem 1.5rem;background-color:#2563eb;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem;transition:background-color .2s}button:hover:not(:disabled){background-color:#1d4ed8}button:disabled{background-color:#93c5fd;cursor:not-allowed}.remove-button{background-color:#dc2626;padding:.5rem 1rem;font-size:.875rem}.remove-button:hover:not(:disabled){background-color:#b91c1c}.torrents-list{display:flex;flex-direction:column;gap:1rem}.torrent-item{background-color:var(--background-secondary);border:1px solid var(--border-color);border-radius:8px;padding:1rem}.torrent-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.torrent-info{margin-bottom:1rem}.torrent-info h3{margin:0 0 .5rem;color:var(--text-primary)}.torrent-info p{margin:.25rem 0;color:var(--text-secondary)}.progress-bar{width:100%;height:8px;background-color:#e2e8f0;border-radius:4px;overflow:hidden}.progress{height:100%;background-color:#2563eb;transition:width .3s ease}@media (prefers-color-scheme: dark){.error-message{background-color:#450a0a;border-color:#7f1d1d;color:#fecaca}}.header-buttons{display:flex;gap:1rem}.torrent-actions{display:flex;gap:.5rem}.torrent-status-message{margin:1rem 0;padding:1rem;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:all .3s ease;animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.torrent-status-message.loading{background-color:#2563eb20;border:1px solid #2563eb;color:#2563eb}.torrent-status-message.success{background-color:#16a34a20;border:1px solid #16a34a;color:#16a34a}.torrent-status-message.error{background-color:#dc262620;border:1px solid #dc2626;color:#dc2626}.status-content{display:flex;align-items:center;gap:1rem}.loading-spinner{width:20px;height:20px;border:3px solid #2563eb40;border-top:3px solid #2563eb;border-radius:50%;animation:spin 1s linear infinite}.status-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-weight:700}.success-icon{background-color:#16a34a;color:#fff}.error-icon{background-color:#dc2626;color:#fff}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-color-scheme: dark){.torrent-status-message.loading{background-color:#1e3a8a40;border-color:#3b82f6;color:#93c5fd}.torrent-status-message.success{background-color:#14532d40;border-color:#22c55e;color:#86efac}.torrent-status-message.error{background-color:#7f1d1d40;border-color:#ef4444;color:#fca5a5}.loading-spinner{border-color:#93c5fd40;border-top-color:#3b82f6}}
@@ -5,8 +5,8 @@
5
5
  <link rel="icon" type="image/svg+xml" href="/vite.svg" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>Vite + React + TS</title>
8
- <script type="module" crossorigin src="/assets/index-BAUKkMK0.js"></script>
9
- <link rel="stylesheet" crossorigin href="/assets/index-DpeprjRI.css">
8
+ <script type="module" crossorigin src="/assets/index-A4bJ2BBw.js"></script>
9
+ <link rel="stylesheet" crossorigin href="/assets/index-BKZnulWN.css">
10
10
  </head>
11
11
  <body>
12
12
  <div id="root"></div>
@@ -0,0 +1,120 @@
1
+ Metadata-Version: 2.1
2
+ Name: torrent-downloader-react
3
+ Version: 1.1.5
4
+ Summary: A modern, user-friendly torrent downloader application
5
+ Home-page: https://github.com/stevenbtc/torrent-downloader
6
+ Author: Steven Yan
7
+ Author-email: yulong.yan@uqconnect.edu.au
8
+ Project-URL: Bug Tracker, https://github.com/stevenbtc/torrent-downloader/issues
9
+ Project-URL: Documentation, https://github.com/stevenbtc/torrent-downloader#readme
10
+ Project-URL: Source Code, https://github.com/stevenbtc/torrent-downloader
11
+ Keywords: torrent,downloader,p2p,bittorrent,libtorrent
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Environment :: Web Environment
14
+ Classifier: Framework :: FastAPI
15
+ Classifier: Intended Audience :: End Users/Desktop
16
+ Classifier: License :: OSI Approved :: MIT License
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.8
20
+ Classifier: Programming Language :: Python :: 3.9
21
+ Classifier: Programming Language :: Python :: 3.10
22
+ Classifier: Programming Language :: Python :: 3.11
23
+ Classifier: Topic :: Internet :: WWW/HTTP
24
+ Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
25
+ Requires-Python: >=3.8
26
+ Description-Content-Type: text/markdown
27
+ Requires-Dist: fastapi>=0.109.0
28
+ Requires-Dist: uvicorn>=0.27.0
29
+ Requires-Dist: pydantic>=2.0.0
30
+ Requires-Dist: libtorrent>=2.0.0
31
+ Requires-Dist: pytest>=8.0.0
32
+ Requires-Dist: httpx>=0.27.0
33
+
34
+ # Torrent Downloader Web App
35
+
36
+ A modern, full-featured torrent downloader with a clean React interface and Python backend.
37
+
38
+ ## Quick Start
39
+
40
+ ```bash
41
+ pip install torrent-downloader-react
42
+ torrent-downloader-react # Opens in browser at http://127.0.0.1:8000
43
+ ```
44
+
45
+ ## System Requirements
46
+
47
+ - Python 3.8+
48
+ - Platform-specific dependencies:
49
+ - **Windows**: Microsoft Visual C++ Redistributable
50
+ - **macOS**: `brew install libtorrent-rasterbar`
51
+ - **Ubuntu/Debian**: `sudo apt-get install python3-libtorrent`
52
+ - **Fedora**: `sudo dnf install rb_libtorrent-python3`
53
+
54
+ ## Features
55
+
56
+ - Modern, responsive UI with dark mode
57
+ - Real-time download progress monitoring
58
+ - Download speed and ETA tracking
59
+ - Easy magnet link handling
60
+ - Cross-platform support
61
+ - Concurrent downloads
62
+
63
+ ## Usage
64
+
65
+ 1. Start the application:
66
+ ```bash
67
+ torrent-downloader-react
68
+ ```
69
+ 2. Open your browser at http://127.0.0.1:8000
70
+ 3. Paste a magnet link and click "Add Torrent"
71
+ 4. Monitor progress in the downloads list
72
+ 5. Access completed downloads in your downloads folder
73
+
74
+ ## Alternative Installation: Using Conda
75
+
76
+ ```bash
77
+ conda create -n torrent-env python=3.11
78
+ conda activate torrent-env
79
+ conda install -c conda-forge libtorrent
80
+ pip install torrent-downloader-react
81
+ ```
82
+
83
+ ## Development
84
+
85
+ ### Frontend (React)
86
+ ```bash
87
+ # Install dependencies
88
+ cd torrent-downloader-react
89
+ npm install
90
+
91
+ # Start development server
92
+ npm run dev
93
+ ```
94
+
95
+ ### Backend (Python)
96
+ ```bash
97
+ # Install dependencies
98
+ cd torrent-downloader-react/backend
99
+ pip install -r requirements.txt
100
+
101
+ # Start development server
102
+ python -m torrent_downloader.server
103
+ ```
104
+
105
+ ## API Documentation
106
+
107
+ The backend provides a RESTful API:
108
+
109
+ - `GET /api/torrents` - List all torrents
110
+ - `POST /api/torrents` - Add new torrent
111
+ - `DELETE /api/torrents/{id}` - Remove torrent
112
+ - `GET /api/torrents/{id}/status` - Get torrent status
113
+
114
+ ## License
115
+
116
+ MIT License - See LICENSE file for details.
117
+
118
+ ## Legal Notice
119
+
120
+ This software is intended for downloading legal torrents only. Users are responsible for compliance with applicable laws.
@@ -0,0 +1,11 @@
1
+ torrent_downloader/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ torrent_downloader/server.py,sha256=2eCwzDCkgF2DZMD6LEiDXLBFvbn1271yAIAt6GBQmS0,7358
3
+ torrent_downloader/static/index.html,sha256=5VSCu1MLXP5xdM1HN7nnmRzVQMDsH3BWegCgErBDGMg,464
4
+ torrent_downloader/static/vite.svg,sha256=SnSK_UQ5GLsWWRyDTEAdrjPoeGGrXbrQgRw6O0qSFPs,1497
5
+ torrent_downloader/static/assets/index-A4bJ2BBw.js,sha256=Z0EoN8m8pl1ZygGNqYku5i6QF4BJKXYCBSk-0ltnTwU,190398
6
+ torrent_downloader/static/assets/index-BKZnulWN.css,sha256=z1S8Zpwm3Jy_RlURoKsyoJs8cwX1kBbfCU7z5meLe3w,5039
7
+ torrent_downloader_react-1.1.5.dist-info/METADATA,sha256=3GtC52nlNNF9JV7Yz0MJG8It3vhGqKmnO2WQqFXk54Y,3430
8
+ torrent_downloader_react-1.1.5.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
9
+ torrent_downloader_react-1.1.5.dist-info/entry_points.txt,sha256=zkljgTNEM0p9I4xw4FN0N5PVrNmB6KVLUWjBO32n0do,76
10
+ torrent_downloader_react-1.1.5.dist-info/top_level.txt,sha256=THWnh7qxxVmoQ89QVJ8v6mmSzEQdFdXnryplXTQXuCA,19
11
+ torrent_downloader_react-1.1.5.dist-info/RECORD,,