parsehub 2.0.32__tar.gz → 2.0.33__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 (70) hide show
  1. {parsehub-2.0.32/src/parsehub.egg-info → parsehub-2.0.33}/PKG-INFO +1 -1
  2. {parsehub-2.0.32 → parsehub-2.0.33}/pyproject.toml +1 -1
  3. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/provider_api/xhs.py +17 -2
  4. {parsehub-2.0.32 → parsehub-2.0.33/src/parsehub.egg-info}/PKG-INFO +1 -1
  5. {parsehub-2.0.32 → parsehub-2.0.33}/LICENSE +0 -0
  6. {parsehub-2.0.32 → parsehub-2.0.33}/README.md +0 -0
  7. {parsehub-2.0.32 → parsehub-2.0.33}/setup.cfg +0 -0
  8. {parsehub-2.0.32 → parsehub-2.0.33}/src/__init__.py +0 -0
  9. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/__init__.py +0 -0
  10. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/cli.py +0 -0
  11. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/cli_config.py +0 -0
  12. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/config/__init__.py +0 -0
  13. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/config/config.py +0 -0
  14. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/errors.py +0 -0
  15. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/parsers/__init__.py +0 -0
  16. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/parsers/base/__init__.py +0 -0
  17. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/parsers/base/base.py +0 -0
  18. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/parsers/base/ytdlp.py +0 -0
  19. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/parsers/parser/__init__.py +0 -0
  20. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/parsers/parser/bilibili.py +0 -0
  21. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/parsers/parser/coolapk.py +0 -0
  22. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/parsers/parser/douyin.py +0 -0
  23. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/parsers/parser/facebook.py +0 -0
  24. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/parsers/parser/instagram.py +0 -0
  25. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/parsers/parser/kuaishou.py +0 -0
  26. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/parsers/parser/pipix.py +0 -0
  27. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/parsers/parser/snapchat.py +0 -0
  28. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/parsers/parser/threads.py +0 -0
  29. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/parsers/parser/tieba.py +0 -0
  30. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/parsers/parser/tiktok.py +0 -0
  31. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/parsers/parser/twitter.py +0 -0
  32. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/parsers/parser/weibo.py +0 -0
  33. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/parsers/parser/weixin.py +0 -0
  34. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/parsers/parser/xhs.py +0 -0
  35. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/parsers/parser/xiaoheihe.py +0 -0
  36. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/parsers/parser/youtube.py +0 -0
  37. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/parsers/parser/zuiyou.py +0 -0
  38. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/provider_api/__init__.py +0 -0
  39. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/provider_api/bilibili.py +0 -0
  40. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/provider_api/coolapk.py +0 -0
  41. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/provider_api/douyin.py +0 -0
  42. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/provider_api/instagram.py +0 -0
  43. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/provider_api/kuaishou.py +0 -0
  44. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/provider_api/pipix.py +0 -0
  45. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/provider_api/threads.py +0 -0
  46. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/provider_api/tieba.py +0 -0
  47. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/provider_api/tiktok.py +0 -0
  48. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/provider_api/twitter.py +0 -0
  49. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/provider_api/weibo.py +0 -0
  50. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/provider_api/weixin.py +0 -0
  51. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/provider_api/xiaoheihe.py +0 -0
  52. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/provider_api/zuiyou.py +0 -0
  53. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/types/__init__.py +0 -0
  54. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/types/callback.py +0 -0
  55. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/types/media_file.py +0 -0
  56. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/types/media_ref.py +0 -0
  57. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/types/platform.py +0 -0
  58. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/types/post.py +0 -0
  59. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/types/result.py +0 -0
  60. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/utils/downloader.py +0 -0
  61. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/utils/helpers.py +0 -0
  62. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub/utils/media_info.py +0 -0
  63. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub.egg-info/SOURCES.txt +0 -0
  64. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub.egg-info/dependency_links.txt +0 -0
  65. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub.egg-info/entry_points.txt +0 -0
  66. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub.egg-info/requires.txt +0 -0
  67. {parsehub-2.0.32 → parsehub-2.0.33}/src/parsehub.egg-info/top_level.txt +0 -0
  68. {parsehub-2.0.32 → parsehub-2.0.33}/test/test_cli.py +0 -0
  69. {parsehub-2.0.32 → parsehub-2.0.33}/test/test_cli_config.py +0 -0
  70. {parsehub-2.0.32 → parsehub-2.0.33}/test/test_core_offline.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: parsehub
3
- Version: 2.0.32
3
+ Version: 2.0.33
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.32"
3
+ version = "2.0.33"
4
4
  description = "轻量、异步、开箱即用的社交媒体聚合解析库"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12.0"
@@ -100,7 +100,7 @@ class XHSAPI:
100
100
  stream = selected_stream[0]
101
101
  image = XHSMedia(
102
102
  XHSMediaType.LIVE_PHOTO,
103
- thumb_url=i["urlDefault"],
103
+ thumb_url=self.get_raw_image_url(i["urlDefault"]),
104
104
  url=stream["masterUrl"],
105
105
  width=i["width"],
106
106
  height=i["height"],
@@ -108,7 +108,7 @@ class XHSAPI:
108
108
  else:
109
109
  image = XHSMedia(
110
110
  XHSMediaType.IMAGE,
111
- url=i["urlDefault"],
111
+ url=self.get_raw_image_url(i["urlDefault"]),
112
112
  thumb_url=i["urlPre"],
113
113
  width=i["width"],
114
114
  height=i["height"],
@@ -120,6 +120,21 @@ class XHSAPI:
120
120
  html = await self.__fetch_html(url)
121
121
  return self.__parse(await self.__extract_data(html))
122
122
 
123
+ @staticmethod
124
+ def get_trace_id(img_url: str) -> str:
125
+ trace_id = img_url.split("/")[-1].split("!")[0]
126
+ if "spectrum" in img_url:
127
+ return "spectrum/" + trace_id
128
+ if "note_pre_post_uhdr" in img_url:
129
+ return "note_pre_post_uhdr/" + trace_id
130
+ if "notes_pre_post" in img_url:
131
+ return "notes_pre_post/" + trace_id
132
+ return trace_id
133
+
134
+ def get_raw_image_url(self, ime_url: str) -> str:
135
+ """拼接无水印图片链接"""
136
+ return f"http://sns-img-hw.xhscdn.com/{self.get_trace_id(ime_url)}"
137
+
123
138
 
124
139
  class XHSMediaType(Enum):
125
140
  IMAGE = "image"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: parsehub
3
- Version: 2.0.32
3
+ Version: 2.0.33
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
File without changes
File without changes