Bluesky DIDを使ったプロフィールURLで開き直す
by
mino90
02/18 [2024/02/18 23:53:16]
アカウント名を変更しても変わらないDIDを使用したプロフィールページに移動する。プロフィールページで実行
@@ -1,23 +1,23 @@
/*
* @title Bluesky DIDを使ったプロフィールURLで開き直す
- * @description アカウント名を変更しても変わらないDIDを使用したプロフィールページに移動する。ログアウトしたユーザーに見せない設定のアカウントは無理。プロフィールページで実行
+ * @description アカウント名を変更しても変わらないDIDを使用したプロフィールページに移動する。プロフィールページで実行
* @include https://bsky.app/profile/*
* @license MIT License
*/
(function(){
-if(/^https:\/\/bsky\.app\/profile\//.test(location.href) && !/\/lists\//.test(location.href) && !/\/feed\//.test(location.href)){
+if(/^https:\/\/bsky\.app\/profile\//.test(location.href) && !/\/lists\//.test(location.href) && !/\/feed\//.test(location.href) && !/\/post\//.test(location.href) && !/did:plc:/.test(location.href)){
+
+const handle=location.href.match(/^https:\/\/bsky\.app\/profile\/(.+)$/);
-//<noscript>の部分からDIDを取得したいが、ページを移動するだけだと更新されないので取得を行う
let a=new XMLHttpRequest();
a.onreadystatechange = function(){
if (a.readyState == 4 && a.status == 200){
-const did=new DOMParser().parseFromString(a.responseXML.getElementsByTagName('noscript')[0].innerHTML,'text/html').getElementById('bsky_did').innerHTML;
-location.href='https://bsky.app/profile/'+did;
+location.href='https://bsky.app/profile/'+a.response.did;
}}
-a.open('GET',location.href);
-a.responseType='document';
+a.open('GET','https://bsky.social/xrpc/com.atproto.identity.resolveHandle?handle='+handle[1]);
+a.responseType='json';
a.send();
};
/*
* @title Bluesky DIDを使ったプロフィールURLで開き直す
* @description アカウント名を変更しても変わらないDIDを使用したプロフィールページに移動する。プロフィールページで実行
* @include https://bsky.app/profile/*
* @license MIT License
*/
(function(){
if(/^https:\/\/bsky\.app\/profile\//.test(location.href) && !/\/lists\//.test(location.href) && !/\/feed\//.test(location.href) && !/\/post\//.test(location.href) && !/did:plc:/.test(location.href)){
const handle=location.href.match(/^https:\/\/bsky\.app\/profile\/(.+)$/);
let a=new XMLHttpRequest();
a.onreadystatechange = function(){
if (a.readyState == 4 && a.status == 200){
location.href='https://bsky.app/profile/'+a.response.did;
}}
a.open('GET','https://bsky.social/xrpc/com.atproto.identity.resolveHandle?handle='+handle[1]);
a.responseType='json';
a.send();
};
})();
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。