allor
1
以前写了个蹭微博API的短链接生成小书签(应该失效了)
前几天被问到能不能用小书签实现短链接的解析(还原长链接)
在网页控制台试了下老是被拦截跨域,不知道油猴能不能解决这问题:
选中短链接(无论文本还是链接形式)> 自动查询并显示长链接
@dms 值得开个坑喝咖啡
我试了下其他方式 ,通过 curl 可以很简单地实现,但这交互方式很不友善
curl -I -s http://mtw.so/6nxXUh | grep '^Location' | awk -F ': ' '{print $2}'
windows 环境建议自行下载 curl.exe,其余 grep、awk可以用 powershell 对应命令代替
powershell 的 curl (实际是Invoke-WebRequest
的别名,李鬼 )我没找到仅返回 header 的方法,以下 powershell 命令实测无效
Invoke-WebRequest -Uri example.com -Method Head
有类似需求的可以用 AHK 封装一下
另:下面这个是 cmder 上一直报错的版本,懵了
curl -Is http://mtw.so/6nxXUh | grep -Po '(?<=^Location: ).*'
18CM
2
用一下 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
dms
4
道理上油猴子有跨域的能力,不过出于安全考虑,这个能力被不断的限制。
用 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 个赞
搜索酱的showTips模板可以做到。
规则如下:
筛选正则可以按需更改成 dwz mtw 之类的网址
2 个赞
短链接是挺好用的,但是最大的问题就是会失效……
稳定还不失效的好像就twitter那个短连接,十几年了还可以用。(可惜墙内不支持)
allor
7
各个的解决方案都很好,但只能选一个
@Hoothin 的不用脱离浏览器场景,就选这个了
老鼠你不是发过个 让链接变得更好系列(四枚入) 吗,不考虑改下交互方式更新进去?
而且既危险又难看……
都5G时代了,还差长链接那点字符串的流量吗
dms
8
短链接的实现方式非常多,,不知道这个解析方式能兼容多少,兼容的范围太低,估计发了也是被骂
dms
10
咖啡也就是个门槛,根本不够我的工时费(严重不够,杯水车薪),就是肯付费的基本不会鸡蛋里头挑骨头,就算黑我吧,这人数也能少点不是(
1 个赞