Pathé Movie Skill
Lookup Pathé Netherlands movies, posters, descriptions, cinemas, and showtimes via the Pathé JSON APIs. Trigger when the user mentions a Pathé movie/show, wants a poster, asks about a description/rating, or requests showtimes for a specific cinema.
MIT-0 · Free to use, modify, and redistribute. No attribution required.
⭐ 1 · 1.5k · 0 current installs · 0 all-time installs
MIT-0
Security Scan
OpenClaw
Benign
high confidencePurpose & Capability
Name/description (Pathé movies, posters, showtimes) align with the provided Python helper, API reference, and config. No unexpected credentials, binaries, or unrelated services are requested.
Instruction Scope
SKILL.md instructs the agent to call Pathé endpoints, use included helpers, and download poster images to a temporary path (e.g., /tmp) to attach them to WhatsApp messages. This is consistent with delivering media via a gateway, but it requires the agent environment to permit outbound HTTP and writing temporary files and assumes the platform's messaging tool accepts local file paths.
Install Mechanism
No install spec; skill is instruction-only with a small helper Python file. Nothing is downloaded from external, untrusted URLs and no package installs are requested.
Credentials
No environment variables or secret credentials are required. The skill works using direct public API requests to pathe.nl and a local config file included in the package.
Persistence & Privilege
always:false and no modifications to other skills or system-wide configs. Skill writes/reads only its included config and (per instructions) temporary poster files; this is expected for media delivery.
Assessment
This skill appears coherent and does what it says: query Pathé's public JSON API and return show info and posters. Before installing, confirm your agent runtime permits outbound HTTPS to https://www.pathe.nl, allows writing temporary files (e.g., /tmp) and that your messaging gateway accepts local file paths as media. Note the skill downloads public poster images — if you have privacy or storage policies, ensure temporary files are cleaned up. Finally, review the included config (approved/primary cinemas) to make sure it matches your expected defaults. If you need higher assurance, run the helper code in a sandboxed environment to observe network traffic and file writes.Like a lobster shell, security has layers — review code before you run it.
Current versionv1.0.0
Download ziplatest
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
SKILL.md
Pathé Movie Skill
Summary
- Always talk to the
https://www.pathe.nl/apiendpoints with the required browserlike headers (seescripts/pathe_movie.py). - Use the config at
config/pathe_movie_config.jsonto know which cinemas to assume unless the user explicitly names a different cinema. - Rely on
scripts/pathe_movie.pyfor reusable helpers (sanitizing queries, fuzzy matching, best-match selection, and fetching downstream endpoints). - When uncertain, reference
references/api.mdfor payload shape, field names, and expected response structures.
Search flow
- Clean the user’s movie name by removing filler words (
the,a,an,of,in,on,for,and). - Call
/api/search/full?q=...with the sanitized query. - If multiple entries return, run a fuzzy title match (difflib) to pick the closest
title. Keep theslug,poster(useposter.lg), andcontentRatingfields for later requests. - If a poster is required, return the
poster.lgURL (fall back toposter.md/posterPathwhen necessary).
Movie detail flow
- Given a slug, call
/api/show/{slug}?language=nl. - Pull
contentRating.descriptionandsynopsis(some entries havenull; handle gracefully) plus any extras such asgenres,directors,actors, andtrailersas context. - Poster references now live under
posterPathbefore falling back to the search response’sposter.
Cinema flow
- Query
/api/show/{slug}/cinemas?language=nl. Filter the returned cinema keys againstapprovedCinemasin the config unless the user asks for others. - For each cinema we need more detail about, call
/api/cinema/{cinema}?language=nlto fetch the officialname,citySlug, andservices/alertsmetadata.
Showtimes
- Use
/api/show/{slug}/showtimes/{cinema}?language=ento get schedules. Responses are dictionaries keyed by date (YYYY-MM-DD). Each value is an array of showtimes; every entry contains at least atimestring (plusscreen, optionallanguage,format, etc.). - If the array is empty, return a note that there are currently no scheduled showings.
Testing notes
- Ran
/api/search/full?q=matrixto confirm the payload includesslug,title,poster,contentRating, andgenres. - Called
/api/show/the-matrix-41119to verifycontentRating.description,synopsis, andposterPathfields; the synopsis can be null and the posterPath may be missing, so always null-check. - Queried
/api/cinema/pathe-zaandamto inspect the returnedname,citySlug, and service metadata (there is noshowslist, so the cinema object is mostly static info). - Hit
/api/show/iron-lung-51335/showtimes/pathe-zaandamto confirm the endpoint returns a list; it was empty for that slug, showing you must handle zero-showtime responses. - Pulled
/api/shows?language=nlto understand the bulk structure: dozens of entries withslug,posterPath,contentRating,genres, andnext24ShowtimesCount.
Media delivery notes
- Always download poster images (and extra stills) locally before sending them through WhatsApp. Save them under
/tmpor another temporary location so the gateway can read the file. - When the user explicitly requests a poster via WhatsApp, attach the local path in the
messagetoolmediafield (e.g.,/tmp/bluey_poster.jpg). The WhatsApp docs describe that outbound media accepts local paths, so this ensures the actual image is delivered instead of a URL. - Keep the text part of the
messagetool call descriptive (e.g., "Here’s the Bluey poster you asked for"), and rely on the downloaded file for the visual.
Follow these instructions whenever the user asks about search, posters, descriptions, cinema availability, or showtimes so the skill always produces accurate Pathé Netherlands results.
Files
4 totalSelect a file
Select a file to preview.
Comments
Loading comments…
