Having some fun with Scriptable + Disney World! šŸ¤Ŗ

This is more for a ā€œproof of conceptā€ with Scriptable, but Iā€™m so excited about this that I figured Iā€™d post it for otherā€™s inspiration. :blush: Itā€™s amazing what you can accomplish with a web server and this app.

Whatā€™s this doing?

  • My server is pulling in attraction wait times & park schedules via public API and formatting into JSON
  • Scriptable is fetching the JSON, formatting the data into tables to display in Siri, and adding voice commands to trigger these scripts

Overall it was much simpler than I expected.

I would love to be able to format the data in more ways though, like CSS styling, but beggars canā€™t be choosers. :wink:

Unfortunately I canā€™t share the URL that this script is pulling from yet. I was discussing with the developer of the themeparks API library and he said that the URLs can change frequently and in fact, Disney is in process of updating theirs now. Iā€™m not sure how long this will work.

I plan on updating this to the ā€œofficialā€ library as soon as I can because I know Iā€™m going to get a lot of use out of this. Once I do that then Iā€™ll post these scripts and open up my server (since I doubt itā€™ll get that much traffic from this).

Anyway, I hope this provides some inspiration for others. :+1:t3:

9 Likes

Nice. I actually have a workflow that pulls the hours and wait times (may be using the same URLs)

3 Likes

Awesome. :tada: Yea, Iā€™m using public URLs that you can see in the master branch for that themeparks repository. The maintainer just said that theyā€™re ā€œin process of changingā€, so I hate to share something that might break soon.

But I have no clue what Disney has done, but their iOS app is slow and doesnā€™t seem to save my state at all, so every time I launch to see something itā€™s a 15 second process it feels like. :weary:

Is the output that Siri is showing a UITable, Quick Look, Safari or some over output format? Just curious. I would like display some data in a similar fashion.

Itā€™s using a UITable with Quicklook.

Iā€™m looping through the returned JSON and parsing it, like:

let table = new UITable()

let header = new UITableRow()
header.isHeader = true
header.addText("Date")
header.addText("Hours")
table.addRow(header)

for (item of items) {
  let row = new UITableRow()

  let date = item.date
  let dateCell = row.addText(date)
  dateCell.widthWeight = 50

  let opening = item.startTime
  let closing = item.endTime
  let timeCell = row.addText(opening + " ā€“ " + closing)
  timeCell.widthWeight = 50

  row.height = 30
  row.cellSpacing = 10

  table.addRow(row)
}

QuickLook.present(table)
3 Likes

Super cool! :smiley: Thank you for sharing the video.

1 Like

Sure enough, theyā€™ve changed now. My operating hours shortcut still work, but my wait times does not anymore. Guess Iā€™ll need to check out the Themeparks repository find where they keep there links and see how theyā€™ve been updated

1 Like

Yea, Iā€™ll likely work on updating mine before summer block dates are up, and Iā€™ll re-post with better instructions. Thanks for the heads up. :blush: