Fix poll for Pleroma

This commit is contained in:
Thomas Sileo 2019-07-17 16:14:29 +02:00
parent 8ed8a436e5
commit 733d6c0ca5
2 changed files with 21 additions and 2 deletions

View file

@ -83,6 +83,18 @@ def _answer_key(choice: str) -> str:
return h.hexdigest()
def _is_local_reply(create: ap.Create) -> bool:
for dest in _to_list(create.to or []):
if dest.startswith(BASE_URL):
return True
for dest in _to_list(create.cc or []):
if dest.startswith(BASE_URL):
return True
return False
class Box(Enum):
INBOX = "inbox"
OUTBOX = "outbox"
@ -641,7 +653,7 @@ class MicroblogPubBackend(Backend):
if (
reply.id.startswith(BASE_URL)
and reply.has_type(ap.ActivityType.QUESTION.value)
and _to_list(create.get_object().to)[0].startswith(BASE_URL)
and _is_local_reply(create)
and not create.is_public()
):
return self._process_question_reply(create, reply)

9
app.py
View file

@ -1594,6 +1594,7 @@ def admin_notifications():
replies_query = {
"type": ActivityType.CREATE.value,
"activity.object.inReplyTo": {"$regex": f"^{BASE_URL}"},
"meta.poll_answer": False,
}
announced_query = {
"type": ActivityType.ANNOUNCE.value,
@ -2163,7 +2164,13 @@ def api_new_question():
a = _user_api_arg(f"answer{i}", default=None)
if not a:
break
answers.append({"type": ActivityType.NOTE.value, "name": a})
answers.append(
{
"type": ActivityType.NOTE.value,
"name": a,
"replies": {"type": ActivityType.COLLECTION.value, "totalItems": 0},
}
)
open_for = int(_user_api_arg("open_for"))
choices = {