上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

【建议】探讨新增Api处理header

[复制链接]
  • TA的每日心情

    2024-6-12 17:04
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    4

    主题

    18

    回帖

    51

    积分

    初级工程师

    积分
    51

    油中3周年油中2周年新人报道挑战者 lv2

    发表于 2024-6-18 13:12:03 | 显示全部楼层 | 阅读模式

    今天使用了Header Editor这个插件用来修改header,发现它可以自定义使用js来对header进行修改,想知道脚本猫可以做个相关Api来修改header吗,感觉做的话功能会更强大,更多的想法可以实现了,不知道MV3中能否实现,比如某些链接的RefererUser-Agent鉴权,但是破坏性应该是挺强的

    相关链接:https://he.firefoxcn.net/guide/custom-function#%E5%A6%82%E4%BD%95%E8%B0%83%E8%AF%95%E8%87%AA%E5%AE%9A%E4%B9%89%E5%87%BD%E6%95%B0

    interface CAT_headerEditor_Rule {
        /**
         * 匹配规则
         */
        pattern: string | RegExp;
        /**
         * 排除规则
         */
        exclude: string | RegExp;
    }
    interface CAT_headerEditor_HeaderRule {
        /**
         * 传入Header,修改header
         * @param headers
         * @example
         * (headers)=>{
         *    headers.set("Referer","xxxxxx");
         *    headers.delete("Referer");
         *    headers.set("User-Agent": "xxxx");
         *    return headers;
         * }
         */
        callback: (headers: Headers) => Headers;
    }
    /**
     * 阻止请求
     */
    interface CAT_headerEditor_blockRequest extends CAT_headerEditor_Rule {
        ruleType: "blockRequest";
    }
    /**
     * 重定向请求
     */
    interface CAT_headerEditor_redirectRequest extends CAT_headerEditor_Rule {
        ruleType: "redirectRequest";
        /**
         * 传入完整的url
         * @param url
         * @returns
         * + null|undefined: 跳过
         * + string: 重定向URL
         * + "_header_editor_cancel_": 取消请求
         */
        callback: (
            url: string
        ) => string | null | undefined | "_header_editor_cancel_";
    }
    /**
     * 修改请求头
     */
    interface CAT_headerEditor_modifyRequestHeader
        extends CAT_headerEditor_Rule,
            CAT_headerEditor_HeaderRule {
        ruleType: "modifyRequestHeader";
    }
    /**
     * 修改响应头
     */
    interface CAT_headerEditor_modifyResponseHeader
        extends CAT_headerEditor_Rule,
            CAT_headerEditor_HeaderRule {
        ruleType: "modifyResponseHeader";
    }
    /**
     * 修改响应体
     * @only firefox
     */
    interface CAT_headerEditor_modifyResponseBody extends CAT_headerEditor_Rule {
        ruleType: "modifyResponseBody";
    }
    /**
     * 所有的规则类型
     */
    type CAT_headerEditor_OptionRuleType =
        | CAT_headerEditor_blockRequest["ruleType"]
        | CAT_headerEditor_redirectRequest["ruleType"]
        | CAT_headerEditor_modifyRequestHeader["ruleType"]
        | CAT_headerEditor_modifyResponseHeader["ruleType"]
        | CAT_headerEditor_modifyResponseBody["ruleType"];
    
    /**
     * 配置
     */
    interface CAT_headerEditor_Option {
        ruleType: CAT_headerEditor_OptionRuleType;
    }
    
    export const CAT_headerEditor = function (option: CAT_headerEditor_Option) {
        // 具体实现
    };
    
  • TA的每日心情

    2024-6-12 17:04
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    4

    主题

    18

    回帖

    51

    积分

    初级工程师

    积分
    51

    油中3周年油中2周年新人报道挑战者 lv2

    发表于 2024-6-18 13:12:57 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-13 10:14
  • 签到天数: 211 天

    [LV.7]常住居民III

    298

    主题

    4094

    回帖

    3969

    积分

    管理员

    积分
    3969

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 2024-6-18 13:47:17 | 显示全部楼层
    可以的,有说法的

    不过目前还没空增加新的API,新功能的添加先重构完成了MV3再说,现在的版本只做缝缝补补了

    MV3实现这个应该没啥问题,然后API的定义怎么样还不好说,后续再思考


    哥哥可以发到GitHub上去,这边主要还是社区这块的
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。/ 微信公众号:一之哥哥
    回复

    使用道具 举报

  • TA的每日心情

    2024-6-12 17:04
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    4

    主题

    18

    回帖

    51

    积分

    初级工程师

    积分
    51

    油中3周年油中2周年新人报道挑战者 lv2

    发表于 2024-6-18 14:09:17 | 显示全部楼层
    王一之 发表于 2024-6-18 13:47
    可以的,有说法的

    不过目前还没空增加新的API,新功能的添加先重构完成了MV3再说,现在的版本只做缝缝补补 ...

    好的gg,已经提issue了
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表