Event Listings
First we’ll start with some history, so that most people will immediately give up and stop reading.
One of the earliest features we added to Pinball Map was event listings. This was in IFPA’s infancy, and also back when our administrators were perhaps more excited about data entry. Basically, we did a lot of work to manually add in tournaments, leagues, and events. Then we also had an automated import of IFPA events for each map region. It was a lot to maintain, and eventually, as more events became IFPA sanctioned, admins stopped manually inputting anything. We simply batch imported IFPA events and that was it.
But it became a little difficult for us to manage this import, mostly due to IFPA API changes that we needed to keep up with (like “virtual” tournaments showing up, and events being edited by the TDs and we weren’t capturing those edits). So then a couple years ago we dropped the import and stopped showing events on the website, and instead just did a live pull of IFPA data in the app whenever someone visited the Nearby Events screen (linked in the menu).
But now, we added back the daily import and made it better. We now import 6 months of events every day, and in the process we attempt to match the events to Pinball Map location listings. That way, we can not only show users nearby events, but also all the upcoming events at a particular location. This is great. We’re not making excessive requests to IFPA (we store all these events ourselves) and it’s a nice feature to see events in a location listing.
But IFPA is not the only game in town. There are other tournament associations. We are happy to include those events if you can provide the data.
People have asked how they can provide the data. Our best answer right now is:
- Each data source will require custom code on our part to parse correctly.
- The data/source should be a JSON dump that we can pull once a day.
- If the events you list are cross-posted to IFPA or other associations (e.g., dual-sanctioned), then this is a problem. We would prefer to not have to filter out events ourselves. If your events are cross-posted, are you tracking that?
The fields we use look like this:
| Field Name | Description |
|---|---|
| name | The name of the event |
| long_desc | Event details. Include the start time, format, etc. |
| external_link | Website link for the event |
| start_date | What day does it start |
| end_date | What day does it end |
| location_id | The Pinball Map location id. We attach this ourselves based on fields like the address and lat/lon |
| ifpa_tournament_id | If an IFPA event, what is the tournament ID. We’ll have to create a new ID field for non-IFPA events |
| address | Clean address for geocoding - should not include location name |
| event_type | League or Tournament |
| latitude | Coordinates |
| longitude | Coordinates |
| ranking | Women or Youth or Open |
