快速批量修改豆瓣电影评分 using Javascript

截止 2016.05.06 依然有效

最近遇到一个问题,想要给早期自己在豆瓣上收藏的看过的电影评分,但问题是一个一个修改的话巨慢,于是写了一个小plugin脚本,只要在firebug的console里运行了就好(Chrome里应该也可以).

前提:登陆自己的豆瓣账户,进入自己的电影列表(需要是列表模式)。

movie_list_before

代码:(下面的code默认用到了 jQuery, 豆瓣支持此库)

(function () {
    $("body").after("<iframe id='changeRating'></iframe>");
    $(".title").each(function(ind, val) {
        var movie = $(val).children("a").attr("href");
        var suffix = "?ck=D4_K&rating=";
        for (var i = 1; i <= 5; i++) {
            $(val).after("<a class='changeRatingBtn' href='" + movie + suffix + i + "'> " + i + " </a>");
        }
        $(val).after("<span style='display:inline-block;width:50px;'></span>");
    });
    var iframe = document.getElementById("changeRating");
    $(".changeRatingBtn").click(function() {
        iframe.src = $(this).attr('href');
        return false;
    });
}());

注意:请更换code中红色的ck值,这个值会变的,不过你只需要进入某部电影里,鼠标放在星级图标上看看显示的URL里的ck值就好

用firefox的话在firebug的console里运行上段代码,或者在chrome里开启developer模式运行。会在每个电影后面出现可选星级的数字,点了就好(会异步修改,所以不需要等待)。如下图所示:

movie_list_after

基本想法就是,得到改变rating需要的URL,比如说:http://movie.douban.com/subject/10450409/?rating=4&ck=D4_K. 然后就是把5星的link都生成出来。但当我点击的时候,我不想refresh页面,所以生成一个iframe, url在iframe里执行,就不会刷新页面了。

 

Leave a Reply

Your email address will not be published. Required fields are marked *