豆瓣批量已读工具

在豆瓣列表页面快速标注已读收藏


Install this script?
  1. // ==UserScript==// @name 豆瓣批量已读工具// @namespace https://douban.com/// @version 0.1// @description 在豆瓣列表页面快速标注已读收藏// @author 不能放过孩子// @license MIT// @match *.douban.com/typerank*// @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==// @grant none// ==/UserScript==(function() {'use strict';var style = document.createElement("style");style.type = "text/css";style.appendChild(document.createTextNode(".collection_add{position: absolute;right: 0;bottom: 0;}"));style.appendChild(document.createTextNode(".collection_remove{position: absolute;right: 0;bottom: 0;}"));var head = document.getElementsByTagName("head")[0];head.appendChild(style);function collection_add(_film_id){return function(){console.log("_film_id:"+_film_id);//delete(this.parentNode.parentNode.id);var action_url = 'https://movie.douban.com/j/subject/'+_film_id+'/interest';var post_data = new FormData();post_data.append('ck','BjvI');post_data.append('interest','collect');post_data.append('foldcollect','F') ;post_data.append('tags','');post_data.append('comment','');post_data.append('private',false) ;var XHR = new XMLHttpRequest();var FD = new FormData();// 把我们的数据添加到这个FormData对象中//for(name in data) {// FD.append(name, data[name]);// }// 定义数据成功发送并返回后执行的操作XHR.addEventListener('load', function(event) {console.log('Yeah! 已发送数据并加载响应。');console.log(event);var btn_id = 'collection_'+_film_id;var btn = document.getElementById(btn_id);btn.innerHTML= "取消收藏:"+_film_id;btn.onclick =collection_remove (_film_id);});// 定义发生错误时执行的操作XHR.addEventListener('error', function(event) {alert('Oops! 出错了。');});// 设置请求地址和方法XHR.open('POST',action_url);// 发送这个formData对象,HTTP请求头会自动设置XHR.send(post_data);}}function collection_remove(_film_id){return function(){console.log("_film_id:"+_film_id);//delete(this.parentNode.parentNode.id);// var action_url = 'https://movie.douban.com/j/subject/'+_film_id+'/interest';var action_url = 'https://movie.douban.com/subject/'+_film_id+'/remove';var post_data = new FormData();post_data.append('ck','BjvI');//post_data.append('interest','collect');//post_data.append('foldcollect','F') ;//post_data.append('tags','');//post_data.append('comment','');//post_data.append('private',false) ;var XHR = new XMLHttpRequest();var FD = new FormData();// 把我们的数据添加到这个FormData对象中//for(name in data) {// FD.append(name, data[name]);// }// 定义数据成功发送并返回后执行的操作XHR.addEventListener('load', function(event) {console.log('Yeah! 已发送数据并加载响应。');console.log(event);var btn_id = 'collection_'+_film_id;var btn = document.getElementById(btn_id);btn.innerHTML= "点击收藏:"+_film_id;btn.onclick =collection_add (_film_id);});// 定义发生错误时执行的操作XHR.addEventListener('error', function(event) {alert('Oops! 出错了。');});// 设置请求地址和方法XHR.open('POST',action_url);// 发送这个formData对象,HTTP请求头会自动设置XHR.send(post_data);}}setTimeout(function(){var listDomByClass = document.getElementsByClassName('pictext');var listDom = listDomByClass[0];var film_id_arr = [];var domChildNodes = listDom.childNodes;for(var i = 0; i < domChildNodes.length;i++){var _film_url = domChildNodes[i].getElementsByTagName("a")[0].href;var _film_id =_film_url.match(/[0-9]+/)[0];var btn =document.createElement("button");btn.id = 'collection_'+_film_id;if(domChildNodes[i].className.indexOf('unwatched')== -1){btn.innerHTML= "取消收藏:"+_film_id;btn.onclick =collection_remove (_film_id);btn.className = 'collection_remove';}else{btn.innerHTML= "点击收藏:"+_film_id;btn.onclick =collection_add (_film_id);btn.className = 'collection_add';}domChildNodes[i].appendChild(btn);}// Your code here...},3000);})();