diff --git a/backend/data/blooms.py b/backend/data/blooms.py index 7e280cf..383e14e 100644 --- a/backend/data/blooms.py +++ b/backend/data/blooms.py @@ -15,7 +15,9 @@ class Bloom: sent_timestamp: datetime.datetime + def add_bloom(*, sender: User, content: str) -> Bloom: + hashtags = [word[1:] for word in content.split(" ") if word.startswith("#")] now = datetime.datetime.now(tz=datetime.UTC) diff --git a/backend/endpoints.py b/backend/endpoints.py index 0e177a0..757da73 100644 --- a/backend/endpoints.py +++ b/backend/endpoints.py @@ -177,6 +177,7 @@ def get_bloom(id_str): return make_response((f"Bloom not found", 404)) return jsonify(bloom) +MAX_BLOOM_LENGTH = 280 @jwt_required() def home_timeline(): @@ -198,6 +199,9 @@ def home_timeline(): # Combine own blooms with followed blooms all_blooms = followed_blooms + own_blooms + # Filter long blooms (over 280 characters) + all_blooms = [bloom for bloom in all_blooms if len(bloom.content) <= MAX_BLOOM_LENGTH] + # Sort by timestamp (newest first) sorted_blooms = list( sorted(all_blooms, key=lambda bloom: bloom.sent_timestamp, reverse=True) diff --git a/front-end/components/bloom-form.mjs b/front-end/components/bloom-form.mjs index e047f9a..4bc988c 100644 --- a/front-end/components/bloom-form.mjs +++ b/front-end/components/bloom-form.mjs @@ -27,6 +27,7 @@ async function handleBloomSubmit(event) { const textarea = form.querySelector("textarea"); const content = textarea.value.trim(); + try { // Make form inert while we call the back end form.inert = true;