パープレの100件越えスレッド用ブックマークレット

→ 画面の中に小ウィンドウを開いて100件よりも前の履歴を表示させる(300件まで?)

ブックマークレット本体

javascript:(async ()=>{
  if (!location.href.startsWith('https://www.perplexity.ai/search/')) return;

  let url = location.href.replace('/search/', '/rest/thread/') + "?with_schematized_response=true&limit=300";
  let txt = (await fetch(url).then(r => r.json())).entries.map((entry,idx) => {
    let answer = entry?.blocks?.map(block=>block?.markdown_block?.answer || '').join('');
    let pre = (str, style)=>`<pre style="white-space:pre-wrap;padding:25px;${style}">${str}\n</pre>`;
    let ps = 'font-size:0.8rem;color:#BBB;';
    return `<span style="${ps}">&nbsp;${idx+1}</span>${pre(entry?.query_str || '',ps)}${pre(answer,'')}`;
  }).join(`<hr>`);

  var cmn = `style="position:fixed;color:#EEE;background:`;
  let ds = `${cmn}#000E;inset:8% 25%;z-index:99;border:solid 1px;overflow:auto;"`;
  let bs = `${cmn}#555;padding:2px;" onclick="this.parentNode.remove();"`;
  document.body.insertAdjacentHTML('beforeend', `<div ${ds}><button ${bs}>&times;</button>${txt}</div>`);
})();

使用方法

(※一般的なブックマークレットの使用方法なので分かる人は読まなくてOK)

【ブックマークから】
①適当なサイトのブックマークを作成(どこでもよい、このページでもいい)
②ブックマークの編集画面を開き、URLの部分を上のテキストで置き換える。
( 「javascript:」から始まり、最後は「();」。上から全部コピペすればいい。)
③ブックマークの編集を保存。(必要であれば名前も変える)
④パープレのスレッドを開いた状態で(URLがで、「www.perplexity.ai/search/~」になっている状態で)、ブックマークを使う。

【アドレスバーから】
①上のテキストをアドレスバーにコピー&ペースト。
②先頭から「javascript:」の部分が消されるので書き足す。
③確定して実行。

その他カスタマイズなど

・履歴の数は「limit=300」で指定しているが実際に300件も遡れるかは不明。100件は超えられる。上限不明。
・履歴画面のサイズは「inset:8% 25%」で決まっている。「inset:上下の余白 左右の余白」。
・マークダウンの変換はしていないので、履歴の生の文字列。

Edit Report
Pub: 23 Apr 2025 01:39 UTC
Edit: 23 Apr 2025 01:50 UTC
Views: 321