# Kodi 电影剧集筛选插件

**圆角皮肤适配(地平线2，导火线2等)**
<img src="resources/filter2.jpg" width="100%" />

**方角皮肤适配**
<img src="resources/filter.jpg" width="100%" />

这是一个为 Kodi 设计的高级电影剧集筛选和增强工具插件。

## 功能介绍

### 通用功能 (任意皮肤可用)

1.  **完整筛选页面实现**
    *   提供类似爱优腾、爆米花等平台的筛选体验。
    *   支持按类型、地区、年份、评分等多维度筛选。
    *   为地平线、导火线、清风皮肤适配了圆角。

2.  **九宫格输入法筛选电影**
    *   支持拼音(直接输入九宫格里电影的拼音对应的数字)/首字母(连续按数字切换字符)进行筛选，默认首字母输入，设置中可切换。
    *   《信条》全拼音搜索:信条拼音：xintiao->对应的完整T9输入法按键序列:468426->搜索时输入4684...  
    *   《信条》首字母搜索:信条拼音：xintiao->对应的首字母:XT->搜索时连续按9切换到X，连续按8切换到T  
    *   插件设置中可切换UI上的九宫格/遥控上数字键是输入字母+数字或者是纯数字

3.  **一键快捷接口**
    *   **一键字幕**: 快速切换或选择字幕。
    *   **一键音轨**: 快速切换音频轨道。
    *   **一键倍速**: 快速调整播放速度(CE下不可用)。

4.  **剧集跳过片头片尾**
    *   支持手动记录剧集/文件夹内容的片头和片尾时间点(一季记录一次)。
    *   自动跳过已记录的片头和片尾，实现无缝追剧体验。

5.  **iso自动加载外挂字幕**
    *   自动加载iso文件所在文件夹下同名字幕

6.  **自动补全/修正播放列表**
    *   开始播放已刮削的剧集时，自动填充/修正播放列表乱序（如播放 E06 时下一个是 E05，会自动移到正确位置）。。
    *   最多修正当前播放集前方10集，后方10集。
    *   可在插件设置中关闭此功能。

### EstuarySearch 皮肤专属功能

1.  **自定义全局背景**
    *   在电影列表右键菜单中，可将任意电影的艺术图（Fanart）设置为 Kodi 的常驻全局背景图案。

### 遥控器与键盘按键绑定（推荐）

