/* eslint-disable no-unused-vars */ /* eslint-disable no-extra-semi */ /* eslint-disable no-console */ // ==UserScript== // @name 新浪微博(新版)一键清空助手 // @namespace https://greasyfork.org/zh-CN/users/812943 // @version 0.0.3 // @description 一键批量清空微博博文、微博粉丝、微博关注列表、微博回复,同时引导用户注销微博 // @author gafish // @match https://weibo.com/* // @icon data:image/jpeg;base64,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 // @license MIT // @require https://greasyfork.org/scripts/415581-jquery%E5%BA%93/code/jquery%E5%BA%93.js?version=866373 // @require https://greasyfork.org/scripts/26454-jquery-cookie/code/jQuery%20Cookie.js?version=169689 // @grant none // @downloadURL none // ==/UserScript== ;(function () { 'use strict' const jq = window.jQuery const HELPER_NAME = '微博一键清空助手' const TOKEN = jq.cookie('XSRF-TOKEN') const WB_CONFIG = window.$CONFIG const UID = WB_CONFIG.uid const USER = WB_CONFIG.user const showNewWeoboTip = () => { const newWeiboEntry = jq('a[action-type="changeversion"]') if (!newWeiboEntry[0]) { return setTimeout(showNewWeoboTip, 500) } const tip = jq('
') tip .css({ position: 'fixed', top: 70, left: 10, width: 200, height: 30, color: '#f00', background: '#fff', border: '1px solid #f00', lineHeight: '30px', textAlign: 'center', cursor: 'pointer', }) .text('当前是旧版,是否切换到新版?') .click(() => { if (newWeiboEntry[0]) { newWeiboEntry[0].click() } }) jq('#plc_frame').append(tip) } if (!USER) { return showNewWeoboTip() } const STATUSES_COUNT = USER.statuses_count const FRIENDS_COUNT = USER.friends_count const FOLLOWERS_COUNT = USER.followers_count const URL_PREFIX = 'https://weibo.com/u' const c_app = jq('#app') const c_menu = jq('
') const c_notice = jq('
') const c_btn = jq('
') if (!UID) return // 当前删除页码 let deletePage // 已删除数 let deletedCount // 停止清空 let stop // 折叠菜单 let fold const utils = { // 获取随机字符串 getRandomString: (stringLength = 10) => { var myStrings = [ 'hello', 'world', 'going', 'home', 'with', 'and', 'eating', 'food', 'drink', 'cola', 'orange', 'melon', 'dragon', 'chicken', 'walking', 'road', 'city', ] var result = '' for (var i = 0; i < stringLength; i++) { var index = Math.floor(Math.random() * 100) % myStrings.length result += myStrings[index] + ' ' } return result }, // alert fail alertFail: (jqXHR, textStatus, errorThrown) => { var error = '状态码:' + jqXHR.status + ',异常:' + errorThrown alert('读取数据失败,请稍后重试\n' + error) }, // 检查是否在当前页 checkURL: (url, title) => { const isCurrent = window.location.href.indexOf(url) !== -1 if (!isCurrent) { const r = confirm('当前操作需要前往 ' + title + ' 页面,是否跳转?') if (r === true) { window.location.href = url } } return isCurrent }, // 输出提示信息 showNotice: html => { c_notice.show().html(`
${html}
`) }, // 显示删除进度 showDeleteNotice: (count, no) => { if (count === null) { utils.showNotice(`
正在删除第 ${deletePage} 页,第 ${no} 条
`) } else { // 剩余数 const remain = count - deletedCount utils.showNotice(`
总共 ${count} 条
剩余 ${remain} 条
正在删除第 ${deletePage} 页,第 ${no} 条
`) } }, // log log: (...args) => { console.log(`${HELPER_NAME}:`, ...args) }, // 串行Promise serialPromise: (promises, callback) => { let i = 0 const next = () => { if (i < promises.length) { promises[i++]().then(next) } else { callback() } } next() }, // 发布测试微博 publishTestStatus: max => { const r = confirm('这是测试功能,是否继续?') if (!r) return let i = 1 const fn = () => { utils.log('发布第', i, '条微博') publishWeibo(() => { if (i >= max) { const r = confirm('测试数据发布完成,是否刷新页面') if (r) location.reload() return } setTimeout(fn, i % 6 === 0 ? 20000 : 8000) i++ }) } fn() }, } utils.log('微博 token = ', TOKEN) utils.log('window.$CONFIG =', WB_CONFIG) utils.log('uid = ' + UID) // 重置 const reset = () => { deletePage = 0 deletedCount = 0 stop = false fold = false } // 结束 const end = () => { utils.log('删除完成') utils.showNotice('删除完成') c_btn.hide() setTimeout(() => { const r = confirm('已清空,是否刷新页面?') if (r === true) { location.reload() } }, 100) } // 发布微博 const publishWeibo = cb => { const data = { content: utils.getRandomString(Math.floor(Math.random() * 20 + 5)), pic_id: '', visible: 0, share_id: '', media: JSON.stringify({}), vote: JSON.stringify({}), } jq.ajax({ type: 'POST', url: '/ajax/statuses/update', contentType: 'application/x-www-form-urlencoded;charset=UTF-8', headers: { 'x-xsrf-token': TOKEN, }, dataType: 'json', data: data, }) .done(function (res) { utils.log('发布微博', res) cb && cb() }) .fail(utils.alertFail) } /** ===== 清空微博 ===== */ // 清空微博 const cleanWeibo = () => { if (!utils.checkURL(URL_PREFIX + '/' + UID, '我的主页')) return const r = confirm('想清楚了吗?这是要清空所有微博哦,确定吗?') if (r === true) { reset() c_btn.show() utils.showNotice('马上开始删除微博') getWeiboList() } } // 获取微博列表 const getWeiboList = () => { if (stop) return jq.ajax({ url: '/ajax/statuses/mymblog?uid=' + UID + '&page=1&feature=0', type: 'GET', dataType: 'json', }) .done(function (res) { utils.log('获取微博分页', res) if (res && res.data && res.data.list) { if (res.data.list.length === 0) { return end() } deletePage++ utils.log('第 ', deletePage, ' 页') // 循环promise const promisesTask = res.data.list.map((item, index) => { return () => new Promise(resolve => { setTimeout(() => { const oriMid = item.ori_mid const id = item.id const no = index + 1 if (stop) return utils.log('待删除微博', no, id) utils.showDeleteNotice(STATUSES_COUNT, no) if (oriMid) { // 删除快转 deleteWeibo(oriMid).done(resolve) } else { // 正常删除 deleteWeibo(id).done(resolve) } }, Math.random() * 500 + 100) }) }) utils.serialPromise(promisesTask, () => { setTimeout(() => { getWeiboList() }, 1000) }) } }) .fail(utils.alertFail) } // 删除微博 const deleteWeibo = id => { const postData = { id: id } return jq .ajax({ url: '/ajax/statuses/destroy', contentType: 'application/json;charset=UTF-8', type: 'POST', dataType: 'json', headers: { 'x-xsrf-token': TOKEN, }, data: JSON.stringify(postData), }) .done(function (res) { deletedCount++ utils.log('已删除微博', id, res) }) .fail(utils.alertFail) } /** ===== 清空关注列表 ===== */ // 清空关注列表 const cleanFollow = () => { if (!utils.checkURL(URL_PREFIX + '/page/follow/' + UID, '我的关注')) return const r = confirm('想清楚了吗?这是要清空所有关注的人哦,确定吗?') if (r === true) { reset() c_btn.show() utils.showNotice('马上开始删除关注用户') getFollowList() } } // 获取微博关注列表 const getFollowList = () => { if (stop) return jq.ajax({ url: '/ajax/friendships/friends?uid=' + UID + '&page=1', type: 'GET', dataType: 'json', }) .done(function (res) { utils.log('获取微博关注分页', res) if (res && res.users) { if (res.users.length === 0) { return end() } deletePage++ utils.log('第 ', deletePage, ' 页') // 循环promise const promisesTask = res.users.map((item, index) => { return () => new Promise(resolve => { setTimeout(() => { const id = item.id const no = index + 1 if (stop) return utils.log('待删除关注用户', no, id) utils.showDeleteNotice(FRIENDS_COUNT, no) deleteFollow(id).done(resolve) }, Math.random() * 500 + 500) }) }) utils.serialPromise(promisesTask, () => { setTimeout(() => { getFollowList() }, 1000) }) } }) .fail(utils.alertFail) } // 取消关注 const deleteFollow = id => { const postData = { uid: id } return jq .ajax({ // 注:微博接口单词拼写错误,应该是 destroy url: '/ajax/friendships/destory', contentType: 'application/json;charset=UTF-8', type: 'POST', dataType: 'json', headers: { 'x-xsrf-token': TOKEN, }, data: JSON.stringify(postData), }) .done(function (res) { deletedCount++ utils.log('已取消关注', id, res) }) .fail(utils.alertFail) } /** ===== 清空粉丝列表 ===== */ // 清空粉丝列表 const cleanFans = () => { const url = URL_PREFIX + '/page/follow/' + UID + '?relate=fans' if (!utils.checkURL(url, '我的粉丝')) return const r = confirm('想清楚了吗?这是要清空所有关注的人哦,确定吗?') if (r === true) { reset() c_btn.show() utils.showNotice('马上开始移除粉丝') getFansList() } } // 获取微博粉丝列表 const getFansList = () => { if (stop) return jq.ajax({ url: '/ajax/friendships/friends?uid=' + UID + '&relate=fans&page=1', type: 'GET', dataType: 'json', }) .done(function (res) { utils.log('获取微博粉丝分页', res) if (res && res.users) { if (res.users.length === 0) { return end() } deletePage++ utils.log('第 ', deletePage, ' 页') // 循环promise const promisesTask = res.users.map((item, index) => { return () => new Promise(resolve => { setTimeout(() => { const id = item.id const no = index + 1 if (stop) return utils.log('待删除粉丝', no, id) utils.showDeleteNotice(FOLLOWERS_COUNT, no) deleteFans(id).done(resolve) }, Math.random() * 500 + 500) }) }) utils.serialPromise(promisesTask, () => { setTimeout(() => { getFansList() }, 1000) }) } }) .fail(utils.alertFail) } // 移除粉丝 const deleteFans = id => { const postData = { uid: id } return jq .ajax({ url: '/ajax/profile/destroyFollowers', contentType: 'application/json;charset=UTF-8', type: 'POST', dataType: 'json', headers: { 'x-xsrf-token': TOKEN, }, data: JSON.stringify(postData), }) .done(function (res) { deletedCount++ utils.log('已删除粉丝', id, res) }) .fail(utils.alertFail) } /** ===== 清空赞列表 ===== */ // 清空赞列表 const cleanLike = () => { const url = URL_PREFIX + '/page/like/' + UID if (!utils.checkURL(url, '我的赞')) return const r = confirm('想清楚了吗?这是要清空所有的赞哦,确定吗?') if (r === true) { reset() c_btn.show() utils.showNotice('马上开始移除赞') getLikeList() } } // 获取微博赞列表 const getLikeList = () => { if (stop) return // 微博好像有bug,第1页的赞被删除后,后面的列表就无法显示,所以暂时不删除第1页数据 if (deletePage === 0) { deletePage = 1 } jq.ajax({ url: '/ajax/statuses/likelist?uid=' + UID + '&relate=fans&page=2', type: 'GET', dataType: 'json', }) .done(function (res) { utils.log('获取微博赞分页', res) if (res && res.data && res.data.list) { if (res.data.list.length === 0) { return end() } deletePage++ utils.log('第 ', deletePage, ' 页') // 循环promise const promisesTask = res.data.list.map((item, index) => { return () => new Promise(resolve => { setTimeout(() => { const id = item.id const no = index + 1 if (stop) return utils.log('待删除赞', no, id) utils.showDeleteNotice(null, no) deleteLike(id).done(resolve) }, Math.random() * 500 + 500) }) }) utils.serialPromise(promisesTask, () => { setTimeout(() => { getLikeList() }, 1000) }) } }) .fail(utils.alertFail) } // 移除赞 const deleteLike = id => { const postData = { id: String(id) } return jq .ajax({ url: '/ajax/statuses/cancelLike', contentType: 'application/json;charset=UTF-8', type: 'POST', dataType: 'json', headers: { 'x-xsrf-token': TOKEN, }, data: JSON.stringify(postData), }) .done(function (res) { deletedCount++ utils.log('已删除赞', id, res) }) .fail(utils.alertFail) } /** ===== 清空收藏列表 ===== */ // 清空收藏列表 const cleanFav = () => { const url = URL_PREFIX + '/page/fav/' + UID if (!utils.checkURL(url, '我的收藏')) return const r = confirm('想清楚了吗?这是要清空所有的 收藏 哦,确定吗?') if (r === true) { reset() c_btn.show() utils.showNotice('马上开始移除收藏') getFavList() } } // 获取微博收藏列表 const getFavList = () => { if (stop) return jq.ajax({ url: '/ajax/favorites/all_fav?uid=' + UID + '&page=1', type: 'GET', dataType: 'json', }) .done(function (res) { utils.log('获取微博收藏分页', res) if (res && res.data) { if (res.data.length === 0) { return end() } deletePage++ utils.log('第 ', deletePage, ' 页') // 循环promise const promisesTask = res.data.map((item, index) => { return () => new Promise(resolve => { setTimeout(() => { const id = item.id const no = index + 1 if (stop) return utils.log('待删除收藏', no, id) utils.showDeleteNotice(null, no) deleteFav(id).done(resolve) }, Math.random() * 500 + 500) }) }) utils.serialPromise(promisesTask, () => { setTimeout(() => { getFavList() }, 1000) }) } }) .fail(utils.alertFail) } // 移除收藏 const deleteFav = id => { const postData = { id: String(id) } return jq .ajax({ url: '/ajax/statuses/destoryFavorites', contentType: 'application/json;charset=UTF-8', type: 'POST', dataType: 'json', headers: { 'x-xsrf-token': TOKEN, }, data: JSON.stringify(postData), }) .done(function (res) { deletedCount++ utils.log('已删除收藏', id, res) }) .fail(utils.alertFail) } /** ===== 初始化 ===== */ // 初始化菜单 const initMenu = () => { // 菜单列表 const menuList = [ { text: '清空微博', onClick: cleanWeibo, }, { text: '清空关注', onClick: cleanFollow, }, { text: '清空粉丝', onClick: cleanFans, }, { text: '清空收藏', onClick: cleanFav, }, { text: '清空赞', onClick: cleanLike, }, // { // text: '随机发布一条微博', // onClick: () => { // publishWeibo(() => { // const r = confirm('发布成功,是否刷新页面') // if (r) location.reload() // }) // }, // }, ] // 生成菜单 c_menu.css({ position: 'fixed', top: 80, left: 10, }) const hideBtn = jq('
') hideBtn .css({ width: 40, height: 20, background: '#fff', border: '1px solid #f00', cursor: 'pointer', lineHeight: '20px', textAlign: 'center', fontSize: 12, }) .text('收起') .click(() => { fold = !fold if (fold) { hideBtn.text('展开') container.hide() } else { hideBtn.text('收起') container.show() } }) const container = jq('
') container.css({ width: 140, border: '3px solid #f00', background: '#fff', zIndex: 9999, fontSize: 14, textAlign: 'center', }) menuList.forEach((item, index) => { const div = jq(`
${item.text}
`) div.css({ cursor: 'pointer', padding: '5px 10px', borderTop: index === 0 ? '' : '1px solid #f00', }) div.click(() => { if (item.onClick) item.onClick() }) container.append(div) }) c_menu.append(hideBtn) c_menu.append(container) c_app.append(c_menu) } // 初始化按钮 const initBtn = () => { // 生成按钮 c_btn.css({ display: 'none', position: 'fixed', top: 70, right: 10, width: 140, height: 25, border: '1px solid #0f0', background: '#fff', zIndex: 9999, fontSize: 14, textAlign: 'center', cursor: 'pointer', }) c_btn.text('停止').click(() => { stop = true c_btn.hide() c_notice.hide() utils.log('已停止操作') }) c_app.append(c_btn) } // 初始化提示框 const initNotice = () => { // 生成提示框 c_notice.css({ display: 'none', position: 'fixed', top: 100, right: 10, width: 140, border: '1px solid #00f', background: '#fff', zIndex: 9999, fontSize: 14, textAlign: 'center', }) c_app.append(c_notice) } // 初始化 const init = () => { reset() initMenu() initBtn() initNotice() // todo: mock data // utils.publishTestStatus(40) } init() })()