Making WordPress.org

Opened 8 months ago

Last modified 6 days ago

#2720 assigned defect

Sync WordCamp and Meetup.com event changes

Reported by: iandunn Owned by:
Milestone: Priority: normal
Component: Make (Get Involved) / P2 Keywords: needs-patch good-first-bug

Description (last modified by coreymckrill)

The Official WordPress Events plugin pulls in events from wordcamp.org and meetup.com and stores them in a local database, but it doesn't handle the case where events are changed or deleted. This results in deleted events being shown in the shortcode, and by api.wordpress.org/events.

Change History (6)

#1 @00Sleepy
5 months ago

Also you get double entrys of events which are deleted and recreated in the Dashboard Widget.

#2 @coreymckrill
5 months ago

Possibly related: I just got a report that meetup events with changed details are still showing the old details in the Dashboard widget (populated by the API).

#3 @coreymckrill
5 months ago

  • Owner set to coreymckrill
  • Status changed from new to accepted

#4 @coreymckrill
2 months ago

  • Description modified (diff)
  • Owner coreymckrill deleted
  • Status changed from accepted to assigned
  • Summary changed from Sync Meetup.com API deletions to Sync WordCamp and Meetup.com event changes

It turns out that this happens with WordCamp events as well. The example is WordCamp Milwaukie 2017, which was canceled, but still appears in the feed.

This ticket was mentioned in Slack in #meta by iandunn. View the logs.

2 months ago

#6 @iandunn
6 days ago

According to #3027, meetup.com will change the source_id when events are edited :|

One potential way to deal with this would be to add a cron job that queries meetup.com and wordcamp.org for all the upcoming events in the database, and then sync's their details.

Another way would be to add a multi-column unique key constraint to the database table. That would prevent duplicates from being inserted. We could detect if the INSERT failed for that reason, and then attempt an UPDATE instead.

This is closely related to #3027 and #3321, so I think we should take those into account when considering solutions. There may be an elegant solution which solves all of those cases; whereas coming up with 3 independent solutions could get messy.

Note: See TracTickets for help on using tickets.