From 08223fa045a671725477e4ea331f2a68395634c8 Mon Sep 17 00:00:00 2001 From: VitaliiRomanenko Date: Sun, 21 Jun 2026 12:13:54 +0300 Subject: [PATCH] chore: release v0.2.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Release v0.2.1 with typo fixes, keyboard navigation improvements, and documentation updates. - Fix multiple typos: AuthResponce → AuthResponse, GenreResponce → GenreResponse, FindResponce → FindResponse, defaultFoder → defaultFolder, TMDbGanreService → TMDbGenreService - Rename "card" CSS class to "movie-item" for clarity - Add arrow key navigation (Up/Down) for search results with focus indication - Add Enter key selection for focused items and Escape key to close modal - Improve error handling in TMDb API service for auth, rate limiting, and general errors - Add template validation with clearer error messages - Update LICENSE copyright to Vitalii Romanenko - Update README with corrected plugin name and URLs - Update manifest.json, package.json, and versions.json for v0.2.1 - Remove stale comment in searchModal.ts - Fix release notes date in .github/workflows/release.yml Breaking change: defaultFoder setting key renamed to defaultFolder. Existing configurations will not migrate automatically. --- .github/workflows/release.yml | 27 +++++++++++++ LICENSE | 2 +- README.md | 72 +++++++++++++++++------------------ manifest.json | 2 +- package-lock.json | 4 +- package.json | 6 +-- src/views/searchModal.ts | 1 - versions.json | 2 +- 8 files changed, 71 insertions(+), 45 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c0289dd..e28452b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -54,3 +54,30 @@ jobs: release/main.js release/manifest.json release/styles.css + body: | + ## Release Notes for Popcorn MD v0.2.1 + + ### Features + - **Keyboard navigation for search results**: Added arrow key navigation (Up/Down) to browse movie cards in the search modal, with visual focus indication and smooth scrolling + - **Enter key selection for focused item**: Pressing Enter now selects the currently focused movie card from the search results + - **Escape key to close**: Pressing Escape closes the search modal + + ### Improvements + - **Improved error handling in TMDb API service**: Added specific error messages for authentication failures (401), rate limiting (429), and general API errors. API key validation is now performed before making requests + - **Better template validation**: Added explicit checks for missing template files and non-file paths with clearer error messages + - **Renamed "card" CSS class to "movie-item"**: Improved semantic naming for better code clarity and maintainability + - **Fixed typo "foded" to "focused"**: Corrected CSS class name spelling in focus-related functionality + - **Styling enhancements**: Added hover effects, focus outlines, and improved visual feedback for movie cards with better layout and overflow handling + + ### Bug Fixes + - **Multiple typo corrections**: + - Fixed `AuthResponce` to `AuthResponse` (file rename and import updates) + - Fixed `GenreResponce` to `GenreResponse` + - Fixed `FindResponce` to `FindResponse` + - Fixed `defaultFoder` to `defaultFolder` across settings interface, defaults, and all references + - Fixed `TMDbGanreService` to `TMDbGenreService` + - **Fixed comment typo**: Corrected "focused" in SearchView comments + + ### Breaking Changes + - **Settings key renamed**: The `defaultFoder` setting key has been renamed to `defaultFolder`. Users will need to re-configure their default folder setting, or existing configurations will not migrate automatically + diff --git a/LICENSE b/LICENSE index 3d79140..0cb834e 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2026 4rlz +Copyright (c) 2026 Vitalii Romanenko Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index ced906d..0ac9679 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ # Popcorn-MD ![Obsidian](https://img.shields.io/badge/Obsidian-Plugin-7C3AED?style=flat-square&logo=obsidian) -![Version](https://img.shields.io/badge/Version-0.2.0-blue?style=flat-square) +![Version](https://img.shields.io/badge/Version-0.2.1-blue?style=flat-square) ![License](https://img.shields.io/badge/License-MIT-green?style=flat-square) -**PopcornMD** is an Obsidian plugin that lets you search for movies and TV shows via [TMDb](https://www.themoviedb.org/) and automatically create beautiful, structured notes from a template — all without leaving Obsidian. +**Popcorn-MD** is an Obsidian plugin that lets you search for movies and TV shows via [TMDb](https://www.themoviedb.org/) and automatically create beautiful, structured notes from a template — all without leaving Obsidian. ## Features @@ -19,19 +19,19 @@ 1. Open **Settings → Community plugins**. 2. Disable **Safe mode**. -3. Click **Browse** and search for **"PopcornMD"**. +3. Click **Browse** and search for **"Popcorn-MD"**. 4. Install and enable the plugin. ### Manual (developer preview) -1. Download the latest release from [Releases](https://github.com/your-username/popcornmd/releases). -2. Extract `main.js`, `manifest.json`, and `styles.css` into `/.obsidian/plugins/popcornmd/`. +1. Download the latest release from [Releases](https://github.com/VitaliiRomanenko/popcorn-md/releases). +2. Extract `main.js`, `manifest.json`, and `styles.css` into `/.obsidian/plugins/popcorn-md/`. 3. Reload Obsidian and enable the plugin in **Settings → Community plugins**. ## Getting Started 1. **Get a TMDb API key** — Sign up at [themoviedb.org](https://www.themoviedb.org/signup) and request an API key. -2. **Open Plugin Settings** — Navigate to **Settings → Popcorn MD**. +2. **Open Plugin Settings** — Navigate to **Settings → Popcorn-MD**. 3. **Select template** — Select file from list 4. **Enter your API key** — Paste your TMDb API key and click **Save**. 5. **Open the movie search** — Use the command palette (`Cmd+P` / `Ctrl+P`) and run **"Popcorn MD: Create new movie note"**, or click the 🍿 ribbon icon. @@ -51,8 +51,8 @@ | **TMDb API Key** | Your TMDb API key (required) | | **Default language** | Language for movie data | | **Template path** | Path to your custom template file (relative to vault root) | -| **Default folder** *(added in v0.2)* | Where new movie notes are saved | -| **Include poster** *(added in v0.2)* | Toggle to embed movie poster image in notes | +| **Default folder** | Where new movie notes are saved | +| **Include poster** *(added in v0.3)* | Toggle to embed movie poster image in notes | ## Template System @@ -98,32 +98,32 @@ All variables are placeholders wrapped in double braces `{{variable}}` and are u | Field | Example Value | Description | |-------|---------------|-------------| -| **[tags](ca://s?q=tags_md_field)** | `Movie` | Category of the file, always `Movie`. | -| **[adult](ca://s?q=adult_md_field)** | `false` | Whether the movie is adult content (`true/false`). | -| **[belongs_to_collection](ca://s?q=collection_md_field)** | `The Dark Knight Trilogy` | Collection/series name if applicable. | -| **[budget](ca://s?q=budget_md_field)** | `185000000` | Production budget in USD. | -| **[genres](ca://s?q=genres_md_field)** | `Action, Drama` | List of genres. | -| **[homepage](ca://s?q=homepage_md_field)** | `https://www.dc.com/batman` | Official movie website. | -| **[TMDbID](ca://s?q=TMDbID_md_field)** | `155` | Unique TMDb identifier. | -| **[IMDbID](ca://s?q=IMDbID_md_field)** | `tt0468569` | Unique IMDb identifier. | -| **[origin_country](ca://s?q=origin_country_md_field)** | `US` | Country of origin. | -| **[original_language](ca://s?q=original_language_md_field)** | `en` | Original language. | -| **[original_title](ca://s?q=original_title_md_field)** | `The Dark Knight` | Original movie title. | -| **[overview](ca://s?q=overview_md_field)** | `Batman faces Joker...` | Short synopsis/description. | -| **[popularity](ca://s?q=popularity_md_field)** | `92.5` | Popularity score from TMDb. | -| **[poster_path](ca://s?q=poster_path_md_field)** | `/qJ2tW6WMUDux911r6m7haRef0WH.jpg` | Path to poster image. | -| **[production_companies](ca://s?q=production_companies_md_field)** | `Warner Bros.` | Studios involved in production. | -| **[production_countries](ca://s?q=production_countries_md_field)** | `United States` | Countries involved in production. | -| **[release_date](ca://s?q=release_date_md_field)** | `2008-07-18` | Release date. | -| **[revenue](ca://s?q=revenue_md_field)** | `1004558444` | Box office revenue in USD. | -| **[runtime](ca://s?q=runtime_md_field)** | `152` | Duration in minutes. | -| **[softcore](ca://s?q=softcore_md_field)** | `false` | Flag for soft erotic content. | -| **[spoken_languages](ca://s?q=spoken_languages_md_field)** | `English, Mandarin` | Spoken languages in the movie. | -| **[status](ca://s?q=status_md_field)** | `Released` | Release status. | -| **[tagline](ca://s?q=tagline_md_field)** | `Why So Serious?` | Promotional tagline. | -| **[title](ca://s?q=title_md_field)** | `The Dark Knight` | Localized movie title. | -| **[vote_average](ca://s?q=vote_average_md_field)** | `8.5` | Average user rating. | -| **[vote_count](ca://s?q=vote_count_md_field)** | `29000` | Number of votes. | +| **tags** | `Movie` | Category of the file, always `Movie`. | +| **adult** | `false` | Whether the movie is adult content (`true/false`). | +| **belongs_to_collection** | `The Dark Knight Trilogy` | Collection/series name if applicable. | +| **budget** | `185000000` | Production budget in USD. | +| **genres** | `Action, Drama` | List of genres. | +| **homepage** | `https://www.dc.com/batman` | Official movie website. | +| **TMDbID** | `155` | Unique TMDb identifier. | +| **IMDbID** | `tt0468569` | Unique IMDb identifier. | +| **origin_country** | `US` | Country of origin. | +| **original_language** | `en` | Original language. | +| **original_title** | `The Dark Knight` | Original movie title. | +| **overview** | `Batman faces Joker...` | Short synopsis/description. | +| **popularity** | `92.5` | Popularity score from TMDb. | +| **poster_path** | `/qJ2tW6WMUDux911r6m7haRef0WH.jpg` | Path to poster image. | +| **production_companies** | `Warner Bros.` | Studios involved in production. | +| **production_countries** | `United States` | Countries involved in production. | +| **release_date)** | `2008-07-18` | Release date. | +| **revenue** | `1004558444` | Box office revenue in USD. | +| **runtime** | `152` | Duration in minutes. | +| **softcore** | `false` | Flag for soft erotic content. | +| **spoken_languages** | `English, Mandarin` | Spoken languages in the movie. | +| **status** | `Released` | Release status. | +| **tagline** | `Why So Serious?` | Promotional tagline. | +| **title** | `The Dark Knight` | Localized movie title. | +| **vote_average** | `8.5` | Average user rating. | +| **vote_count** | `29000` | Number of votes. | --- @@ -145,7 +145,7 @@ All variables are placeholders wrapped in double braces `{{variable}}` and are u ```bash git clone https://github.com/VitaliiRomanenko/popcorn-md -cd popcornmd +cd popcorn-md npm install ``` @@ -176,4 +176,4 @@ This plugin is not affiliated with, endorsed by, or sponsored by TMDb or Obsidia --- -*PopcornMD — Because your movie collection deserves better than plain text.* +*Popcorn-MD — Because your movie collection deserves better than plain text.* diff --git a/manifest.json b/manifest.json index 88ad016..780d266 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "popcorn-md", "name": "Popcorn MD", - "version": "0.2.0", + "version": "0.2.1", "minAppVersion": "1.5.0", "description": "Generate and manage movie-related notes using IMDb identifiers or movie titles.", "author": "4arlz", diff --git a/package-lock.json b/package-lock.json index 499ef42..1bd2cf0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { - "name": "obsidian-sample-plugin", - "version": "1.0.0", + "name": "popcorn-md", + "version": "0.2.1", "lockfileVersion": 3, "requires": true, "packages": { diff --git a/package.json b/package.json index dd22362..68fa333 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { - "name": "obsidian-sample-plugin", - "version": "1.0.0", - "description": "This is a sample plugin for Obsidian (https://obsidian.md)", + "name": "popcorn-md", + "version": "0.2.1", + "description": "Generate and manage movie-related notes using IMDb identifiers or movie titles.", "main": "main.js", "type": "module", "scripts": { diff --git a/src/views/searchModal.ts b/src/views/searchModal.ts index 9e32bbd..805f475 100644 --- a/src/views/searchModal.ts +++ b/src/views/searchModal.ts @@ -28,7 +28,6 @@ export class SearchModal extends Modal { const movieList = container.createDiv("movie-list"); this.view = new SearchView(movieList); this.input.focus(); - // Key handler for navigation (listen on the whole container) container.addEventListener("keydown", (event: KeyboardEvent) => { switch (event.key){ case "ArrowDown": diff --git a/versions.json b/versions.json index 0ff7302..30ad22e 100644 --- a/versions.json +++ b/versions.json @@ -1,3 +1,3 @@ { - "1.0.0": "1.0.0" + "0.2.1": "0.2.1" }