fixed facebook format (#142)

This commit is contained in:
Simone Robutti 2022-02-16 13:51:00 +01:00 committed by GitHub
parent 9c44c8d730
commit 11de1e1213
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 79 additions and 0 deletions

View File

@ -5,6 +5,7 @@ import pkg_resources
from facebook import GraphAPIError from facebook import GraphAPIError
from mobilizon_reshare.event.event import MobilizonEvent from mobilizon_reshare.event.event import MobilizonEvent
from mobilizon_reshare.formatting.description import html_to_plaintext
from mobilizon_reshare.publishers.abstract import ( from mobilizon_reshare.publishers.abstract import (
AbstractPlatform, AbstractPlatform,
AbstractEventFormatter, AbstractEventFormatter,
@ -38,6 +39,11 @@ class FacebookFormatter(AbstractEventFormatter):
def _validate_message(self, message) -> None: def _validate_message(self, message) -> None:
pass pass
def _preprocess_event(self, event: MobilizonEvent):
event.description = html_to_plaintext(event.description)
event.name = html_to_plaintext(event.name)
return event
class FacebookPlatform(AbstractPlatform): class FacebookPlatform(AbstractPlatform):
""" """

View File

@ -7,3 +7,5 @@
{% endif %} {% endif %}
{{ description }} {{ description }}
Link: {{mobilizon_link}}

View File

@ -0,0 +1,71 @@
from datetime import datetime, timedelta, timezone
from uuid import UUID
import arrow
import pytest
from mobilizon_reshare.event.event import MobilizonEvent
from mobilizon_reshare.publishers.platforms.platform_mapping import get_formatter_class
@pytest.fixture()
def event() -> MobilizonEvent:
begin_date = arrow.get(
datetime(
year=2021,
month=1,
day=1,
hour=11,
minute=30,
tzinfo=timezone(timedelta(hours=1)),
)
)
return MobilizonEvent(
name="test event",
description="<p>description of the event</p>",
begin_datetime=begin_date,
end_datetime=begin_date.shift(hours=1),
mobilizon_link="http://some_link.com/123",
mobilizon_id=UUID(int=12345),
thumbnail_link="http://some_link.com/123.jpg",
location="location",
last_update_time=begin_date,
)
@pytest.mark.parametrize(
"publisher_name,expected_output",
[
[
"facebook",
"""#
🕒 01 January, 11:30 - 01 January, 12:30
📍 location
description of the event
Link: http://some_link.com/123
""",
],
[
"telegram",
"""<strong>test event</strong>
🕒 01 January, 11:30 - 01 January, 12:30
📍 location
description of the event
<a href="http://some_link.com/123">Link</a>""",
],
],
)
def test_output_format(event, publisher_name, expected_output):
assert (
get_formatter_class(publisher_name)().get_message_from_event(event).strip()
== expected_output.strip()
)