推荐和 [script.controller.switcher](https://github.com/forbxy/script.controller.switcher) 插件搭配使用。  
可以直接在controller.switcher加载适配遥控器的默认配置  
也可以自定义按键绑定    
安装该辅助插件后，在按键动作列表的 **"Forbxy插件"** 分类中即可直接看到本插件提供的快捷功能  
你可以在可视化图形界面上将这些功能映射到你习惯的遥控器或键盘按键上，**全程无需手动编写任何 XML 配置文件**。

---

## 手动接口调用

可以通过 `RunScript` 命令调用本插件提供的接口功能。  
可以绑定到遥控按键或者皮肤视图


## 使用示例

### 1. 绑定到遥控器按键 (Keymap)
编辑 `userdata/keymaps/gen.xml` (或新建)，将功能绑定到特定按键。

**示例：绑定启动筛选页面 (v12红色键) 及跳过功能 (v12蓝色键)**
```xml
<keymap>
  <Global>
    <keyboard>
      <!-- 芝杜V12红色键 (ID 61952): 启动筛选页面 -->
      <key id="61952">RunScript(plugin.video.filteredmovies, 0, ?mode=launch_t9)</key>
    </keyboard>
  </Global>
  <!-- FullscreenVideo: 全屏播放视频时生效 (无菜单遮挡) -->
  <FullscreenVideo>
    <keyboard>
      <!-- 蓝色键短按: 记录片头或片尾的时间点 -->
      <key id="61514">RunScript(plugin.video.filteredmovies, ?mode=record_skip_point)</key>
      <!-- 蓝色键长按: 删除片头或片尾的时间点 -->
      <key id="61514" mod="longpress">RunScript(plugin.video.filteredmovies, ?mode=delete_skip_point)</key>
    </keyboard>
  </FullscreenVideo>
  <!-- VideoOSD: 当呼出播放进度条/菜单时生效 (建议与 FullscreenVideo 保持一致) -->
  <VideoOSD>
    <keyboard>
      <key id="61514">RunScript(plugin.video.filteredmovies, ?mode=record_skip_point)</key>
      <key id="61514" mod="longpress">RunScript(plugin.video.filteredmovies, ?mode=delete_skip_point)</key>
    </keyboard>
  </VideoOSD>
</keymap>
```



### 2. 在皮肤视图中调用 (Skin XML)
在皮肤文件的控件事件中调用，例如在某个按钮被点击时触发。

**示例：点击按钮启动 T9 搜索界面**
```xml
<control type="button" id="9000">
    <onclick>RunScript(plugin.video.filteredmovies, ?mode=launch_t9)</onclick>
    <label>搜索</label>
</control>
```

**示例：点击按钮切换字幕**
```xml
<control type="button" id="5001">
    <onclick>RunScript(plugin.video.filteredmovies, ?mode=select_subtitle)</onclick>
    <label>切换字幕</label>
</control>
```

## 接口列表

### 1. 打开筛选/T9搜索页面
```xml
RunScript(plugin.video.filteredmovies, ?mode=launch_t9)
```
### 2. 播放控制接口
**一键选择字幕**
```xml
RunScript(plugin.video.filteredmovies, ?mode=select_subtitle)
```

**一键选择音轨**
```xml
RunScript(plugin.video.filteredmovies, ?mode=select_audio)
```

**一键选择倍速**
```xml
RunScript(plugin.video.filteredmovies, ?mode=select_playback_speed)
```

**VS10 引擎模式切换**
*   循环切换或直接指定当前片源可用的 VS10 转码模式 (Origin / SDR / HDR10 / DV) 自动跳过不支持的模式。
```xml
RunScript(plugin.video.filteredmovies, ?mode=set_vs10_mode)
<!-- 或者指定转码，target_mode可用值为 vs10.original, vs10.sdr, vs10.hdr10, vs10.dv -->
RunScript(plugin.video.filteredmovies, ?mode=set_vs10_mode&target_mode=vs10.dv)
```

### 3. 跳过片头片尾接口
**记录当前时间为跳过点 (片头/片尾)**
*   在剧集播放的前20%调用记录为片头结束点。
*   在剧集播放的后20%调用记录为片尾开始点。
```xml
RunScript(plugin.video.filteredmovies, ?mode=record_skip_point)
```

**删除当前剧集的跳过点记录**
```xml
RunScript(plugin.video.filteredmovies, ?mode=delete_skip_point)
```

### 4. 其他实用接口

**切换收藏状态/将选中项加入或移出收藏夹**
```xml
RunScript(plugin.video.filteredmovies, ?mode=toggle_favourite)
```

**打开当前播放剧集的列表**
```xml
RunScript(plugin.video.filteredmovies, ?mode=open_playing_tvshow)
```

**Linux下重启Kodi**
*   仅对 Linux/CoreELEC/LibreELEC/Ubuntu 等类 Unix 系统有效。
*   发送底层中断信号 (`kill -TERM` / `kill -KILL`)，重启 Kodi(优雅kill -TERM 等待10秒还不停止，kill -KILL强制退出)。  
*   之后systemd会重新拉起kodi
```xml
RunScript(plugin.video.filteredmovies, ?mode=restart_linux_kodi)
```

**重启到内部存储 (Reboot from eMMC/NAND)**
*   对安装在 SD卡/U盘中的 CoreELEC 等外部启动系统有效，重启回电视盒子内部的安卓系统。
```xml
RunScript(plugin.video.filteredmovies, ?mode=reboot_from_nand)
```

**退出播放确认弹窗**
*   弹出确认窗口，显示当前播放的视频标题，确认后停止播放。
```xml
RunScript(plugin.video.filteredmovies, ?mode=confirm_stop_playback)
```

