読者です 読者をやめる 読者になる 読者になる

はりをきば

そこにピカマンがいる限り 私はテイッハットウッをやめない


Caution!!
この日記はバカな私(はりを)が何かを忘れない為に、バカの一つ覚えの如く色んな記事を投稿しています。…が、
あくまでもただの備忘録のひと握りに過ぎず、情報の信憑性や真偽までは保証していません。
極力正しい情報をまとめているつもりですが、万一誤った記事の内容を実行しトラブル等が発生しても
当方は如何なる責任を負いません。自己責任でご利用ください。

以上に同意する方のみ、この雑記帳の閲覧をお願いします。

初めての方はこちらも併せてお読みください。このブログについて (About)


…ちゃ、ちゃんと予防線張ったからな!! ホント何があっても知らねーからな!!!(小学生並の言い訳)

予防線(☢Caution!!☢)の表示
テキスト全般の表示に使うフォント (大抵は「メイリオ」か「ヒラギノ角ゴ ProN W3」) (マルチバイト文字はSource Han Sansと同じ) (マルチバイト文字はNoto Sansと同じ)
ソースコードの表示に使うフォント
ピカマンロケットの効果音

設定を保存キャンセル

pixivのプロパティまとめ(JavaScript)

JavaScript

いつもの誰得備忘録。


pixivは一部のページ*1を除き、ほぼ全てのページでjQuery(1.8.3)を読み込んでいる。


jQueryが読み込まれているページでは同時に
グローバル空間にpixivという名の連想配列(window.pixiv)がセットされており、
この中にUIを操作する為のメソッドと各種情報が色々詰まってる。


その内、メソッド(関数)以外で割と使えそうなのを一通りメモっとく。
(関数は数がハンパなく多く動作確認面倒なので気になるなら各自確認してくれ)
(私はROM専なので投稿周りはほとんど分からん。誰か情報プリーズ)



context

閲覧しているページの情報が格納されてる。

名前 説明
illustTitle 文字列 作品個別ページでのみ出現。
作品タイトル。
illustId 文字列 作品個別ページのID。
URLのillust_id=横の数字と同じ。
illustIdという名だが小説でも値が入ってる。
novelId 文字列 小説ページにのみ出現。
値はillustIdと同じ。
workId 文字列 小説ページにのみ出現(?)
値はillustIdと同じ。
userId 文字列 投稿者のID。
member.php?id=の数字。
userName 文字列 作品個別ページ(ry
投稿者のユーザー名。
embedId 文字列 作品個別(ry
作品埋め込み(貼り付け)コードのdata-id属性内の値
updated 文字列 更新や再投稿があった場合にのみ出現(?)
更新日時のUnix時刻。
type 文字列 イラストや漫画ならillust
小説ならnovel
rated 真偽値 評価すると点数に拘らずtrueになる。
手動でfalseにすると再び評価できるようになる。*2
self 真偽値 不明。
おそらく投稿者が自分自身だった場合にtrue?
favorite 真偽値 投稿者をお気に入り(フォロー)しているとtrue?
myPixiv 真偽値 投稿者とマイピク関係にあるとtrue?
queries 連想配列 現在のURLパラメータの名と値がそのまま入ってる。
queries.illust_id: "0123456789"てな感じで)
location.searchを分解する手間が省けて便利。
pages 配列 漫画一覧ページでのみ出現。
ページ数が1つずつ数値で入ってる。
lengthで総ページ数を取得できるので便利。
images 配列 漫画一覧(ry
その漫画の全ページの画像URLが1つずつ文字列として入ってる。
言うまでもなく先頭は0。
thumbnailImages 配列 漫画(ry
↑のサムネイルサイズが同じように入ってる。

rating

評価関係のメソッドが入ってる。

名前 説明
rate 数値 評価した点数が入る。
評価していない場合は0。

title

名前 説明
original 文字列 本来のページタイトル(生ソースのtitleタグの中身)が入ってる。*3

user

自身に関する情報が入ってる。

名前 説明
loggedIn 真偽値 ログインしているとtrue。
尚、この値がfalse(ログインしてない)だと
以下のプロパティは全てundefined。
premium 真偽値 プレミアム会員ならtrue
gender 文字列 男:male 女:female
id 文字列 自身のユーザーID
anonymousHash 文字列 何かのハッシュっぽいが
どこで使われているのかは不明。
unreadCount 連想配列 未読のメッセージ&通知。
message(pixivメッセージ)とpopboard(通知)に
それぞれ未読数が数値で入ってる。



例えば、以下のブックマークレットを作品個別ページで実行すると
上の表通りの情報が返ってくるはず。

(function(p){
	alert(
		'作品名:' + p.context.illustTitle + '\n' +
		'投稿者:' + p.context.userName    + '\n' +
		'\n' +
		'【未読】' + 'メッセージ⇒' + p.user.unreadCount.message + ' ' + '通知⇒' + p.user.unreadCount.popboard
	);
})(window.pixiv);

window.pixiv test


…まぁ、こんなところ。
主にブックマークレットやユーザースクリプトなんかで使えるかなと。


出来ればメソッドもまとめたいけど数がやばい。

*1:イラストや漫画などでオリジナルサイズを表示した際の画像単体表示ページ等

*2:あくまでもUI上は。このやり方で二重評価を実行すると一応JSONは正しく200で返ってくるが、実際にカウントに計上されているのかどうかは不明。

*3:漫画ページではタイトルの最後に現在のページ番号が追加される為、document.titleだとそれらをカットする手間がかかる。