Greasy Fork is available in English.

pixiv ajax bookmark and follow

ブックマークとお気に入り登録をページ遷移なく非同期的に行います。

// ==UserScript==
// @name       pixiv ajax bookmark and follow
// @namespace  
// @version    0.7
// @description  ブックマークとお気に入り登録をページ遷移なく非同期的に行います。
// @include   http://www.pixiv.net/member_illust.php*
// @include   http://www.pixiv.net/member.php?*
// @copyright  2014+, qa2
// @author qa2
// ==/UserScript==

//初期設定
/*
参考
 char code list: http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes

 */

// bkm_restrict ブックマークする作品を非公開にするかどうか 0:公開 1:非公開
var bkm_restrict = 0;

// follow_restrict フォローしたユーザーを非公開にするかどうか 0:公開 1:非公開
var follow_restrict = 0;

$('a[name=link]').css({'font-size':'60px'});
$('a[alt=link]').css({'font-size':'60px'});
$('input[name=input]').css({'font-size':'60px'});


//eキーを押すとブクマする
$(window).keydown(function(e) {
  if (!$("input[name=word]").is(":focus") && e.which == 69) {
    $(".add-bookmark").text("ブクマ編集");
      bkm();
    }
});



//zキーを押したらユーザーをお気に入り登録する
$(window).keydown(function(e) {
  if (!$("input[name=word]").is(":focus") && e.which == 90) {
    $("#favorite-button").attr("data-text-follow", "フォロー中です");
    $("#favorite-button > .text").text("フォロー中です");
    follow();
    }
});


// ajaxでブックマークする関数
function bkm() {
  
   var illustid = $("input[name=illust_id").val();
   var url = "http://www.pixiv.net/bookmark_add.php?id=" + illustid
   var tt = $("input[name=tt]").val();
   var type = $("input[name=type]:eq(1)").val();
//作品に登録されているすべてのタグをブックマークタグとして追加
   var tags = "";
     $(".tag > .text").each(function() {
        tags +=  $(this).text() + " "
     });

  $.ajax({
      url: url,
      type: 'POST',
      dataType: 'json',
      data: {
        mode: "add",
        tt: tt,
        id: illustid,
        type: type,
        from_id: "",
        comment: "",
        tag: tags,
        restrict: bkm_restrict,
        success: function() {
          $(".add-bookmark _button")
          .removeClass(".add-bookmark _button")
          .addClass(".edit-bookmark button-on")
          $("._button")
            .css("color", "#666")
            .css("text-shadow", "none")
            .css("background-color", "#f4f4e7");
        }
      },
    })
}

// ajaxでお気に入り登録する関数
function follow() {
    var usr_id = $(".user-link").attr("href");
    var usrid = usr_id.match(/\/member.php\?id=([0-9]+)/);
    var id = usrid[1];

    var tt = $("input[name=tt]").val();

    $.ajax({
        url: 'http://www.pixiv.net/bookmark_add.php',
        type: 'POST',
        dataType: 'json',
        data: {
            mode: "add",
            type: "user",
            user_id: id,
            tt: tt,
            from_sid: "",
            restrict: follow_restrict,
            left_column: "OK",
            success: function() {
              $("i._icon sprites-follow")
                  .removeClass("_icon sprites-follow")
                  .addClass("_icon sprites-follow");
             }
        },
    })
}