Add event reminder (=self announcing of event at a specified time gap before the event starts) #58

Open
linos wants to merge 9 commits from self_announce into main
Owner

Note


This is currently not merged until upstream issue (https://github.com/Automattic/wordpress-activitypub/issues/938) is solved.
Re-implenting the scheduling off the announce logic would lead to a lot of duplicated code, it would be possible, but it is much cleaner to just wait for upstream to provide a better API for scheduling ActivityPub activities.

This pull requests adds a feature which allows sending reminders that an event is about to start to ActivityPub followers.

How it works:

  • It allows for a general setting that controls this behavior for all public events as well as an override per event via an meta field.
  • Uses WordPress schedules to schedule a single event when the reminder will be send.
  • Currently it only sends an Announce of the Event itself.
  • For simplicity and straightforwardness in the UI there are currently the following choices: Disables, 6 hours, 1 day, 3 days, 1 week.

Screenshots
image
image

To do:

Further thoughts:
Sending an announce of an ActivityPub object that has already been shared via a create works well for some platforms but not that well for others. Whether the boost shows up in a Mastodon timeline, is highly depending on which app someone is using as well as the way the target ActivityPub software handles not showing the same object twice within a time frame.

Another more strict way of making sure the event shows up in the timeline of followers again would be sending a automatically composed note that links to the event, but this is not in the scope of the pull request.

> **Note** > This is currently not merged until upstream issue (https://github.com/Automattic/wordpress-activitypub/issues/938) is solved. > Re-implenting the scheduling off the announce logic would lead to a lot of duplicated code, it would be possible, but it is much cleaner to just wait for upstream to provide a better API for scheduling ActivityPub activities. This pull requests adds a feature which allows sending reminders that an event is about to start to ActivityPub followers. **How it works:** - It allows for a general setting that controls this behavior for all public events as well as an override per event via an meta field. - Uses WordPress schedules to schedule a single event when the reminder will be send. - Currently it only sends an Announce of the Event itself. - For simplicity and straightforwardness in the UI there are currently the following choices: Disables, 6 hours, 1 day, 3 days, 1 week. **Screenshots** ![image](/attachments/9f26138c-48b7-4ce7-b567-02ce6f205cdd) ![image](/attachments/ee536e76-2de0-49df-868a-d391f973eb57) **To do:** - [x] Documenting the code. - [x] Documenting this feature in the Readme (https://code.event-federation.eu/Event-Federation/wordpress-activitypub-event-bridge/pulls/65) - [ ] Upstream issue (https://github.com/Automattic/wordpress-activitypub/issues/938) - [x] Write tests **Further thoughts:** Sending an announce of an ActivityPub object that has already been shared via a create works well for some platforms but not that well for others. Whether the boost shows up in a Mastodon timeline, is highly depending on which app someone is using as well as the way the target ActivityPub software handles not showing the same object twice within a time frame. Another more strict way of making sure the event shows up in the timeline of followers again would be sending a automatically composed note that links to the event, but this is not in the scope of the pull request.
linos added the
Mandatory
label 2024-10-11 10:59:45 +02:00
linos self-assigned this 2024-10-11 10:59:45 +02:00
linos added 1 commit 2024-10-11 10:59:45 +02:00
first draft for event reminders
Some checks failed
PHP Code Checker / PHP Code Checker (pull_request) Failing after 42s
PHPUnit / PHPUnit – PHP 8.1 (pull_request) Successful in 1m10s
PHPUnit / PHPUnit – PHP 8.2 (pull_request) Successful in 1m1s
PHPUnit / PHPUnit – PHP 8.3 (pull_request) Successful in 1m3s
92fc3ecec0
linos added this to the 3. Beta State project 2024-10-11 10:59:45 +02:00
linos added this to the Feature: Send reminders milestone 2024-10-11 11:09:25 +02:00
linos added 1 commit 2024-10-11 19:05:25 +02:00
add tests
Some checks failed
PHP Code Checker / PHP Code Checker (pull_request) Failing after 41s
PHPUnit / PHPUnit – PHP 8.1 (pull_request) Successful in 1m6s
PHPUnit / PHPUnit – PHP 8.3 (pull_request) Has been cancelled
PHPUnit / PHPUnit – PHP 8.2 (pull_request) Has been cancelled
63bf5d26ce
linos added 1 commit 2024-10-11 19:07:10 +02:00
phpcs
Some checks failed
PHP Code Checker / PHP Code Checker (pull_request) Failing after 35s
PHPUnit / PHPUnit – PHP 8.1 (pull_request) Successful in 1m7s
PHPUnit / PHPUnit – PHP 8.2 (pull_request) Successful in 1m2s
PHPUnit / PHPUnit – PHP 8.3 (pull_request) Successful in 1m8s
2d902806ee
linos added 1 commit 2024-10-11 19:20:51 +02:00
exclude js from phpcs
Some checks failed
PHP Code Checker / PHP Code Checker (pull_request) Failing after 41s
PHPUnit / PHPUnit – PHP 8.1 (pull_request) Successful in 1m4s
PHPUnit / PHPUnit – PHP 8.2 (pull_request) Successful in 1m45s
PHPUnit / PHPUnit – PHP 8.3 (pull_request) Successful in 1m8s
d5dcfd5e0c
linos added 1 commit 2024-10-11 19:27:15 +02:00
fix phpcs
All checks were successful
PHP Code Checker / PHP Code Checker (pull_request) Successful in 40s
PHPUnit / PHPUnit – PHP 8.1 (pull_request) Successful in 1m4s
PHPUnit / PHPUnit – PHP 8.2 (pull_request) Successful in 1m7s
PHPUnit / PHPUnit – PHP 8.3 (pull_request) Successful in 1m7s
4263233e10
linos added 1 commit 2024-10-11 19:31:00 +02:00
Merge branch 'main' into self_announce
All checks were successful
PHP Code Checker / PHP Code Checker (pull_request) Successful in 41s
PHPUnit / PHPUnit – PHP 8.1 (pull_request) Successful in 1m7s
PHPUnit / PHPUnit – PHP 8.2 (pull_request) Successful in 1m5s
PHPUnit / PHPUnit – PHP 8.3 (pull_request) Successful in 1m8s
ecb6fce8bc
linos added 1 commit 2024-10-12 09:42:30 +02:00
use builds not dev js
All checks were successful
PHP Code Checker / PHP Code Checker (pull_request) Successful in 35s
PHPUnit / PHPUnit – PHP 8.1 (pull_request) Successful in 1m1s
PHPUnit / PHPUnit – PHP 8.2 (pull_request) Successful in 1m0s
PHPUnit / PHPUnit – PHP 8.3 (pull_request) Successful in 58s
d7a5b140ec
linos added 1 commit 2024-10-13 15:23:11 +02:00
Merge branch 'main' into self_announce
All checks were successful
PHP Code Checker / PHP Code Checker (pull_request) Successful in 34s
PHPUnit / PHPUnit – PHP 8.1 (pull_request) Successful in 1m3s
PHPUnit / PHPUnit – PHP 8.2 (pull_request) Successful in 1m3s
PHPUnit / PHPUnit – PHP 8.3 (pull_request) Successful in 1m3s
670b9aec50
linos added 1 commit 2024-10-13 15:39:28 +02:00
improve docs and readability
All checks were successful
PHP Code Checker / PHP Code Checker (pull_request) Successful in 34s
PHPUnit / PHPUnit – PHP 8.1 (pull_request) Successful in 1m3s
PHPUnit / PHPUnit – PHP 8.2 (pull_request) Successful in 1m3s
PHPUnit / PHPUnit – PHP 8.3 (pull_request) Successful in 1m2s
1bb603331a
linos changed title from WIP: add event reminder (=self announcing of event at a specified time gap before the event starts) to Add event reminder (=self announcing of event at a specified time gap before the event starts) 2024-10-13 16:03:46 +02:00
All checks were successful
PHP Code Checker / PHP Code Checker (pull_request) Successful in 34s
PHPUnit / PHPUnit – PHP 8.1 (pull_request) Successful in 1m3s
PHPUnit / PHPUnit – PHP 8.2 (pull_request) Successful in 1m3s
PHPUnit / PHPUnit – PHP 8.3 (pull_request) Successful in 1m2s
This pull request has changes conflicting with the target branch.
  • composer.json
  • includes/class-settings.php
  • includes/class-setup.php
  • includes/plugins/class-event-plugin.php
  • package.json
  • templates/settings.php
  • tests/bootstrap.php
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin self_announce:self_announce
git checkout self_announce

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git checkout main
git merge --no-ff self_announce
git checkout self_announce
git rebase main
git checkout main
git merge --ff-only self_announce
git checkout self_announce
git rebase main
git checkout main
git merge --no-ff self_announce
git checkout main
git merge --squash self_announce
git checkout main
git merge --ff-only self_announce
git checkout main
git merge self_announce
git push origin main
Sign in to join this conversation.
No reviewers
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Event-Federation/wordpress-event-bridge-for-activitypub#58
No description provided.