devart-dl 3.2.3__tar.gz → 3.2.6__tar.gz

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 (49) hide show
  1. {devart_dl-3.2.3/devart_dl.egg-info → devart_dl-3.2.6}/PKG-INFO +7 -3
  2. {devart_dl-3.2.3 → devart_dl-3.2.6}/README.md +6 -2
  3. {devart_dl-3.2.3 → devart_dl-3.2.6}/README_EN.md +45 -13
  4. {devart_dl-3.2.3 → devart_dl-3.2.6}/da_downloader/api.py +32 -3
  5. {devart_dl-3.2.3 → devart_dl-3.2.6}/da_downloader/config.py +1 -1
  6. {devart_dl-3.2.3 → devart_dl-3.2.6/devart_dl.egg-info}/PKG-INFO +7 -3
  7. {devart_dl-3.2.3 → devart_dl-3.2.6}/pyproject.toml +1 -1
  8. {devart_dl-3.2.3 → devart_dl-3.2.6}/setup.py +1 -1
  9. {devart_dl-3.2.3 → devart_dl-3.2.6}/.env.example +0 -0
  10. {devart_dl-3.2.3 → devart_dl-3.2.6}/LICENSE +0 -0
  11. {devart_dl-3.2.3 → devart_dl-3.2.6}/MANIFEST.in +0 -0
  12. {devart_dl-3.2.3 → devart_dl-3.2.6}/bin/devart-dl +0 -0
  13. {devart_dl-3.2.3 → devart_dl-3.2.6}/bin/install.sh +0 -0
  14. {devart_dl-3.2.3 → devart_dl-3.2.6}/da_downloader/__init__.py +0 -0
  15. {devart_dl-3.2.3 → devart_dl-3.2.6}/da_downloader/auth.py +0 -0
  16. {devart_dl-3.2.3 → devart_dl-3.2.6}/da_downloader/downloader.py +0 -0
  17. {devart_dl-3.2.3 → devart_dl-3.2.6}/da_downloader/models.py +0 -0
  18. {devart_dl-3.2.3 → devart_dl-3.2.6}/da_downloader/progress.py +0 -0
  19. {devart_dl-3.2.3 → devart_dl-3.2.6}/da_downloader/utils.py +0 -0
  20. {devart_dl-3.2.3 → devart_dl-3.2.6}/devart_dl.egg-info/SOURCES.txt +0 -0
  21. {devart_dl-3.2.3 → devart_dl-3.2.6}/devart_dl.egg-info/dependency_links.txt +0 -0
  22. {devart_dl-3.2.3 → devart_dl-3.2.6}/devart_dl.egg-info/entry_points.txt +0 -0
  23. {devart_dl-3.2.3 → devart_dl-3.2.6}/devart_dl.egg-info/not-zip-safe +0 -0
  24. {devart_dl-3.2.3 → devart_dl-3.2.6}/devart_dl.egg-info/requires.txt +0 -0
  25. {devart_dl-3.2.3 → devart_dl-3.2.6}/devart_dl.egg-info/top_level.txt +0 -0
  26. {devart_dl-3.2.3 → devart_dl-3.2.6}/deviantart_dl/__init__.py +0 -0
  27. {devart_dl-3.2.3 → devart_dl-3.2.6}/deviantart_dl/core/__init__.py +0 -0
  28. {devart_dl-3.2.3 → devart_dl-3.2.6}/deviantart_dl/core/api_client.py +0 -0
  29. {devart_dl-3.2.3 → devart_dl-3.2.6}/deviantart_dl/core/downloader.py +0 -0
  30. {devart_dl-3.2.3 → devart_dl-3.2.6}/deviantart_dl/models/__init__.py +0 -0
  31. {devart_dl-3.2.3 → devart_dl-3.2.6}/deviantart_dl/models/config.py +0 -0
  32. {devart_dl-3.2.3 → devart_dl-3.2.6}/deviantart_dl/models/deviation.py +0 -0
  33. {devart_dl-3.2.3 → devart_dl-3.2.6}/deviantart_dl/models/download.py +0 -0
  34. {devart_dl-3.2.3 → devart_dl-3.2.6}/deviantart_dl/tests/__init__.py +0 -0
  35. {devart_dl-3.2.3 → devart_dl-3.2.6}/deviantart_dl/tests/conftest.py +0 -0
  36. {devart_dl-3.2.3 → devart_dl-3.2.6}/deviantart_dl/tests/test_models.py +0 -0
  37. {devart_dl-3.2.3 → devart_dl-3.2.6}/requirements.txt +0 -0
  38. {devart_dl-3.2.3 → devart_dl-3.2.6}/setup.cfg +0 -0
  39. {devart_dl-3.2.3 → devart_dl-3.2.6}/tools/COOKIE_EXPORT_GUIDE.md +0 -0
  40. {devart_dl-3.2.3 → devart_dl-3.2.6}/tools/anti_ban_config.py +0 -0
  41. {devart_dl-3.2.3 → devart_dl-3.2.6}/tools/auth_manager.py +0 -0
  42. {devart_dl-3.2.3 → devart_dl-3.2.6}/tools/browser_login.py +0 -0
  43. {devart_dl-3.2.3 → devart_dl-3.2.6}/tools/cookie_loader.py +0 -0
  44. {devart_dl-3.2.3 → devart_dl-3.2.6}/tools/download_artist.py +0 -0
  45. {devart_dl-3.2.3 → devart_dl-3.2.6}/tools/download_url.py +0 -0
  46. {devart_dl-3.2.3 → devart_dl-3.2.6}/tools/file_organizer.py +0 -0
  47. {devart_dl-3.2.3 → devart_dl-3.2.6}/tools/i18n.py +0 -0
  48. {devart_dl-3.2.3 → devart_dl-3.2.6}/tools/logger.py +0 -0
  49. {devart_dl-3.2.3 → devart_dl-3.2.6}/tools/validate_cookies.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devart-dl
