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 | A Better Setup for the Movie Diary

A Better Setup for the Movie Diary

When I released the new Movie Diary I knew adoption would be a challenge due to the setup, if you're here from the start, you probably saw a the video guide (and when I do a video, you know it's trouble) and followed every arduous step. You're brave, but you couldn't suggest the script to your friends because, well, they're not as brave as you. Perhaps you should give your friends another chance now.

Movie Diary

The new movie diary using Airtable and Pythonista to journal the movies you watch.

View Script

When the user runs the script, if there's no configuration set nor the 3 keys required to connect to Airtable available, it will prompt for email and password1 and fetch all those keys for you. If you have multiple databases, a dialog will ask you to pick one, the same goes for tables within the selected database. If you didn't generate an API key, the script won't do it for you2 and will throw an error, but at least you'll know what to do. And that's it.

A little backstory: I was incapable of collecting these keys with requests and BeautifulSoup, the Python modules you expect to use in these cases and since Pythonista doesn't have Selenium I had to put the whole update on ice until I stumbled upon this reply by Ole Zorn in the official Pythonista forums:

Have you tried just importing it? ;) This isn't documented anywhere, but Pythonista already includes mechanize.

Mechanize is a third-party Python 2 module3 that allows just enough web browsing for us to reproduce all the steps to acquire every bit of data we need to get the Movie Diary going.

I also added a configuration to reset all your configurations, just access the config panel4, scroll to the bottom, toggle the switch and confirm the alert. This only resets the configuration and doesn't touch your Airtable database at all.

I hope you enjoy this improvement to the accessibility of the Movie Diary and that it made things easier for you to convince your friends to get Pythonista and Airtable. If you have any questions or would like to suggest a new feature for the Movie Diary, tweet my way and I'll consider your request. Until the next update, enjoy a good movie and don't forget to log it afterwards.


  1. These are never stored in your keychain and are only used for this request. 

  2. Yet. 

  3. It doesn't support Python 3. 

  4. Run the script from Pythonista and submit an empty value when prompted.