koishi-plugin-random-source-selector
TypeScript icon, indicating that this package has built-in type declarations

0.0.7 • Public • Published

koishi-plugin-random-source-selector

npm

透过多行文本链接随机抽出一条作为图片或文案发送,支援自定义指令

功能介绍

目前支援的数据解析类型:

  • JSON
  • 多行文本
  • HTML
  • 资源
  • 源数据

目前支援的发送类型:

  • 图片
  • 文本
  • EJS模板
  • 视频
  • 音频
  • 文件

一般例子

假设你的链接返回多行文本,例如

今天礼拜四,V我50
今天是疯狂星期四!!

则选择发送类型为文本, 数据返回类型为多行文本, 插件便会从这两句文案中随机抽选一个返回。


假设你的链接返回多行图片链接,例如

https://cdn.xyz/abc.jpg
https://cdn.xyz/xyz.jpg

则选择发送类型为图片, 数据返回类型为多行文本, 插件便会从这两条图片链接随机抽选一张图片返回。


假设你的链接返回随机图片

则选择发送类型为图片, 数据返回类型为资源, 插件则会直接把该链接返回的图片直接发送。

此类型适用于所有资源,包括视频,音频,文件等。

额外的解析类型选项 + 例子

HTML

透过 Jquery 提取文本,设置如下

jquery_selector: 提取元素, 相当于 querySelectorAll(value)
attribute: 获取元素属性, 相当于 getAttribute(value)

例子如下:

<img class="abc" src="https://cdn.xyz/abc1.img">
<img class="abc" src="https://cdn.xyz/abc2.img">
<img class="abc" src="https://cdn.xyz/abc3.img">
<img class="xyz" src="https://cdn.xyz/xyz.img">

想获取仅限 class 中包含 abc 的图片链接,则可用:

jquery_selector: .abc
attribute: src

插件则会从该三张图片中随机抽选。

注意: 提取的 html 文本为 http 请求的文本,不包含js后期注入的html元素

JSON

透过字符进行JSON取值,设置如下

json_key: 需要扫描的key, 相当于在js中获取json数值时的引用 + 支援迭代逻辑 []

例子如下:

[
    {
        "id": "_5degoesxi",
        "question": "What would you like to practice today?",
        "possible_answers": [
            {
                "label": "HTML & CSS",
                "action": {
                    "key": "lesson_category",
                    "type": "html-css"
                }
            },
            {
                "label": "General Typing",
                "action": {
                    "key": "lesson_category",
                    "type": "general"
                }
            }
        ]
    },
    {
        "id": "_zvcr8k6sq",
        "question": "Choose your difficult level.",
        "possible_answers": [
            {
                "label": "Easy",
                "action": {
                    "key": "difficulty",
                    "type": "easy"
                }
            },
            {
                "label": "Medium",
                "action": {
                    "key": "difficulty",
                    "type": "medium"
                }
            },
            {
                "label": "Hard",
                "action": {
                    "key": "difficulty",
                    "type": "hard"
                }
            }
        ]
    }
]

若想获取所有元素中内 action 的 type, 则使用

json_key: "[].possible_answers[].action.type"

[] 代表迭代,会提取每个迭代元素的值。 提取后将会从 hard, medium, easy, general, html-css 中随机抽选。


若 JSON 从 object 而非 array 开始,则直接填入该 object 的 key 即可,例如:

{
    "abc": {
        "xyz": ["foo", "bar"]
    }
}

则填入:

json_key: "abc.xyz"

就可获得 foo, bar 的随机抽选。

注意: 若 json_key 填写不当有可能会导致插件报错。

EJS

数据类型选择元数据,填入EJS模板即可。

假设你的返回数据为以下的json:

{
    "name": "morpheus",
    "job": "leader",
    "id": "583",
    "createdAt": "2023-11-13T06:30:39.982Z"
}

EJS模板则可输入:

ejs_template: |-
    <p> 成功创建 name: <%= data.name %>, job: <%= data.job %></p>
    <p> id: <%= data.id %> </p>

插件将会根据模板输出回应。

Readme

Keywords

Package Sidebar

Install

npm i koishi-plugin-random-source-selector

Weekly Downloads

6

Version

0.0.7

License

MIT

Unpacked Size

21.4 kB

Total Files

18

Last publish

Collaborators

  • eric2788