Add or edit a bounty price on an existing profiler entry (admin only).
()
| 15828 | except Exception: |
| 15829 | body_txt = "[decrypt failed]" |
| 15830 | m = { |
| 15831 | "id": r["id"], |
| 15832 | "sender": r["sender"], |
| 15833 | "kind": "voice" if has_voice2 else "text", |
| 15834 | "body": body_txt if not has_voice2 else "", |
| 15835 | "created_at_local": _local_time_str(r["created_at"]), |
| 15836 | "created_at_utc": r["created_at"], |
| 15837 | "voice_id": v["id"] if v else None, |
| 15838 | "voice_mime": v["mime"] if v else "audio/webm", |
| 15839 | } |
| 15840 | html_row = render_template_string(_GROUP_ROW_TEMPLATE, m=m, me=me) |
| 15841 | m["voice_url"] = (url_for("group_voice_stream", vid=m["voice_id"]) if m.get("voice_id") else None) |
| 15842 | return jsonify(ok=True, id=gm_id, html=html_row, message=m) |
| 15843 | |
| 15844 | return redirect(url_for("group_chat", gid=gid)) |
| 15845 | |
| 15846 | except Exception as e: |
| 15847 | try: |
| 15848 | conn.rollback() |
| 15849 | except Exception: |
| 15850 | pass |
| 15851 | for sp in saved_paths: |
| 15852 | try: |
| 15853 | if sp and os.path.exists(sp): |
| 15854 | os.remove(sp) |
| 15855 | except Exception: |
| 15856 | pass |
| 15857 | log.exception("group_send failed: %s", e) |
| 15858 | if is_ajax: |
| 15859 | return jsonify(ok=False, error="Send failed"), 500 |
| 15860 | flash("Send failed.") |
| 15861 | return redirect(url_for("group_chat", gid=gid)) |
| 15862 | finally: |
| 15863 | try: |
| 15864 | conn.close() |
| 15865 | except Exception: |
| 15866 | pass |
| 15867 | |
| 15868 | |
| 15869 | |
| 15870 |
nothing calls this directly
no test coverage detected