From line changed to Logged on <date> from
Build LinkLog Development Image / development-image (push) Successful in 12s

This commit is contained in:
2026-08-30 21:25:15 +02:00
parent 1c307fac94
commit 5ff947d435
2 changed files with 16 additions and 2 deletions
+14 -1
View File
@@ -3,6 +3,7 @@
import json import json
import logging import logging
from datetime import datetime, timezone
from urllib.error import HTTPError, URLError from urllib.error import HTTPError, URLError
from urllib.parse import urlencode from urllib.parse import urlencode
from urllib.request import Request from urllib.request import Request
@@ -77,7 +78,19 @@ class MastodonPlugin(BasePlugin):
if event.get('comment'): if event.get('comment'):
status_parts.append(event['comment']) status_parts.append(event['comment'])
if title: if title:
status_parts.append(f'from: {event.get("url", "")}') timestamp_value = event.get('timestamp') or event.get('created_at')
url = str(event.get('url', '') or '').strip()
if timestamp_value:
try:
parsed = datetime.fromisoformat(str(timestamp_value).replace('Z', '+00:00'))
if parsed.tzinfo is None:
parsed = parsed.replace(tzinfo=timezone.utc)
formatted = parsed.astimezone(timezone.utc).strftime('%Y %B %d - %H:%M')
status_parts.append(f'Logged on {formatted} from: {url}')
except ValueError:
status_parts.append(f'Logged from: {url}')
else:
status_parts.append(f'Logged from: {url}')
if event.get('tags'): if event.get('tags'):
status_parts.append(' '.join(event['tags'])) status_parts.append(' '.join(event['tags']))
post_body = '\n\n'.join(status_parts) post_body = '\n\n'.join(status_parts)
+2 -1
View File
@@ -885,6 +885,7 @@ def test_link_submission_posts_to_enabled_mastodon_plugin():
'title': 'A useful page', 'title': 'A useful page',
'url': 'https://example.com/useful', 'url': 'https://example.com/useful',
'comment': 'Worth sharing', 'comment': 'Worth sharing',
'timestamp': '2026-08-29T21:10:00Z',
'tags': ['#python', '#web'], 'tags': ['#python', '#web'],
}) })
@@ -892,7 +893,7 @@ def test_link_submission_posts_to_enabled_mastodon_plugin():
assert received['path'] == '/api/v1/statuses' assert received['path'] == '/api/v1/statuses'
assert received['authorization'] == 'Bearer test-token' assert received['authorization'] == 'Bearer test-token'
assert received['content_type'] == 'application/x-www-form-urlencoded' assert received['content_type'] == 'application/x-www-form-urlencoded'
assert received['body'] == {'status': ['From my #LinkLog:\n\nA useful page\n\nWorth sharing\n\nfrom: https://example.com/useful\n\n#python #web']} assert received['body'] == {'status': ['From my #LinkLog:\n\nA useful page\n\nWorth sharing\n\nLogged on 2026 August 29 - 21:10 from: https://example.com/useful\n\n#python #web']}
posted_item = next(item for item in client.get('/api/public/feed/alice', headers=headers).json() if item['id'] == response.json()['id']) posted_item = next(item for item in client.get('/api/public/feed/alice', headers=headers).json() if item['id'] == response.json()['id'])
assert posted_item['mastodon_posted'] is True assert posted_item['mastodon_posted'] is True
finally: finally: