parsehub 2.0.10__tar.gz → 2.0.11__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 (60) hide show
  1. {parsehub-2.0.10/src/parsehub.egg-info → parsehub-2.0.11}/PKG-INFO +1 -1
  2. {parsehub-2.0.10 → parsehub-2.0.11}/pyproject.toml +1 -1
  3. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/base/ytdlp.py +31 -33
  4. {parsehub-2.0.10 → parsehub-2.0.11/src/parsehub.egg-info}/PKG-INFO +1 -1
  5. {parsehub-2.0.10 → parsehub-2.0.11}/LICENSE +0 -0
  6. {parsehub-2.0.10 → parsehub-2.0.11}/README.md +0 -0
  7. {parsehub-2.0.10 → parsehub-2.0.11}/setup.cfg +0 -0
  8. {parsehub-2.0.10 → parsehub-2.0.11}/src/__init__.py +0 -0
  9. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/__init__.py +0 -0
  10. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/config/__init__.py +0 -0
  11. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/config/config.py +0 -0
  12. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/errors.py +0 -0
  13. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/__init__.py +0 -0
  14. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/base/__init__.py +0 -0
  15. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/base/base.py +0 -0
  16. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/__init__.py +0 -0
  17. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/bilibili.py +0 -0
  18. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/coolapk.py +0 -0
  19. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/douyin.py +0 -0
  20. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/facebook.py +0 -0
  21. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/instagram.py +0 -0
  22. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/kuaishou.py +0 -0
  23. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/pipix.py +0 -0
  24. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/threads.py +0 -0
  25. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/tieba.py +0 -0
  26. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/twitter.py +0 -0
  27. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/weibo.py +0 -0
  28. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/weixin.py +0 -0
  29. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/xhs.py +0 -0
  30. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/xiaoheihe.py +0 -0
  31. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/youtube.py +0 -0
  32. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/zuiyou.py +0 -0
  33. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/provider_api/__init__.py +0 -0
  34. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/provider_api/bilibili.py +0 -0
  35. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/provider_api/coolapk.py +0 -0
  36. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/provider_api/instagram.py +0 -0
  37. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/provider_api/kuaishou.py +0 -0
  38. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/provider_api/pipix.py +0 -0
  39. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/provider_api/threads.py +0 -0
  40. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/provider_api/tieba.py +0 -0
  41. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/provider_api/twitter.py +0 -0
  42. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/provider_api/weibo.py +0 -0
  43. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/provider_api/weixin.py +0 -0
  44. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/provider_api/xhs.py +0 -0
  45. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/provider_api/xiaoheihe.py +0 -0
  46. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/provider_api/zuiyou.py +0 -0
  47. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/types/__init__.py +0 -0
  48. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/types/callback.py +0 -0
  49. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/types/media_file.py +0 -0
  50. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/types/media_ref.py +0 -0
  51. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/types/platform.py +0 -0
  52. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/types/post.py +0 -0
  53. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/types/result.py +0 -0
  54. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/utils/downloader.py +0 -0
  55. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/utils/media_info.py +0 -0
  56. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/utils/utils.py +0 -0
  57. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub.egg-info/SOURCES.txt +0 -0
  58. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub.egg-info/dependency_links.txt +0 -0
  59. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub.egg-info/requires.txt +0 -0
  60. {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: parsehub
3
- Version: 2.0.10
3
+ Version: 2.0.11
4
4
  Summary: 轻量、异步、开箱即用的社交媒体聚合解析库
5
5
  Author-email: 梓澪 <zilingmio@gmail.com>
6
6
  License: MIT
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "parsehub"
3
- version = "2.0.10"
3
+ version = "2.0.11"
4
4
  description = "轻量、异步、开箱即用的社交媒体聚合解析库"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12.0"
@@ -150,33 +150,33 @@ class YtVideoParseResult(VideoParseResult):
150
150
  # paramss["format"] = "worstvideo* + worstaudio / worst"
151
151
 
152
152
  if callback:
153
- loop = asyncio.get_running_loop()
154
- progress_mode = "bytes"
155
-
156
- def _progress_hook(d):
157
- nonlocal progress_mode
158
- if d["status"] == "downloading":
159
- # 已知问题: yt-dlp 返回的总进度不统一
160
- downloaded = int(d.get("downloaded_bytes", 0))
161
- total = int(d.get("total_bytes") or d.get("total_bytes_estimate") or 0)
162
- if total and progress_mode == "bytes":
163
- asyncio.run_coroutine_threadsafe(
164
- callback(downloaded, total, "bytes", *callback_args, **callback_kwargs),
165
- loop,
166
- )
167
- else:
168
- progress_mode = "count"
169
- asyncio.run_coroutine_threadsafe(
170
- callback(0, 1, "count", *callback_args, **callback_kwargs),
171
- loop,
172
- )
173
- elif d["status"] == "finished" and progress_mode == "count":
174
- asyncio.run_coroutine_threadsafe(
175
- callback(1, 1, "count", *callback_args, **callback_kwargs),
176
- loop,
177
- )
178
-
179
- paramss["progress_hooks"] = [_progress_hook]
153
+ # 已知问题: yt-dlp 返回的总进度不统一, 暂使用 count 进度
154
+ await callback(0, 1, "count", *callback_args, **callback_kwargs)
155
+ # loop = asyncio.get_running_loop()
156
+ # progress_mode = "bytes"
157
+ # def _progress_hook(d):
158
+ # nonlocal progress_mode
159
+ # if d["status"] == "downloading":
160
+ # downloaded = int(d.get("downloaded_bytes", 0))
161
+ # total = int(d.get("total_bytes") or d.get("total_bytes_estimate") or 0)
162
+ # if total and progress_mode == "bytes":
163
+ # asyncio.run_coroutine_threadsafe(
164
+ # callback(downloaded, total, "bytes", *callback_args, **callback_kwargs),
165
+ # loop,
166
+ # )
167
+ # else:
168
+ # progress_mode = "count"
169
+ # asyncio.run_coroutine_threadsafe(
170
+ # callback(0, 1, "count", *callback_args, **callback_kwargs),
171
+ # loop,
172
+ # )
173
+ # elif d["status"] == "finished" and progress_mode == "count":
174
+ # asyncio.run_coroutine_threadsafe(
175
+ # callback(1, 1, "count", *callback_args, **callback_kwargs),
176
+ # loop,
177
+ # )
178
+ #
179
+ # paramss["progress_hooks"] = [_progress_hook]
180
180
 
181
181
  await self._run_download(paramss)
182
182
 
@@ -184,6 +184,9 @@ class YtVideoParseResult(VideoParseResult):
184
184
  if not v:
185
185
  raise DownloadError("下载失败 -1")
186
186
 
187
+ if callback:
188
+ await callback(1, 1, "count", *callback_args, **callback_kwargs)
189
+
187
190
  video_path = v[0]
188
191
  return DownloadResult(
189
192
  VideoFile(
@@ -200,12 +203,7 @@ class YtVideoParseResult(VideoParseResult):
200
203
  raise DownloadError("下载失败 -2")
201
204
 
202
205
  try:
203
- await asyncio.wait_for(
204
- asyncio.to_thread(download_video, paramss, [self.dl.url]),
205
- timeout=300,
206
- )
207
- except TimeoutError as e:
208
- raise DownloadError("下载超时") from e
206
+ await asyncio.to_thread(download_video, paramss, [self.dl.url])
209
207
  except RuntimeError as e:
210
208
  error = str(e)
211
209
  if any(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: parsehub
3
- Version: 2.0.10
3
+ Version: 2.0.11
4
4
  Summary: 轻量、异步、开箱即用的社交媒体聚合解析库
5
5
  Author-email: 梓澪 <zilingmio@gmail.com>
6
6
  License: MIT
File without changes
File without changes
File without changes
File without changes