UrlParamsRemover 自动删除 url 中的参数并写入系统剪贴板 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
AllenHua
V2EX    分享发现

UrlParamsRemover 自动删除 url 中的参数并写入系统剪贴板

  •  
  •   AllenHua 2022-05-13 16:13:01 +08:00 1746 次点击
    这是一个创建于 1252 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我有一个习惯,分享给别人一个不需要参数就能准确定位的资源链接,我一定“强迫症一样”把参数全都删了然后再发给别人。这里不谈论好坏,强迫症,也不谈论意义,我简单用 Java 写了一段代码实现了,但是不够优雅,还请各位看官批评。

    举个例子

    https://www.bilibili.com/video/BV1Ez411v7eL?from=search&seid=3493040094031299633&spm_id_from=333.337.0.0 

    这个链接很明显是用户搜索了什么关键词之后点进去视频页面产生的 url ,现在我复制它,在 Powershell 下输入 url 回车

    剪贴板已经变成了

    https://www.bilibili.com/video/BV1Ez411v7eL 

    接着在任何想要粘贴的地方粘贴即可(比如微信聊天框)

    感觉我的实现还是太 low 了,希望有更好的,让我学习一下,我是真的很有这个需求。虽然通过 windows batch file 配合 powershell alias 加上本程序已经很快了,但是我想要通过快捷键,比如 windows/command + shift + R 快速执行程序,然后让程序写入新的 url 到系统剪贴板,这个 work flow 更加无感,也更便捷。

    比如 picgo: 截图 --> control/command + shift + P --> 等待上传成功,url 自动写入系统剪贴板 --> 在需要的地方粘贴。

    我的代码: https://github.com/hellodk34/UrlParamsRemover


    有下面这些步骤。

    下载 jar file

    releases 下载最新 jar file.

    在 jdk11 下开发和测试,不知道 java8 是否兼容。

    编写 batch file

    @ECHO OFF start java -jar <your_jar_file_path>.jar 

    编写 powershell profile 脚本

    此处可参考我的文章: 为 PowerShell 设置 alias

    编辑文件 xxx\WindowsPowerShell\Microsoft.PowerShell_profile.ps1,添加如下内容(如果没有请生成,请参考上文操作)。

    function url {d:\UrlParamsRemover.bat} 

    此处 url 就是 alias.

    整个 flow 就是用户(从浏览器地址栏)复制 url 然后 powershell 输入 url 执行就能将新的 url 写入剪贴板,用户可以在任何地方粘贴。


    大家有更好的方法吗?感觉 go 适合写这个小工具。来实现一个吧:)最好能绑定系统快捷键。

    7 条回复    2022-05-13 23:01:24 +08:00
    exocell
        1
    exocell  
       2022-05-13 17:32:34 +08:00
    powershell 可以读取剪贴板内容呀。

    写个 PS1,读取剪贴板,处理字符串,然后输出剪贴板.

    然后拉个快捷方式,属性里设置热键就行.

    复制 URL 后,按热键,然后粘贴,完事.
    AllenHua
        2
    AllenHua  
    OP
       2022-05-13 17:38:01 +08:00
    @exocell #1 powershell 不会,我学一学 :(
    AV1
        3
    AV1  
       2022-05-13 17:42:02 +08:00
    试着用一个 HTML 文件实现

    <!DOCTYPE html>
    <div>把 URL 粘贴下来,自动移除参数,并复制到剪切板</div>
    <textarea style="width: 500px;height: 200px;" Oninput="textareaOnInput(this)"></textarea>
    <script>
    /** @type {(url:string)=>string} */
    const urlParamsRemove=(url)=> {
    const u = new URL(url)
    return `${u.origin}${u.pathname}`
    }

    /** @type {(ev:HTMLTextAreaElement)=>void} */
    const textareaOnInput= (el) => {
    el.value = urlParamsRemove(el.value)
    navigator.clipboard.writeText(el.value)
    }
    </script>
    xiozf
        4
    xiozf  
       2022-05-13 17:56:38 +08:00
    啊,我也有这个习惯。我感觉这个事不要再离开浏览器最方便,另开一个工具太繁琐了,我现在用书签版。书签栏常驻,需要净化时点一下书签,页面会自动刷新,页面内的链接也会被净化(只测过淘宝购物车内的链接),净化后的地址也会自动复制到剪贴板,你可以看看。
    这是作品首页(书签版和油猴版): https://dmscode.github.io/Link-cleaner/
    这是书签版发布讨论页: https://meta.appinn.net/t/topic/3130
    这是油猴版发布讨论页: https://www.appinn.com/dms-links-clean-greasemonkey/
    xiozf
        5
    xiozf  
       2022-05-13 18:00:00 +08:00
    书签版如果不常驻书签栏,我试了无法生效。
    不喜欢书签栏常驻的,可能要等其他人开发出一个小 app ,再绑定鼠标手势。复制网址后做一个手势,手势软件自动调用净化 app 完成净化,我感觉这样也方便。
    renmu123
        6
    renmu123  
       2022-05-13 18:04:03 +08:00 via Android
    utools 或者 ahk 之类写起来都很方便
    就读取剪切板第一条然后做些操作然后再写入
    AllenHua
        7
    AllenHua  
    OP
       2022-05-13 23:01:24 +08:00
    @xiozf 确实是,还要单独再开一个终端不是我想要的 flow
    @renmu123 win 下类似 alfred 的软件就用过微软 powertoys ,而且还很有差异。utools 没用过但听过,有机会可以尝试一下,感谢
    @DOLLOR good job
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     957 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 38ms UTC 22:33 PVG 06:33 LAX 15:33 JFK 18:33
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86