3
- Version: 3.2.3
3
+ Version: 3.2.6
4
4
  Summary: 专业的 DeviantArt 作品批量下载工具 - Professional DeviantArt batch downloader with anti-ban features
5
5
  Home-page: https://github.com/zoidberg-xgd/deviantart-downloader
6
6
  Author: DeviantArt Downloader Team
@@ -72,9 +72,13 @@ Dynamic: requires-python
72
72
  - **5种登录方式** - Cookie文件、交互输入、会话保存、环境变量、浏览器
73
73
  - **智能防封** - 4种预设模式、自动延迟、速率限制
74
74
  - **灵活下载** - URL单图、作者全集、画廊批量、搜索过滤
75
- - **增强日志** - 彩色输出、文件记录、调试模式
75
+ - **断点续传** NEW - 中断后自动继续,智能跳过已下载
76
+ - **失败重试** NEW - 网络错误自动重试3次
77
+ - **1080p视频** NEW - 自动选择最高质量视频
78
+ - **自动代理** NEW - 从环境变量自动加载代理
79
+ - **增强日志** - 彩色输出、文件记录、登录状态显示
76
80
  - **国际化** - 中文/英文双语支持,自动检测
77
- - **高性能** - 异步下载架构(Python 3.10+)
81
+ - **高性能** - 异步下载架构,快速跳过已存在文件
78
82
  - **零配置** - 开箱即用,渐进增强
79
83
  - **模块化** - 清晰的项目结构,易于维护
80
84
 
@@ -20,9 +20,13 @@
20
20
  - **5种登录方式** - Cookie文件、交互输入、会话保存、环境变量、浏览器
21
21
  - **智能防封** - 4种预设模式、自动延迟、速率限制
22
22
  - **灵活下载** - URL单图、作者全集、画廊批量、搜索过滤
23
- - **增强日志** - 彩色输出、文件记录、调试模式
23
+ - **断点续传** NEW - 中断后自动继续,智能跳过已下载
24
+ - **失败重试** NEW - 网络错误自动重试3次
25
+ - **1080p视频** NEW - 自动选择最高质量视频
26
+ - **自动代理** NEW - 从环境变量自动加载代理
27
+ - **增强日志** - 彩色输出、文件记录、登录状态显示
24
28
  - **国际化** - 中文/英文双语支持,自动检测
25
- - **高性能** - 异步下载架构(Python 3.10+)
29
+ - **高性能** - 异步下载架构,快速跳过已存在文件
26
30
  - **零配置** - 开箱即用,渐进增强
27
31
  - **模块化** - 清晰的项目结构,易于维护
28
32
 
@@ -12,22 +12,25 @@ A powerful, feature-rich DeviantArt artwork downloader with intelligent file org
12
12
 
13
13
  ---
14
14
 
15
- ## ✨ Core Features
16
-
17
- - 🚀 **Unified CLI** - Single `devart-dl` command for all features
18
- - 🔐 **5 Login Methods** - Cookie file, interactive input, session save, environment variable, browser
19
- - 🛡️ **Smart Anti-Ban** - 4 preset modes, auto-delay, rate limiting
20
- - 🎯 **Flexible Downloads** - Single URL, full artist collection, batch gallery, search filters
21
- - 📝 **Enhanced Logging** - Colored output, file logging, debug mode
22
- - 📁 **Smart Organization** - 6 file organization modes with metadata
23
- - 🌍 **Internationalization** - Chinese/English bilingual support, auto-detection
24
- - ⚡ **High Performance** - Async download architecture (Python 3.10+)
25
- - 📦 **Zero Config** - Works out of the box, progressive enhancement
26
- - 🏗️ **Modular** - Clean project structure, easy to maintain
15
+ ## Core Features
16
+
17
+ - **Unified CLI** - Single `devart-dl` command for all features
18
+ - **5 Login Methods** - Cookie file, interactive, session save, env var, browser
19
+ - **Smart Anti-Ban** - 4 preset modes, auto delay, rate limiting
20
+ - **Flexible Download** - Single URL, author gallery, batch, search filter
21
+ - **Resume Support** - Auto-resume after interruption, skip downloaded
22
+ - **Auto Retry** - Network errors auto-retry 3 times
23
+ - **1080p Videos** - Auto-select highest quality videos
24
+ - **Auto Proxy** - Auto-load proxy from environment variables
25
+ - **Enhanced Logging** - Colored output, file logging, login status display
26
+ - **Internationalization** - Chinese/English bilingual support
27
+ - **High Performance** - Async download, fast skip existing files
28
+ - **Zero Config** - Works out of box, progressive enhancement
29
+ - **Modular** - Clean project structure, easy to maintain
27
30
 
28
31
  ---
29
32
 
30
- ## 🚀 Quick Start
33
+ ## Quick Start
31
34
 
32
35
  ### Installation
33
36
 
@@ -73,6 +76,35 @@ devart-dl gallery username
73
76
  devart-dl search username "keyword"
