Deprecated: Return type of I::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/public/kirby/toolkit/lib/i.php on line 62

Deprecated: Return type of I::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/public/kirby/toolkit/lib/i.php on line 91

Deprecated: Return type of I::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/public/kirby/toolkit/lib/i.php on line 71

Deprecated: Return type of I::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/public/kirby/toolkit/lib/i.php on line 101

Deprecated: Return type of I::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/public/kirby/toolkit/lib/i.php on line 53

Deprecated: Return type of Collection::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/public/kirby/toolkit/lib/collection.php on line 80

Deprecated: parse_str(): Passing null to parameter #1 ($string) of type string is deprecated in /home/public/kirby/toolkit/lib/url.php on line 135
One Tap Less | The new Workflow and the Movie Diary

The new Workflow and the Movie Diary


Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /home/public/kirby/toolkit/lib/str.php on line 506

Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /home/public/kirby/toolkit/lib/str.php on line 506

One thing about automation that is the complete opposite of the film industry is that our sequels don't suck. I posted a sneak peek for this project almost 2 months ago and you took my Dropbox public links down twice. I loved that. This workflow rethinks my Pythonista script to create Day One entries from movies you watch using the newest version of Workflow.

You can read the original article if you need further introduction. The first version looks for a movie title using the IMDB search engine and collects name, year and director, then goes to Launch Center Pro and prompts you for a rating, bouncing to Day One and organizing the data in a table.

The first version of the movie diary creates a simple table with information and rating.

The new version uses the MovieDB API, my API token is provided within the action. I pledge you to create one yourself if you intend to modify the action or build your own variations. The workflow accepts input from the IMDB app or, if none is provided, prompts the user for a movie title. In the latter, there's a chance to hit more results for a single term, so the workflow will prompt you to pick an item and proceed until a rating is requested for the movie.

Download the new version of the Movie Diary.

Another feature from this version is the movie poster download, which is attached to your clipboard and included in your note. This is possible due to a boolean parameter from Day One's url scheme called imageClipboard, just set it equal to 1 and the image from your clipboard will illustrate the entry, creating an unique record.

The new Movie Diary uses the movie poster to build astonishing entries.

If you decide to dive deeply into how this workflow was built, you'll find a ton of variables. It is important while manipulating JSON lists in Workflow to keep the item you're extracting data from intact, so you can call it again and grab something else before proceeding with the loop.

I also built a method to collect an item from a dictionary by index. Items in dictionaries don't have a specific order, therefore calling the first item may return anything; a list, on the other hand, has an index, but can't hold more information in a single item. The workaround was building two lists when there's more than one result for the movie input. When the workflow prompts you to select a movie, it will match the result with a different dictionary, which holds all the information required to proceed the action. For more about this hack, look for the If action that checks if the amount of items in the Movie List variable is bigger than 1.

If you just want to catch a movie and have a good time, I'm sure you'll enjoy the new Movie Diary and I hope it inspires you to create more ways to use Workflow in your daily life.