关于短链接的解析问题

以前写了个蹭微博API的短链接生成小书签(应该失效了)
前几天被问到能不能用小书签实现短链接的解析(还原长链接)

在网页控制台试了下老是被拦截跨域,不知道油猴能不能解决这问题:

选中短链接(无论文本还是链接形式)> 自动查询并显示长链接

@dms 值得开个坑喝咖啡 :laughing:


我试了下其他方式 ,通过 curl 可以很简单地实现,但这交互方式很不友善

curl -I -s http://mtw.so/6nxXUh | grep '^Location' | awk -F ': ' '{print $2}'

windows 环境建议自行下载 curl.exe,其余 grep、awk可以用 powershell 对应命令代替

powershell 的 curl (实际是Invoke-WebRequest的别名,李鬼 :rage:)我没找到仅返回 header 的方法,以下 powershell 命令实测无效 :smiling_face_with_tear:

Invoke-WebRequest -Uri example.com -Method Head

有类似需求的可以用 AHK 封装一下


另:下面这个是 cmder 上一直报错的版本,懵了

curl -Is http://mtw.so/6nxXUh | grep -Po '(?<=^Location: ).*'

用一下 Net ?[system.Net.WebRequest]::Create($url)

早上看了一下我的 Win 11 自带 CURL
查了一下 Win 10 Insider Build 17063 以后自带 Curl 和 Tar

做了一个 quicker 动作,这样就可以全局还原短链接了

1 个赞

有awk直接使用awk,或者grep配合cut,正则是个坑。
curl -sI <url>|awk '/^Location/ {print$2}'或者curl -sI <url>|grep "Location"|cut -d" " -f2

道理上油猴子有跨域的能力,不过出于安全考虑,这个能力被不断的限制。

GM_xmlhttpRequest 方法应该可以,要先申请此方法的使用权限,然后有提示需要许可跨域申请,目测总是允许以后就不会提示了。

选中文本,从油猴菜单调用。如果没选中文本会显示输入框。没做任何验证,只考虑到楼主的一种短链接实现方式。然后把结果复制到剪切板(并输出在控制台,方便 debug)

// ==UserScript==
// @name         短地址还原
// @namespace    Get Long Url which you select
// @version      0.1
// @description  短连接还原,只考虑了一种情况
// @author       You
// @match        *://*/*
// @grant        GM_registerMenuCommand
// @grant        GM_xmlhttpRequest
// @grant        GM_setClipboard
// ==/UserScript==

GM_registerMenuCommand("获取长地址", ()=>{
    const shortUrl = document.getSelection().toString() || prompt("输入要查询的短地址");
    GM_xmlhttpRequest({
        method: "GET",
        url: shortUrl,
        headers: {
            "Content-Type": "application/json"
        },
        onload: function(response) {
            console.log(response.finalUrl);
            GM_setClipboard(response.finalUrl, "text");
            alert("可能在剪切板里了吧");
        }
    });
}, "l");
2 个赞

image

搜索酱的showTips模板可以做到。
规则如下:

筛选正则可以按需更改成 dwz mtw 之类的网址

2 个赞

短链接是挺好用的,但是最大的问题就是会失效……
稳定还不失效的好像就twitter那个短连接,十几年了还可以用。(可惜墙内不支持)

各个的解决方案都很好,但只能选一个 :joy:

@Hoothin 的不用脱离浏览器场景,就选这个了

老鼠你不是发过个 让链接变得更好系列(四枚入) 吗,不考虑改下交互方式更新进去?


而且既危险又难看……
都5G时代了,还差长链接那点字符串的流量吗

短链接的实现方式非常多,,不知道这个解析方式能兼容多少,兼容的范围太低,估计发了也是被骂

咖啡没喝着反惹一身骚 :joy:

咖啡也就是个门槛,根本不够我的工时费(严重不够,杯水车薪),就是肯付费的基本不会鸡蛋里头挑骨头,就算黑我吧,这人数也能少点不是(

1 个赞