このブログはここに引っ越しました。

pixivで夢小説(名前変換小説)を楽しむブックマークレット「Dreamlet」を書きました

Dreamletとは

pixiv、Privatterで夢小説(名前変換小説)を楽しめるブックマークレットです。ブラウザのブックマークに登録しておけば、それを実行するだけで文中の氏名を変換することができます。

コードは下記のようなかんじです。 gist9188018

使い方

書く人(してもしなくてもOK)

  1. 文中の苗字を 【苗字】、名前を【名前】にしておく

読む人

  1. 適当なページ(今開いているこのページでOK)をブックマークする
  2. ブックマーク編集画面を開き、URLの欄に下の文字列をコピペする
  3. を苗字、を名前に書き換えて上書き保存する
  4. pixiv、またはPrivatterの好きな小説ページでブックマークレットを実行(上で追加したブックマークを開けばOK)する
javascript:(function(){!function(){function e(e,n,r){if(""!==n&&""!==r){var t=new RegExp(n,"g");return e.replace(t,r)}return e}var n="【苗字】",r="【名前】",t="☆",i="★",o=location.href,a=[];if(o.indexOf(".pixiv.net")>-1)o.indexOf("touch")>-1?a[0]=document.getElementById("novel-text-container"):a=document.getElementsByClassName("novel-page");else{if(!(o.indexOf("privatter.net")>-1))return void alert("DreamletはpixivまたはPrivatterの小説ページで実行してください。");a[0]=document.getElementById("evernote")}if(0==a.length)return void alert("変換対象が見つかりませんでした。");for(var f=a.length,l=0;f>l;l++)if(a[l].innerHTML.indexOf(n)<0){n=prompt("変換前の苗字を入力してください");break}for(var l=0;f>l;l++)if(a[l].innerHTML.indexOf(r)<0){r=prompt("変換前の名前を入力してください");break}""!==n&&(t=prompt("変換後の苗字を入力してください",t)),""!==r&&(i=prompt("変換後の名前を入力してください",i));for(var l=0;f>l;l++)a[l].innerHTML=e(a[l].innerHTML,n,t),a[l].innerHTML=e(a[l].innerHTML,r,i)}();})();

読んでおいてほしいこと

  • これを使ったいかなる不具合にも責任は持ちません。
  • いちユーザが勝手に作ったものですので、各サービスに直接問い合わせても何も解決しません。
  • 各サービスの仕様変更によってある時突然動かなくなる可能性があります。気づき次第気が向いたら直します。
  • 夢小説、名前変換小説以外の小説で使うのは非推奨です(使ってもいいけどあんま言わないでほしい)。
  • バグ報告や要望がもしあればコメントとかリプいただけるとうれしい。
  • デフォルト名なし版で書いてくださった方は「Dreamlet対応」タグをつけていただけると探しやすくなると思います。

追加したい機能

Cookieに氏名などの設定を保存したい ただ、Cookieドメインごとに保存されるから設定が別々になってしまう…

更新履歴

2016/01/15

pixivで動かなくなってたので修正

2015/10/4

凡ミスでpixiv小説2ぺーじめ以降変換できていなかったのを修正

2015/07/12

PC版pixivの仕様変更に対応

2015/06/20

touch.pixiv.netに対応

2015/06/16

pixivの仕様変更に対応

2015/03/02

デフォルト名が取得できなかった場合、変換しないように修正

2014/08/24

Privatter用に改造していただいたのと、デフォルト名ありなしで使い分けるのめんどいよーという声をいただいたので、ひとまとめにしちゃいました。

DreamletをPrivatterで使う - Privatter

  • 文中に【苗字】【名前】があればデフォルト名を聞かないようにした
  • 自分の氏名をブックマークレット内部に保存し、ダイアログの初期値に使うようにした
  • Privatterでも使えるようにした

2014/02/24

初版