{
  "id": "heroli.loon.sub",
  "name": "李正博 自用应用订阅",
  "author": "@heroli",
  "icon": "https://loon-heroli.vercel.app/Icon/lizhengbo.png",
  "repo": "https://loon-heroli.vercel.app",
  "apps": [
    {
      "id": "QWeather",
      "name": "和风天气",
      "keys": [
        "qweather_host",
        "qweather_jwt_service_url",
        "qweather_jwt_service_token",
        "qweather_jwt_service_timeout",
        "qweather_private_key_pem",
        "qweather_kid",
        "qweather_sub",
        "qweather_ntfy_server",
        "qweather_ntfy_topic",
        "qweather_ntfy_timeout"
      ],
      "settings": [
        {
          "id": "qweather_host",
          "name": "和风天气 API Host",
          "val": "https://devapi.qweather.com",
          "type": "text",
          "desc": "默认 devapi.qweather.com，可改为你项目的专属 API Host。"
        },
        {
          "id": "qweather_jwt_service_url",
          "name": "JWT服务 URL",
          "val": "https://p28b9g7x6p.coze.site/run",
          "type": "text",
          "desc": "远程JWT签发服务地址（POST）。"
        },
        {
          "id": "qweather_jwt_service_token",
          "name": "JWT服务 Bearer Token",
          "val": "",
          "type": "text",
          "desc": "调用JWT服务时的 Authorization Bearer Token。"
        },
        {
          "id": "qweather_jwt_service_timeout",
          "name": "JWT服务超时(ms)",
          "val": "8000",
          "type": "text",
          "desc": "远程签发请求超时时间，默认8000毫秒。"
        },
        {
          "id": "qweather_private_key_pem",
          "name": "和风 JWT 私钥 PEM",
          "val": "",
          "type": "text",
          "autoGrow": true,
          "rows": 6,
          "desc": "Ed25519 私钥 PEM（BEGIN/END PRIVATE KEY），用于远程JWT签发服务请求参数。"
        },
        {
          "id": "qweather_kid",
          "name": "和风 JWT kid",
          "val": "",
          "type": "text",
          "desc": "控制台凭据ID，JWT Header 的 kid。"
        },
        {
          "id": "qweather_sub",
          "name": "和风 JWT sub",
          "val": "",
          "type": "text",
          "desc": "项目ID，JWT Payload 的 sub。"
        },
        {
          "id": "qweather_ntfy_server",
          "name": "ntfy Server URL",
          "val": "https://ntfy.sh",
          "type": "text",
          "desc": "ntfy 服务地址，默认 https://ntfy.sh；如果自建 ntfy，可改为你的服务域名。"
        },
        {
          "id": "qweather_ntfy_topic",
          "name": "ntfy Topic",
          "val": "",
          "type": "text",
          "desc": "用于接收天气推送的 ntfy topic。留空则降级为本地通知。"
        },
        {
          "id": "qweather_ntfy_timeout",
          "name": "ntfy 推送超时(ms)",
          "val": "20000",
          "type": "text",
          "desc": "ntfy 单次 POST 超时时间，默认20000毫秒；脚本会限制在5000-30000毫秒。"
        }
      ],
      "author": "@heroli",
      "repo": "https://loon-heroli.vercel.app",
      "icons": [
        "https://loon-heroli.vercel.app/Icon/lizhengbo.png",
        "https://loon-heroli.vercel.app/Icon/lizhengbo.png"
      ],
      "script": "https://loon-heroli.vercel.app/function/qweather_qywx.js"
    },
    {
      "id": "Zhuzher",
      "name": "住这儿助手",
      "keys": [
        "zhuzher_access_token",
        "zhuzher_refresh_token",
        "zhuzher_user_id",
        "zhuzher_token_expires"
      ],
      "settings": [
        {
          "id": "zhuzher_access_token",
          "name": "住这儿访问令牌",
          "val": "",
          "type": "text",
          "desc": "住这儿APP accessToken（自动获取，无需手动填写）"
        },
        {
          "id": "zhuzher_refresh_token",
          "name": "住这儿刷新令牌",
          "val": "",
          "type": "text",
          "desc": "住这儿APP refreshToken（自动获取，无需手动填写）"
        },
        {
          "id": "zhuzher_user_id",
          "name": "住这儿用户ID",
          "val": "",
          "type": "text",
          "desc": "住这儿APP用户ID（自动获取，无需手动填写）"
        },
        {
          "id": "zhuzher_token_expires",
          "name": "住这儿Token过期时间",
          "val": "",
          "type": "text",
          "desc": "住这儿APP Token过期时间戳（自动获取，无需手动填写）"
        }
      ],
      "author": "@heroli",
      "repo": "https://loon-heroli.vercel.app",
      "icons": [
        "https://loon-heroli.vercel.app/Icon/zhuzher.png",
        "https://loon-heroli.vercel.app/Icon/zhuzher.png"
      ],
      "script": "https://loon-heroli.vercel.app/function/zhuzher-open-door.js"
    },
    {
      "id": "WorkSignin",
      "name": "ntfy 签到",
      "keys": [
        "work_signin_is_workday",
        "work_signin_is_leave",
        "work_signin_morning_done",
        "work_signin_evening_done",
        "work_signin_ntfy_server",
        "work_signin_ntfy_topic",
        "work_signin_ntfy_timeout"
      ],
      "settings": [
        {
          "id": "work_signin_ntfy_server",
          "name": "ntfy Server URL",
          "val": "https://ntfy.sh",
          "type": "text",
          "desc": "ntfy 服务地址，默认 https://ntfy.sh；如果自建 ntfy，可改为你的服务域名。"
        },
        {
          "id": "work_signin_ntfy_topic",
          "name": "ntfy Topic",
          "val": "",
          "type": "text",
          "desc": "用于接收签到推送的 ntfy topic (必填)。"
        },
        {
          "id": "work_signin_ntfy_timeout",
          "name": "ntfy 推送超时(ms)",
          "val": "20000",
          "type": "text",
          "desc": "ntfy 单次 POST 超时时间，默认20000毫秒；脚本会限制在5000-30000毫秒。"
        },
        {
          "id": "work_signin_is_leave",
          "name": "今日请假",
          "val": false,
          "type": "boolean",
          "desc": "开启后，今日将跳过签到"
        },
        {
          "id": "work_signin_is_workday",
          "name": "今日工作日 (自动更新)",
          "val": false,
          "type": "boolean",
          "desc": "脚本自动检测，无需手动设置"
        },
        {
          "id": "work_signin_morning_done",
          "name": "上班已签到 (自动更新)",
          "val": false,
          "type": "boolean",
          "desc": "脚本自动更新状态"
        },
        {
          "id": "work_signin_evening_done",
          "name": "下班已签到 (自动更新)",
          "val": false,
          "type": "boolean",
          "desc": "脚本自动更新状态"
        }
      ],
      "author": "@heroli",
      "repo": "https://loon-heroli.vercel.app",
      "icons": [
        "https://loon-heroli.vercel.app/Icon/lizhengbo.png",
        "https://loon-heroli.vercel.app/Icon/lizhengbo.png"
      ],
      "script": "https://loon-heroli.vercel.app/function/work_signin_check.js"
    },
    {
      "id": "CozeSignin",
      "name": "Coze自动签到",
      "keys": [
        "coze_cookie",
        "coze_x_tt_token",
        "coze_user_agent",
        "coze_sdk_version",
        "coze_origin",
        "coze_reward_url",
        "coze_trade_conf_url",
        "coze_balance_url",
        "coze_token_updated_at",
        "coze_last_signin_date",
        "coze_last_signin_result",
        "coze_last_signin_at"
      ],
      "settings": [
        {
          "id": "coze_cookie",
          "name": "Coze Cookie",
          "val": "",
          "type": "text",
          "desc": "自动抓取，无需手动填写"
        },
        {
          "id": "coze_x_tt_token",
          "name": "Coze x-tt-token",
          "val": "",
          "type": "text",
          "desc": "自动抓取，无需手动填写"
        },
        {
          "id": "coze_reward_url",
          "name": "Coze reward URL",
          "val": "",
          "type": "text",
          "desc": "签到接口URL，自动抓取"
        },
        {
          "id": "coze_token_updated_at",
          "name": "TOKEN更新时间戳",
          "val": "",
          "type": "text",
          "desc": "自动更新，用于判断TOKEN是否刷新"
        },
        {
          "id": "coze_last_signin_result",
          "name": "最近签到结果",
          "val": "",
          "type": "text",
          "desc": "签到脚本自动写入"
        }
      ],
      "author": "@heroli",
      "repo": "https://loon-heroli.vercel.app",
      "icons": [
        "https://loon-heroli.vercel.app/Icon/lizhengbo.png",
        "https://loon-heroli.vercel.app/Icon/lizhengbo.png"
      ],
      "script": "https://loon-heroli.vercel.app/function/coze_signin.js"
    },
    {
      "id": "ZtoPickup",
      "name": "中通代取件推送",
      "keys": [
        "zto_pickup_union_id",
        "zto_pickup_small_union_id",
        "zto_pickup_token",
        "zto_pickup_ntfy_server",
        "zto_pickup_ntfy_topic",
        "zto_pickup_ntfy_timeout",
        "zto_pickup_page_size",
        "zto_pickup_max_pages",
        "zto_pickup_last_count",
        "zto_pickup_last_total_count",
        "zto_pickup_last_push_at",
        "zto_pickup_last_zop_name",
        "zto_pickup_last_capture_at"
      ],
      "settings": [
        {
          "id": "zto_pickup_union_id",
          "name": "中通/兔喜 unionId",
          "val": "",
          "type": "text",
          "desc": "自动抓取，无需手动填写；缺失时请打开中通/兔喜微信小程序。"
        },
        {
          "id": "zto_pickup_small_union_id",
          "name": "中通 x-small-unionid",
          "val": "",
          "type": "text",
          "desc": "自动抓取，用于补充小程序请求头。"
        },
        {
          "id": "zto_pickup_token",
          "name": "中通 x-token",
          "val": "",
          "type": "text",
          "desc": "自动抓取，用于定时任务调用 getMyExpress。"
        },
        {
          "id": "zto_pickup_ntfy_server",
          "name": "ntfy Server URL",
          "val": "https://ntfy.sh",
          "type": "text",
          "desc": "ntfy 服务地址，默认 https://ntfy.sh；如果自建 ntfy，可改为你的服务域名。"
        },
        {
          "id": "zto_pickup_ntfy_topic",
          "name": "ntfy Topic",
          "val": "",
          "type": "text",
          "desc": "用于接收推送的 ntfy topic。留空则不发送 ntfy。topic 建议使用不易猜到的随机名称。"
        },
        {
          "id": "zto_pickup_ntfy_timeout",
          "name": "ntfy 推送超时(ms)",
          "val": "20000",
          "type": "text",
          "desc": "ntfy 单次 POST 超时时间，默认20000毫秒；网络较慢时可调大，脚本会限制在5000-30000毫秒。"
        },
        {
          "id": "zto_pickup_page_size",
          "name": "每页查询数量",
          "val": "100",
          "type": "text",
          "desc": "getMyExpress 分页大小，默认100。"
        },
        {
          "id": "zto_pickup_max_pages",
          "name": "最大查询页数",
          "val": "10",
          "type": "text",
          "desc": "定时任务最多翻页次数，默认10页。"
        },
        {
          "id": "zto_pickup_last_count",
          "name": "最近代取件数量",
          "val": "",
          "type": "text",
          "desc": "脚本自动写入。"
        },
        {
          "id": "zto_pickup_last_total_count",
          "name": "最近待取件总数",
          "val": "",
          "type": "text",
          "desc": "脚本自动写入，表示本次查询到的全部待取件数量。"
        },
        {
          "id": "zto_pickup_last_push_at",
          "name": "最近推送时间",
          "val": "",
          "type": "text",
          "desc": "脚本自动写入。"
        },
        {
          "id": "zto_pickup_last_zop_name",
          "name": "最近抓取接口名",
          "val": "",
          "type": "text",
          "desc": "凭证抓取脚本自动写入，便于确认最近一次命中的网关接口。"
        },
        {
          "id": "zto_pickup_last_capture_at",
          "name": "最近凭证抓取时间",
          "val": "",
          "type": "text",
          "desc": "凭证抓取脚本自动写入。"
        }
      ],
      "author": "@heroli",
      "repo": "https://loon-heroli.vercel.app",
      "icons": [
        "https://loon-heroli.vercel.app/Icon/lizhengbo.png",
        "https://loon-heroli.vercel.app/Icon/lizhengbo.png"
      ],
      "script": "https://loon-heroli.vercel.app/function/zto_pickup_qywx.js"
    }
  ]
}
