MCPcopy
hub / github.com/chinesehuazhou/python-weekly / disclose_full_issue

Function disclose_full_issue

resources/weekly_workflow.py:652–708  ·  view source on GitHub ↗

公开处理 N-50 期:将归档全文替换正式目录的简化版。 检查 docs/tmp/ 中是否有第 N-50 期的全文版,若有则: 1. 中文:提取全文,去掉 Astro 专用 frontmatter,覆盖 docs/ 2. 英文:若 docs/en/tmp/ 有全文,覆盖 docs/en/ 3. astro-blog:用完整 frontmatter 的全文覆盖博客简化版 4. 清理 tmp 归档文件

(weekly_no)

Source from the content-addressed store, hash-verified

650
651
652def disclose_full_issue(weekly_no):
653 """公开处理 N-50 期:将归档全文替换正式目录的简化版。
654
655 检查 docs/tmp/ 中是否有第 N-50 期的全文版,若有则:
656 1. 中文:提取全文,去掉 Astro 专用 frontmatter,覆盖 docs/
657 2. 英文:若 docs/en/tmp/ 有全文,覆盖 docs/en/
658 3. astro-blog:用完整 frontmatter 的全文覆盖博客简化版
659 4. 清理 tmp 归档文件
660 """
661 target_no = int(weekly_no) - 50
662 if target_no < 1:
663 return
664
665 issues = _scan_weekly_issues()
666 target_date = _find_issue_date(target_no, issues)
667 if not target_date:
668 return
669
670 project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
671
672 # 1. 中文全文:docs/tmp/ → docs/
673 tmp_zh = os.path.join(project_root, 'docs', 'tmp', f'{target_date}-weekly.md')
674 docs_zh = os.path.join(project_root, 'docs', f'{target_date}-weekly.md')
675
676 if os.path.exists(tmp_zh) and os.path.exists(docs_zh):
677 full_content = open(tmp_zh, encoding='utf-8').read()
678 # GitHub 版只保留 title + pubDate
679 github_content = _strip_frontmatter_for_github(full_content)
680 with open(docs_zh, 'w', encoding='utf-8') as f:
681 f.write(github_content)
682 print(f" ✓ 中文全文已公开: docs/{target_date}-weekly.md")
683
684 # 3. astro-blog:保留完整 frontmatter
685 blog_dir = os.path.expanduser('~/Documents/GitHub/astro-blog/src/pages/posts')
686 blog_file = os.path.join(blog_dir, f'{target_date}-weekly.md')
687 if os.path.exists(blog_dir):
688 with open(blog_file, 'w', encoding='utf-8') as f:
689 f.write(full_content)
690 print(f" ✓ astro-blog 已同步: {target_date}-weekly.md")
691
692 # 清理 tmp 中文归档
693 os.remove(tmp_zh)
694 print(f" ✓ 已清理: docs/tmp/{target_date}-weekly.md")
695 else:
696 if os.path.exists(docs_zh):
697 # 正式目录已是全文版(之前公开过),跳过
698 pass
699
700 # 2. 英文全文:docs/en/tmp/ → docs/en/
701 tmp_en = os.path.join(project_root, 'docs', 'en', 'tmp', f'{target_date}-weekly.md')
702 docs_en = os.path.join(project_root, 'docs', 'en', f'{target_date}-weekly.md')
703
704 if os.path.exists(tmp_en) and os.path.exists(docs_en):
705 shutil.copy2(tmp_en, docs_en)
706 print(f" ✓ 英文全文已公开: docs/en/{target_date}-weekly.md")
707 os.remove(tmp_en)
708 print(f" ✓ 已清理: docs/en/tmp/{target_date}-weekly.md")
709

Callers 1

process_weeklyFunction · 0.85

Calls 3

_scan_weekly_issuesFunction · 0.85
_find_issue_dateFunction · 0.85

Tested by

no test coverage detected