# 智能脚本

### 界面显示

<div align="left"><figure><img src="https://1213182947-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzXFrsw3DP2YEWeald1DE%2Fuploads%2FuAUBeyL75HunQnoBFdpe%2Fimage.png?alt=media&#x26;token=47465376-c5f4-49fe-99d8-c99e885fd684" alt="" width="355"><figcaption></figcaption></figure></div>

### 示例脚本

访问 「青创网」 的某店铺，通过配置脚本把相关图片进行分组

<div align="left"><figure><img src="https://1213182947-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzXFrsw3DP2YEWeald1DE%2Fuploads%2FnhbWw4O86RhRoQSclY6f%2Fimage.png?alt=media&#x26;token=8773e557-6678-40be-bae0-e323f96a4afd" alt="" width="563"><figcaption></figcaption></figure></div>

也支持批量下载的时候进行分组命名

<div align="left"><figure><img src="https://1213182947-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzXFrsw3DP2YEWeald1DE%2Fuploads%2FnEV5bWB7I5wtbABNKmS8%2Fimage.png?alt=media&#x26;token=45f8caca-6830-4e37-9af6-69a5d2a1b7ea" alt="" width="350"><figcaption></figcaption></figure></div>

### 脚本规则

上面例子的脚本如下：

{% code overflow="wrap" lineNumbers="true" %}

```json
{
  "id": 10088,
  "name": "青创网",
  "ico": "https://assets.pichound.app/17qcc.com.ico",
  "version": "1.0.0",
  "description": "下载青创网商品图片，需要滚动加载到详情图片才可以下载详情图片",
  "reg": "17qcc.com",
  "status": "prod",
  "tags": [
    "ec"
  ],
  "examples": [
    "https://www.17qcc.com/item/3955701.html"
  ],
  "groups": [
    {
      "fn": "updateGroupByIds",
      "props": {
        "groupName": "主图",
        "groupIndex": 0,
        "ids": [
          {
            "id": ".prodcut_img .ul_box img",
            "attributes": [
              "dataset.lazyload",
              "src"
            ],
            "replaceUrlRules": [
              {
                "pattern": "\\?.*$",
                "replaceValue": ""
              }
            ]
          }
        ]
      }
    },
    {
      "fn": "updateGroupByIds",
      "props": {
        "groupName": "SKU图片",
        "groupIndex": 1,
        "ids": [
          {
            "id": ".skuinfo .pro_color img",
            "attributes": [
              "src"
            ],
            "replaceUrlRules": [
              {
                "pattern": "\\?.*$",
                "replaceValue": ""
              }
            ]
          }
        ]
      }
    },
    {
      "fn": "updateGroupByIds",
      "props": {
        "groupName": "详情",
        "groupIndex": 2,
        "ids": [
          {
            "id": ".pro_detail .pro_img img",
            "attributes": [
              "dataset.lazyload",
              "src"
            ],
            "replaceUrlRules": [
              {
                "pattern": "\\?.*$",
                "replaceValue": ""
              }
            ]
          }
        ]
      }
    },
    {
      "fn": "updateGroupByIds",
      "props": {
        "groupName": "视频",
        "groupIndex": 3,
        "ids": [
          {
            "id": "#J_playVideo",
            "attributes": [
              "videourl"
            ],
            "type": "VIDEO"
          }
        ]
      }
    }
  ]
}
```

{% endcode %}

#### API

```typescript
export interface IGroupConfig {
  // 唯一 ID
  id: number;
  // 插件名
  name: string;
  // 插件icon
  ico?: string;
  // 插件版本
  version?: string;
  // 插件描述
  description?: string;
  // 默认匹配路径
  reg: string;
  // 插件分组功能
  groups: IRun[];
  // 发布状态
  status?: string;
  // 例子
  examples?: string[];
}

export interface IRun {
  // 函数能力
  fn: string;
  // 额外传参
  props: IRunProps;
}

export interface IIds {
  // 参数 Ids
  id: string;
  // 参数路径
  attributes?: string[];
  // 类型, 有可能是视频类型
  type?: string;
  // 图片描述信息
  alt?: string;
  // 替换图片规则
  replaceUrlRules?: IReplaceUrlRule[];
  // 过滤图片规则
  filterUrlRules?: IReplaceUrlRule[];
}

export interface IReplaceUrlRule {
  pattern: string
  flags?: string
  replaceValue?: string
}

export interface IRunProps {
  // 来源对象 默认是 document.querySelectorAll, 返回可迭代数组
  source?: string;
  // 参数 Ids
  ids: IIds[];
  // 分组名
  groupName: string;
  // 分组索引
  groupIndex: number;
}
```

### 脚本定制

如需定制特殊网站，请联系

{% content-ref url="../guan-yu-wo-men/zai-xian-zhi-chi" %}
[zai-xian-zhi-chi](https://help.pichound.app/zh/guan-yu-wo-men/zai-xian-zhi-chi)
{% endcontent-ref %}
