[wp-trac] [WordPress Trac] #35435: Support Webmentions
WordPress Trac
noreply at wordpress.org
Thu Jan 14 06:02:26 UTC 2016
#35435: Support Webmentions
------------------------------+------------------------------
Reporter: dshanske | Owner:
Type: enhancement | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Pings/Trackbacks | Version:
Severity: normal | Resolution:
Keywords: | Focuses:
------------------------------+------------------------------
Comment (by dshanske):
Part of the big problem with implementing per the spec is the asynchronous
processing by the receiver, however without it, you lose some of the
advantages. This needs to be very carefully thought out to avoid it
becoming a liability.
This is what I have so far trying to break the specification down. A
webmention is sent to the endpoint...
1. The receiver checks if they are valid URLs and that the target is
something accepting webmentions.
2. A comment is created with a new status(let's call it queued or pending,
names don't matter) and comment type webmention. This status does not
trigger the traditional spam checks. It would return notice of the queue
to the sender with a URL to check status.
3. A wp-cron job processes the pending webmentions. The job would then...
4. Check for previous webmentions with the same source and target. If
multiple webmentions, that is probably indicative of a flood.
5. If there is an existing webmention with same source and target, call a
function to update the existing webmention. Otherwise, create a new
webmention.
6. Regardless, retrieve the source document, imposing a maximum size and
timeout limitation to prevent exploits, verify the source document links
to the target URL.
7. If there isn't a match, the update function would delete the existing
webmention. If there is no existing webmention, it should be classified as
spam so it could be used appropriately.
8. If there is a match, the webmention would be parsed(separate issue), a
complete webmention would be run through the traditional spam checks and
plugin hooks, and posted or not as the case may be.
There are opportunities to break this into pieces to make it more
manageable. But there is no specific urgency for a webmention to be
displayed immediately upon its receipt. The queue could process it 2
seconds later, or 5 minutes later.
--
Ticket URL: <https://core.trac.wordpress.org/ticket/35435#comment:2>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list