74
77
  ```
75
78
 
79
+ ### ⭐ v3.2.4 New Features Quick Start
80
+
81
+ ```bash
82
+ # 1. Auto Proxy + Auto Login (Recommended Setup)
83
+ export ALL_PROXY=http://127.0.0.1:7890 # Set proxy
84
+ devart-dl login interactive # One-time login
85
+ devart-dl artist username # Auto-loads proxy & cookies
86
+
87
+ # 2. Resume Support (Continue after interruption)
88
+ devart-dl artist username --ask=0 # Start download
89
+ # Press Ctrl+C to interrupt
90
+ devart-dl artist username --ask=0 # Re-run, auto-skips downloaded
91
+
92
+ # 3. 1080p HD Video Downloads
93
+ devart-dl artist username --ask=0 # Auto-downloads 1080p videos
94
+
95
+ # 4. Login Status Display
96
+ # Automatically shows at start:
97
+ # 🔓 Login Status: ✅ LOGGED IN
98
+ # You can download original quality and mature content
99
+
100
+ # 5. High-Performance Batch Downloads
101
+ devart-dl artist username --ask=0 --proxy=http://127.0.0.1:7890
102
+ # ✓ Auto-skip existing files
103
+ # ✓ Auto-retry failures 3 times
104
+ # ✓ Real-time progress display
105
+ # ✓ 1080p video quality
106
+ ```
107
+
76
108
  ---
77
109
 
78
110
  ## 📥 Main Features
@@ -319,7 +319,7 @@ class DeviantArtAPI:
319
319
  return url
320
320
 
321
321
  def download_file(self, url: str, timeout: int = 180) -> Optional[bytes]:
322
- """下载文件内容"""
322
+ """下载文件内容(带进度显示)"""
323
323
  logger.debug(f"Downloading: {url}")
324
324
 
325
325
  for attempt in range(self.max_retries):
@@ -329,10 +329,39 @@ class DeviantArtAPI:
329
329
  headers=self.headers,
330
330
  proxies=self.proxies,
331
331
  allow_redirects=True,
332
- timeout=timeout
332
+ timeout=timeout,
333
+ stream=True # 启用流式下载
333
334
  )
334
335
  response.raise_for_status()
335
- return response.content
336
+
337
+ # 获取文件大小
338
+ total_size = int(response.headers.get('content-length', 0))
339
+
340
+ # 流式下载并显示进度
341
+ if total_size > 0:
342
+ downloaded = 0
343
+ chunks = []
344
+ chunk_size = 8192
345
+ last_reported = 0 # 上次报告的百分比
346
+
347
+ for chunk in response.iter_content(chunk_size=chunk_size):
348
+ if chunk:
349
+ chunks.append(chunk)
350
+ downloaded += len(chunk)
351
+
352
+ # 每10%显示一次进度,避免刷屏
353
+ progress = (downloaded / total_size) * 100
354
+ progress_10 = int(progress / 10) * 10 # 取整到10的倍数
355
+
356
+ if progress_10 > last_reported and progress_10 % 10 == 0:
357
+ logger.info(f" 下载中: {progress_10}% ({downloaded / 1024 / 1024:.1f} MB / {total_size / 1024 / 1024:.1f} MB)")
358
+ last_reported = progress_10
359
+
360
+ return b''.join(chunks)
361
+ else:
362
+ # 大小未知,直接下载
363
+ return response.content
364
+
336
365
  except RequestException as e:
337
366
  logger.warning(f"Download failed (attempt {attempt + 1}/{self.max_retries}): {e}")
338
367
  if attempt < self.max_retries - 1:
@@ -30,7 +30,7 @@ class Config:
30
30
 
31
31
  # 下载设置
32
32
  quality: str = "o" # o=original, f=full, p=preview
33
- replace_existing: bool = True
33
+ replace_existing: bool = False # 默认跳过已存在文件
34
34
  separate_folders: bool = True
35
35
 
36
36
  # 日志设置
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devart-dl
3
- Version: 3.2.3
3
+ Version: 3.2.6
4
4
  Summary: 专业的 DeviantArt 作品批量下载工具 - Professional DeviantArt batch downloader with anti-ban features
5
5
  Home-page: https://github.com/zoidberg-xgd/deviantart-downloader
6
6
  Author: DeviantArt Downloader Team
@@ -72,9 +72,13 @@ Dynamic: requires-python
72
72
  - **5种登录方式** - Cookie文件、交互输入、会话保存、环境变量、浏览器
73
73
  - **智能防封** - 4种预设模式、自动延迟、速率限制
74
74
  - **灵活下载** - URL单图、作者全集、画廊批量、搜索过滤
75
- - **增强日志** - 彩色输出、文件记录、调试模式
75
+ - **断点续传** NEW - 中断后自动继续,智能跳过已下载
76
+ - **失败重试** NEW - 网络错误自动重试3次
77
+ - **1080p视频** NEW - 自动选择最高质量视频
78
+ - **自动代理** NEW - 从环境变量自动加载代理
79
+ - **增强日志** - 彩色输出、文件记录、登录状态显示
76
80
  - **国际化** - 中文/英文双语支持,自动检测
77
- - **高性能** - 异步下载架构(Python 3.10+)
81
+ - **高性能** - 异步下载架构,快速跳过已存在文件
78
82
  - **零配置** - 开箱即用,渐进增强
79
83
  - **模块化** - 清晰的项目结构,易于维护
80
84
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "devart-dl"
7
- version = "3.2.3"
7
+ version = "3.2.6"
8
8
  description = "专业的 DeviantArt 作品批量下载工具 - Professional DeviantArt batch downloader with anti-ban features"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.6"
@@ -12,7 +12,7 @@ long_description = (this_directory / "README.md").read_text(encoding='utf-8')
12
12
 
13
13
  setup(
14
14
  name="devart-dl", # 更简短独特的包名
15
- version="3.2.3",
15
+ version="3.2.6",
16
16
  author="zoidberg-xgd",
17
17
  author_email="",
18
18
  description="Professional DeviantArt batch downloader with multiple login methods and anti-ban protection",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes