-
Notifications
You must be signed in to change notification settings - Fork 2
Release 3.0.0
Michael Beaton edited this page Nov 25, 2022
·
1 revision
If upgrading from an older version please be aware of these changes:
- Unused
MentionableMixin.allow_incoming_webmentions
field has been removed. - Any existing instances of
PendingIncomingWebmention
andPendingOutgoingContent
will be deleted.- These models have new constraints so it is necessary to recreate them.
- If this is problematic for you please don't upgrade yet. Contact me or create an issue and I will make a tool to persist these between versions.
Thanks to @philgyford for reporting most of the issues referenced here.
-
Resolves #25.
-
Added
QuotableMixin.post_type
field. -
Incoming webmentions are now checked for the following microformat
properties that describe the type of mention they are:u-bookmark-of
u-like-of
u-listen-of
u-in-reply-to
u-repost-of
u-translation-of
u-watch-of
-
The
/webmention/get
endpoint serializes these values in thetype
field respectively as:bookmark
like
listen
reply
repost
translation
watch
- If no specific
type
is specified this defaults towebmention
.
-
-
Resolves #30
- Added
MentionableMixin.should_process_webmentions() -> bool
method to enable custom logic.
- Added
-
Resolves #31
- Success message now rendered via template, enabling override by user.
-
Resolves #32
- Same-page #anchor links no longer treated as webmention targets.
-
- Much improved parsing of
h-card
.- Now tries to find an
h-card
that is directly related to the mention link (embedded inp-author
of a parenth-entry
orh-feed
container). - If that doesn't yield a result, try to find a top-level
h-card
on the page.
- Now tries to find an
- Removed
HCard.from_soup()
classmethod. Parsing logic moved totasks.incoming.parsing
package.
- Much improved parsing of
-
Resolves #36
- Added constraints to
PendingIncomingWebmention
andPendingOutgoingContent
to avoid duplication.-
Warning: If updating from an older version of
django-wm
this will delete any existingPending...
model instances.
-
Warning: If updating from an older version of
- Request timeouts are now handled gracefully.
-
PendingIncomingWebmention
andOutgoingWebmentionStatus
now implement the newRetryableMixin
. - Reworked webmention processing tasks to allow failed webmentions to be retried periodically.
- See settings
WEBMENTIONS_MAX_RETRIES
,WEBMENTIONS_RETRY_INTERVAL
,WEBMENTIONS_TIMEOUT
below for customisation details.
- See settings
- Added constraints to
-
New
dashboard/
view: a simple overview of recent mentions.- Shows the latest instances of
Webmention
,OutgoingWebmentionStatus
,PendingIncomingWebmention
,PendingOutgoingContent
and info on their current status. - By default, restricted to users with
mentions.view_webmention_dashboard
permission. - Can be made public via
settings.WEBMENTIONS_DASHBOARD_PUBLIC = True
.
- Shows the latest instances of
-
New optional settings:
-
settings.WEBMENTIONS_TIMEOUT
[float
| default=10
] specifies the time (in seconds) to wait for network calls to resolve. -
settings.WEBMENTIONS_RETRY_INTERVAL
[int
| default=600
] specifies the minimum time (in seconds) to wait before retrying to process a webmention. -
settings.WEBMENTIONS_MAX_RETRIES
[int
| default=5
] specifies how many times we can attempt to process a mention before giving up. -
settings.WEBMENTIONS_DASHBOARD_PUBLIC
[bool
| default=False
] specifies whether the thedashboard/
view can be viewed by anyone. IfFalse
(default), thedashboard/
view is only available to users withmentions.view_webmention_dashboard
permission.
-
-
WebmentionHeadMiddleware
- Removed port from generated endpoint URL in HTTP headers as
request.META.SERVER_PORT
may not be reliable depending on reverse proxy configuration.
- Removed port from generated endpoint URL in HTTP headers as
-
MentionableMixin
:-
mentions()
is now a method, not a property. - Removed field
allow_incoming_webmentions
as it has never been used for anything.
-
-
Streamlined template tags
-
{% load webmentions_endpoint %}
replaced by{% load webmentions %}
. -
{% webmention_endpoint %}
replaced by{% webmentions_endpoint %}
(used in HTML<head>
). - New tag
{% webmentions_dashboard %}
creates a link to yourwebmentions/dashboard/
view.
-