fix: api_save erstellt Artikel wenn keiner existiert, api_schedule findet auch approved-Artikel

This commit is contained in:
root 2026-03-11 20:55:10 +07:00
parent 2769b2e7c5
commit 075f3763a4

View file

@ -357,7 +357,7 @@ def api_save(date_str):
return jsonify({'success': True, 'article_id': existing['id']})
all_today = db.get_articles_by_date(date_str)
draft = next((a for a in all_today if a['status'] == 'draft'), None)
candidate = draft or next((a for a in all_today if a['status'] in ('pending_review', 'scheduled', 'sent_to_bot')), None)
candidate = draft or next((a for a in all_today if a['status'] in ('pending_review', 'scheduled', 'sent_to_bot', 'approved')), None)
if candidate:
old_time = candidate['post_time']
conn = db.get_conn()
@ -367,7 +367,11 @@ def api_save(date_str):
db.update_article_content(date_str, content, post_time=post_time)
flog.article_saved(date_str, post_time)
return jsonify({'success': True, 'article_id': candidate['id']})
return jsonify({'success': False, 'error': 'Kein Artikel für diesen Tag vorhanden'})
# Kein Artikel vorhanden → neu erstellen (z.B. manueller Eintrag für zukünftigen Tag)
db.create_article(date_str, '', content, None, 'allgemein', post_time)
new_article = db.get_article_by_date(date_str, post_time)
flog.article_saved(date_str, post_time)
return jsonify({'success': True, 'article_id': new_article['id'] if new_article else None})
@app.route('/api/article/<date_str>/schedule', methods=['POST'])
@ -381,7 +385,7 @@ def api_schedule(date_str):
existing = db.get_article_by_date(date_str, post_time)
if not existing:
all_today = db.get_articles_by_date(date_str)
candidate = next((a for a in all_today if a['status'] in ('draft', 'scheduled', 'sent_to_bot', 'pending_review')), None)
candidate = next((a for a in all_today if a['status'] in ('draft', 'scheduled', 'sent_to_bot', 'pending_review', 'approved')), None)
if not candidate:
return jsonify({'success': False, 'error': 'Kein Artikel für diesen Tag gefunden'})
old_time = candidate['post_time']