55
55
# --- ここまで ---
56
56
57
57
def check_flutter_changelog ():
58
- """Flutter CHANGELOGから最新の更新をチェックする """
58
+ """Flutter CHANGELOGから最新の更新をチェックし、内容を要約する """
59
59
try :
60
60
# GitHub APIを使用してCHANGELOG.mdの最新コミットを取得
61
61
api_url = "https://api.github.com/repos/flutter/flutter/commits?path=CHANGELOG.md&per_page=1"
@@ -68,8 +68,38 @@ def check_flutter_changelog():
68
68
since_date = datetime .datetime .now () - datetime .timedelta (days = DAYS_AGO )
69
69
70
70
if commit_date >= since_date :
71
- changelog_url = "https://github.com/flutter/flutter/blob/stable/CHANGELOG.md"
72
- return f"- Title: Flutter CHANGELOG Updated\n URL: { changelog_url } \n Source: Flutter Official\n \n "
71
+ # CHANGELOGの内容を取得
72
+ changelog_content_url = "https://raw.githubusercontent.com/flutter/flutter/stable/CHANGELOG.md"
73
+ changelog_response = requests .get (changelog_content_url )
74
+
75
+ if changelog_response .status_code == 200 :
76
+ changelog_content = changelog_response .text
77
+
78
+ # 最新バージョンセクションを抽出(最初の##から次の##まで)
79
+ lines = changelog_content .split ('\n ' )
80
+ latest_section = []
81
+ in_latest_section = False
82
+ section_count = 0
83
+
84
+ for line in lines :
85
+ if line .startswith ('## ' ):
86
+ if in_latest_section :
87
+ break
88
+ in_latest_section = True
89
+ section_count += 1
90
+ if section_count > 1 :
91
+ break
92
+ elif in_latest_section :
93
+ latest_section .append (line )
94
+
95
+ # 最新の変更内容を要約
96
+ latest_changes = '\n ' .join (latest_section )
97
+
98
+ changelog_url = "https://github.com/flutter/flutter/blob/stable/CHANGELOG.md"
99
+ return f"- Title: Flutter CHANGELOG Updated\n URL: { changelog_url } \n Source: Flutter Official\n Changes: { latest_changes [:500 ]} ...\n \n "
100
+ else :
101
+ changelog_url = "https://github.com/flutter/flutter/blob/stable/CHANGELOG.md"
102
+ return f"- Title: Flutter CHANGELOG Updated\n URL: { changelog_url } \n Source: Flutter Official\n \n "
73
103
except Exception as e :
74
104
print (f"Error checking Flutter changelog: { e } " )
75
105
return ""
@@ -154,7 +184,13 @@ def generate_article_with_ai(articles):
154
184
- 新機能や重要なアップデート情報を優先
155
185
- ベストプラクティスやアーキテクチャに関する記事を重視
156
186
- 個人的な体験談や基本的なチュートリアルは避ける
157
- 4. **記事解説**: 各ニュースについて2〜3文程度の詳しい解説や注目ポイント、重要性を追記(「解説:」というプレフィックスは不要)
187
+ 4. **記事解説**: 各ニュースについて4〜6文程度の詳しい解説を必ず追記する。以下の要素を含める:
188
+ - **技術的な詳細**: 何がどのように変更・改善されたのか(CHANGELOGなど実際の内容がある場合は具体的に要約)
189
+ - **開発者への影響**: 実際の開発にどう影響するのか
190
+ - **注目ポイント**: なぜこのニュースが重要なのか
191
+ - **具体的な活用方法**: どのように活用できるのか
192
+ - **今後の展望**: 今後どのような発展が期待できるのか
193
+ (「解説:」というプレフィックスは不要。「Changes:」フィールドがある場合は、その内容を活用して具体的な変更点を説明する)
158
194
5. **まとめセクション**: 最後に「## まとめ」セクションを追加し、全体のまとめや来週への期待を述べるポジティブな締めの文を記述
159
195
6. **編集後記セクション**: まとめの後に「## 編集後記」セクションを追加し、「(ここは人間が手動で編集します)」というプレースホルダーテキストのみを記述
160
196
7. **言語**: 必ず日本語で記述
0 commit comments