pixivで夢小説(名前変換小説)を楽しむブックマークレット「Dreamlet」を書きました
(2021.5.11 追記)仕様変更への対応が困難になったため、メンテナンスを終了します。今まで使っていただいてありがとうございました。
Dreamletとは
pixivで夢小説(名前変換小説)を楽しめるブックマークレットです。ブラウザのブックマークに登録しておけば、それを実行するだけで文中の氏名を変換することができます。
コードはGistにあります。
使い方
書く人(してもしなくてもOK)
- 文中の苗字を 【苗字】、名前を【名前】にしておく
読む人
- 適当なページ(今開いているこのページでOK)をブックマークする
- ブックマーク編集画面を開き、URLの欄に下の文字列をコピペする
☆
を苗字、★
を名前に書き換えて上書き保存する- pixiv、またはPrivatterの好きな小説ページでブックマークレットを実行(上で追加したブックマークを開けばOK)する
javascript:(function(){var%20f1='【苗字】';var%20n1='【名前】';var%20f2='☆';var%20n2='★';var%20area=document.querySelectorAll('[id]');var%20len=area.length;if(len%3E0){var%20content=area[0].innerHTML;if(content.length%3E0){if(content.indexOf(f1)%3C0)f1=prompt('変換前の苗字を入力してください');if(content.indexOf(n1)%3C0)n1=prompt('変換前の名前を入力してください')}if(f1!=='')f2=prompt('変換後の苗字を入力してください',f2);if(n1!=='')n2=prompt('変換後の名前を入力してください',n2);function%20dreamize(){var%20a=null;for(var%20b=0;b%3Clen;b++){if(area[b].getAttribute('id').match(/^\d+$/g)){a=area[b].nextSibling;break}else%20if(area[b].getAttribute('id')==='novel-text-container'){a=area[b];break}}console.log('node:',a);if(a){if(f1!==''%26%26f2!=='')a.innerHTML=replaceName(a.innerHTML,f1,f2);if(n1!==''%26%26n2!=='')a.innerHTML=replaceName(a.innerHTML,n1,n2)}}dreamize()}else{alert('エラーが発生しました。')}function%20replaceName(a,b,c){if(b!==''%26%26c!==''){var%20d=new%20RegExp(b,'g');return%20a.replace(d,c)}return%20a}}())
読んでおいてほしいこと
- これを使ったいかなる不具合にも責任は持ちません。
- いちユーザが勝手に作ったものですので、各サービスに直接問い合わせても何も解決しません。
- 各サービスの仕様変更によってある時突然動かなくなる可能性があります。気づき次第気が向いたら直します。
- 夢小説、名前変換小説以外の小説で使うのは非推奨です(使ってもいいけどあんま言わないでほしい)。
- バグ報告や要望がもしあればコメントとかリプいただけるとうれしい。
- デフォルト名なし版で書いてくださった方は「Dreamlet対応」タグをつけていただけると探しやすくなると思います。
追加したい機能
- Cookieに氏名の設定を保存する
- 【苗字】が名字や氏などでも大丈夫なように表記ゆれ対応する
更新履歴
2019/10/30
- pixivの仕様変更に対応
- 仕様変更に伴い、作品内で改ページされていた場合ページを移動するごとに実行し直す必要があります
2018/01/23
Privatterに夢小説機能が実装されたため対応箇所を削除
2018/01/22
モバイル版pixivの仕様変更に対応
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
初版