python-library-ff14-news 0.0.0__tar.gz → 0.0.1__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 (66) hide show
  1. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/.gitignore +5 -0
  2. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/PKG-INFO +1 -1
  3. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/pyproject.toml +1 -1
  4. python_library_ff14_news-0.0.0/_debug_jp_list.py +0 -11
  5. python_library_ff14_news-0.0.0/_debug_jp_list2.py +0 -17
  6. python_library_ff14_news-0.0.0/_debug_jp_list3.py +0 -13
  7. python_library_ff14_news-0.0.0/_jp_detail.html +0 -1345
  8. python_library_ff14_news-0.0.0/_jp_list_ctx.txt +0 -10
  9. python_library_ff14_news-0.0.0/_jp_news__list_banner.txt +0 -1
  10. python_library_ff14_news-0.0.0/_jp_news__list_header.txt +0 -9
  11. python_library_ff14_news-0.0.0/_jp_topics_snippet.html +0 -0
  12. python_library_ff14_news-0.0.0/_probe_jp_detail.py +0 -15
  13. python_library_ff14_news-0.0.0/_probe_jp_list_only.py +0 -29
  14. python_library_ff14_news-0.0.0/_probe_jp_lodestone.py +0 -31
  15. python_library_ff14_news-0.0.0/_probe_jp_lodestone2.py +0 -30
  16. python_library_ff14_news-0.0.0/_probe_jp_lodestone3.py +0 -48
  17. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/.cursor/skills/ff14_news-package-changelog/SKILL.md +0 -0
  18. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/.cursor/skills/ff14_news-package-design/SKILL.md +0 -0
  19. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/.cursor/skills/ff14_news-package-preload/SKILL.md +0 -0
  20. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/README.md +0 -0
  21. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/example/__init__.py +0 -0
  22. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/example/__main__.py +0 -0
  23. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/example/ensure_browser.py +0 -0
  24. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/example/export_feed.py +0 -0
  25. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/example/weibo_cookie.txt.example +0 -0
  26. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/example.bat +0 -0
  27. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/ff14_news/__init__.py +0 -0
  28. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/ff14_news/channel_protocol.py +0 -0
  29. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/ff14_news/channels/__init__.py +0 -0
  30. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/ff14_news/channels/cn_official/__init__.py +0 -0
  31. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/ff14_news/channels/cn_official/channel.py +0 -0
  32. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/ff14_news/channels/cn_official/constants.py +0 -0
  33. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/ff14_news/channels/cn_official/cqnews_client.py +0 -0
  34. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/ff14_news/channels/cn_official/html_content.py +0 -0
  35. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/ff14_news/channels/cn_weibo/__init__.py +0 -0
  36. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/ff14_news/channels/cn_weibo/browser_cookies.py +0 -0
  37. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/ff14_news/channels/cn_weibo/channel.py +0 -0
  38. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/ff14_news/channels/cn_weibo/constants.py +0 -0
  39. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/ff14_news/channels/cn_weibo/crawl_backend.py +0 -0
  40. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/ff14_news/channels/cn_weibo/exceptions.py +0 -0
  41. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/ff14_news/channels/cn_weibo/mblog_parser.py +0 -0
  42. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/ff14_news/channels/cn_weibo/post_adapter.py +0 -0
  43. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/ff14_news/channels/cn_weibo/profile.py +0 -0
  44. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/ff14_news/channels/cn_weibo/proxy_url.py +0 -0
  45. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/ff14_news/channels/jp_official/__init__.py +0 -0
  46. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/ff14_news/channels/jp_official/channel.py +0 -0
  47. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/ff14_news/channels/jp_official/constants.py +0 -0
  48. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/ff14_news/channels/jp_official/detail_parser.py +0 -0
  49. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/ff14_news/channels/jp_official/http_client.py +0 -0
  50. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/ff14_news/channels/jp_official/list_parser.py +0 -0
  51. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/ff14_news/common/html_blocks.py +0 -0
  52. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/ff14_news/common/list_feed.py +0 -0
  53. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/ff14_news/ff14_news.py +0 -0
  54. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/ff14_news/models.py +0 -0
  55. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/test.bat +0 -0
  56. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/tests/__init__.py +0 -0
  57. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/tests/test_cn_weibo_parser.py +0 -0
  58. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/tests/test_cn_weibo_post_adapter.py +0 -0
  59. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/tests/test_cn_weibo_profile.py +0 -0
  60. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/tests/test_cn_weibo_proxy_url.py +0 -0
  61. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/tests/test_html_content.py +0 -0
  62. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/tests/test_integration.py +0 -0
  63. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/tests/test_jp_detail_parser.py +0 -0
  64. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/tests/test_jp_list_parser.py +0 -0
  65. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/tests/test_list_feed.py +0 -0
  66. {python_library_ff14_news-0.0.0 → python_library_ff14_news-0.0.1}/update.bat +0 -0
