よかったら参考にしてくだされ

### mention

{

"did": "",

"collection": "",

"record": {

"text": "",

"createdAt": "",

"entities": [

{

"type": "mention",

"index": {

"end": 19,

"start": 0

},

"value": "did:plc:opfkqvrr3g3wazzjqcnxkaqy"

}

]

}

}

### post-link(投稿内のurlにリンクを貼る)

{

"did": "",

"collection": "",

"record": {

"text": "",

"createdAt": "",

"entities": [

{

"type": "link",

"index": {

"end": 22,

"start": 0

},

"value": "https://atproto.com/lexicons/com-atproto-session"

}

]

}

}

mentionのvalueはhandle(user.bsky.social)でもリンクは乗りますが相手側に通知が飛びません。相手側にも通知するにはdidが必要ぽい

Reply to this note

Please Login to reply.

Discussion

あざます!(たぶんそうだろうなとは思っていたのですが自動で変換されてくれたらいいなーと思いつつ試したら駄目でした)

start, endはtextでリンクを貼る位置を指定します

text=xxx_@syui_xxxなら

4,8とかになりそう

なるほど。(めんどくさそう...の顔)

すみません、mentionはdidのstart, endかも

おそらくなんですがこれリンクの開始と終了位置だと思うんですよね。なので

検索はGoogleです。

のGとeの位置なんかなぁと。バイト位置なのか文字位置なのかが分からないけども。

そうですね、私が間違ってたので最初のやつが正しそう

クライアント作るなら入力を markdown とかにして start/end を得ないと手で位置を入力させるのは無理そうな気がしますね。

そうですね。

さっきのやつ間違ってたみたいなので修正。

let e = handle.chars().count();

goでtwitterのlibに便利そうなのあるらしい。見つけたら共有します

これが便利らしいけど、url用ぽいので使えるかはわからない

https://github.com/kylemcc/twitter-text-go

ありがとうございます。ちなみに今これ使って2つ投げてみたんですが、どう見えてるでしょう?(すみません実機持ってなくて)

githubは全体がリンク

@は@mattnの部分だけリンク

Twitter 専用なのでしょうがないっすね。自作します...

そういやnostrの画像、そちらでも見えてます?

はい、nostr は見えています。(そちらとは...)

はい、文字オフセットじゃなくバイトオフセットにしちゃってたのでバグりました。

@ = ok

github = ok

ただし、httpsの部分が範囲に入ってない

はい、そのスレに治したのを投げてあります。

ok

@mattnの部分はprofileのリンクに飛んでないみたい、didでリンクされてない?内部でhandleとの一致を見ているのかも

私のはこんな感じ

mにhandle(user.bsky.social)が入ってる

let e = udid.chars().count();

let s = 0;

if let Ok(post) = c.string_flag("post") {

let post = Some(json!({

"did": did.to_string(),

"collection": col.to_string(),

"record": {

"text": m.to_string() + &" ".to_string() + &post.to_string(),

"createdAt": d.to_string(),

"entities": [

{

"type": "mention".to_string(),

"index": {

"end": e,

"start": s

},

"value": udid.to_string()

}

]

},

}));