@@ -15,3 +15,8 @@ example/output/
15
15
  # 微博登录 Cookie / Playwright 会话(本地私密)
16
16
  example/weibo_cookie.txt
17
17
  example/.weibo_browser_state.json
18
+
19
+ # 开发期临时探针/调试(包根,勿提交)
20
+ /_probe_*.py
21
+ /_debug_*.py
22
+ /_jp_*
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-library-ff14-news
3
- Version: 0.0.0
3
+ Version: 0.0.1
4
4
  Requires-Python: >=3.10
5
5
  Requires-Dist: crawl4weibo>=0.1.0
6
6
  Requires-Dist: pydantic>=2.0
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "python-library-ff14-news"
7
- version = "0.0.0"
7
+ version = "0.0.1"
8
8
  requires-python = ">=3.10"
9
9
  dependencies = [
10
10
  "pydantic>=2.0",
@@ -1,11 +0,0 @@
1
- import re
2
-
3
- from ff14_news.channels.jp_official.http_client import fetch_html
4
- from ff14_news.channels.jp_official.list_parser import topics_list_url
5
-
6
- html = fetch_html(topics_list_url(0), timeout_seconds=120)
7
- print("topics count", html.count("news__list--topics"))
8
- pat = r'<li class="news__list--topics[^"]*">'
9
- print("split", len(re.split(pat, html)))
10
- idx = html.find("news__list--topics")
11
- print("sample", repr(html[idx : idx + 100]))
@@ -1,17 +0,0 @@
1
- import re
2
-
3
- from ff14_news.channels.jp_official.http_client import fetch_html
4
- from ff14_news.channels.jp_official.list_parser import (
5
- _parse_item_fragment,
6
- topics_list_url,
7
- )
8
-
9
- html = fetch_html(topics_list_url(0), timeout_seconds=120)
10
- pat = re.compile(r'<li class="news__list--topics[^"]*">')
11
- frags = pat.split(html)
12
- print("frags", len(frags))
13
- frag = frags[1]
14
- print("frag len", len(frag))
15
- print("id re", bool(re.search(r"/lodestone/topics/detail/([a-f0-9]+)/", frag)))
16
- row = _parse_item_fragment(frag)
17
- print("row", row)
@@ -1,13 +0,0 @@
1
- import re
2
-
3
- from ff14_news.channels.jp_official.http_client import fetch_html
4
- from ff14_news.channels.jp_official.list_parser import topics_list_url
5
-
6
- html = fetch_html(topics_list_url(0), timeout_seconds=120)
7
- pat = re.compile(r'<li class="news__list--topics[^"]*">')
8
- frag = pat.split(html)[1]
9
- links = re.findall(r"/lodestone/topics/detail/[^\"']+", frag)
10
- print("links", links[:3])
11
- # maybe uppercase
12
- links2 = re.findall(r"/lodestone/topics/detail/([A-Fa-f0-9]+)", frag)
13
- print("ids", links2[:3])