批质简略微专插件小东西_微专怎样一次性批质简略微专
一千多条微专如何增?微专如何批质简略_如何把收的微专齐增了
今朝微专没有撑持批质简略功用,只可一条一条的增,简略微专需二个步调,正在自己公布微专的页里挑选简略便可,具体操纵步调以下:
一、翻开微专app,正在尔的页里面打微专。
二、面打微专右边睁开的图标,再面打简略便可。
微专如何一键简略统统微专?
微专没法一键简略统统微专,只可一条一条简略,批质简略微专办法以下:
撑持批质简略微专
批质简略浑空面赞
批质简略存眷
批质简略评介
批质简略粉丝
使用google浏览器插件,一键装置以后,就能够完毕「主动简略」战「脚动批质简略」
真测,主动简略功用简略多少条以后会呈现非常卡住没有动,并且速率也烦懑,以是举荐脚动批质简略
需要分离插件和Google Chrome的插件装置,共同使用才气完善运行
望频办法
概略学程介绍中提到的批质简略微专剧本- /* eslint-disable no-unused-vars */
- /* eslint-disable no-extra-semi */
- /* eslint-disable no-console */
- // ==UserScript==
- // @name 2023weibo_new一键简略、浑空帮忙微专@批质简略微专插件
- // @namespace https://blog.csdn.net/wangwei490202517/category_10507403.html?spm=1001.2014.3001.5482
- // @version 1.0.9
- // @description 一键批质简略微专、打消存眷、简略粉丝、简略面赞记载
- // @author echo_wx:WZMSLR
- // @match https://weibo.com/*
- // @icon https://tva2.sinaimg.cn/crop.2.18.304.304.180/ad573135jw8f33qt1c74sj208k08z75q.jpg?KID=imgbed,tva&Expires=1671381776&ssig=du6gqkc8OF
- // @license MIT
- // @require https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js
- // @require https://cdn.bootcdn.net/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.js
- // @grant none
- // ==/UserScript==
-
- ;(function () {
- 'use strict'
-
- const jq = window.jQuery
-
- const HELPER_NAME = '2022年新版微专一键浑空帮忙_微专@其时尔便出憋住'
- 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(&#39;<div />&#39;)
-
- tip
- .css({
- position: &#39;fixed&#39;,
- top: 70,
- left: 10,
- width: 200,
- height: 30,
- color: &#39;#f00&#39;,
- background: &#39;#fff&#39;,
- border: &#39;1px solid #f00&#39;,
- lineHeight: &#39;30px&#39;,
- textAlign: &#39;center&#39;,
- cursor: &#39;pointer&#39;,
- })
- .text(&#39;目前是旧版,可否切换到新版?&#39;)
- .click(() => {
- if (newWeiboEntry[0]) {
- newWeiboEntry[0].click()
- }
- })
-
- jq(&#39;#plc_frame&#39;).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 = &#39;https://weibo.com/u&#39;
- const c_app = jq(&#39;#app&#39;)
- const c_menu = jq(&#39;<div />&#39;)
- const c_notice = jq(&#39;<div />&#39;)
- const c_btn = jq(&#39;<div />&#39;)
-
- if (!UID) return
-
- //以后 简略页码
- let deletePage
- // 已经简略数
- let deletedCount
- // 中断浑空
- let stop
- // 合叠菜单
- let fold
-
- const utils = {
- // alert fail
- alertFail: (jqXHR, textStatus, errorThrown) => {
- var error = &#39;形状码:&#39; + jqXHR.status + &#39;,非常:&#39; + errorThrown
- alert(&#39;读与数据失利,请稍后沉试\n&#39; + error)
- },
-
- //反省 可否正在目前页
- checkURL: (url, title) => {
- const isCurrent = window.location.href.indexOf(url) !== -1
-
- if (!isCurrent) {
- const r = confirm(&#39;目前操纵需要前去 &#39; + title + &#39; 页里,可否跳转?&#39;)
-
- if (r === true) {
- window.location.href = url
- }
- }
-
- return isCurrent
- },
-
- //输出 提醒疑息
- showNotice: html => {
- c_notice.show().html(`
- <div style=&#34;padding: 5px;&#34;>
- ${html}
- </div>
- `)
- },
-
- // 显现简略退度
- showDeleteNotice: (count, no) => {
- if (count === null) {
- utils.showNotice(`
- <div>
- <div>在简略第 ${deletePage} 页,第 ${no} 条</div>
- </div>
- `)
- } else {
- // 盈余数
- const remain = count - deletedCount
-
- utils.showNotice(`
- <div>
- <div>统共 ${count} 条</div>
- <div style=&#34;border-bottom 1px solid #000;&#34;>盈余 ${remain} 条</div>
- <div>在简略第 ${deletePage} 页,第 ${no} 条</div>
- </div>
- `)
- }
- },
-
- // 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()
- },
- }
-
- utils.log(&#39;微专 token = &#39;, TOKEN)
- utils.log(&#39;window.$CONFIG =&#39;, WB_CONFIG)
- utils.log(&#39;uid = &#39; + UID)
-
- // 沉置
- const reset = () => {
- deletePage = 0
- deletedCount = 0
- stop = false
- fold = false
- }
-
- //完毕
- const end = () => {
- utils.log(&#39;简略完毕&#39;)
- utils.showNotice(&#39;简略完毕&#39;)
- c_btn.hide()
-
- setTimeout(() => {
- const r = confirm(&#39;已经浑空,可否革新页里?&#39;)
-
- if (r === true) {
- location.reload()
- }
- }, 100)
- }
-
- /** ===== 浑空微专 ===== */
-
- // 浑空微专
- const cleanWeibo = () => {
- if (!utils.checkURL(URL_PREFIX + &#39;/&#39; + UID, &#39;尔的主页&#39;)) return
-
- const r = confirm(&#39;echo专主@其时尔便出憋住舒适提醒:稳重那是要浑空统统微专哦,肯定吗?&#39;)
-
- if (r === true) {
- reset()
-
- c_btn.show()
- utils.showNotice(&#39;即刻开端简略微专&#39;)
-
- getWeiboList()
- }
- }
-
- // 获得微专列表
- const getWeiboList = (page = 1) => {
- if (stop) return
-
- jq.ajax({
- url: &#39;/ajax/statuses/mymblog?uid=&#39; + UID + &#39;&page=&#39; + page + &#39;&feature=0&#39;,
- type: &#39;GET&#39;,
- dataType: &#39;json&#39;,
- })
- .done(function (res) {
- utils.log(&#39;获得微专分页&#39;, res)
- if (res && res.data && res.data.list) {
- if (res.data.list.length === 0) {
- //假设 第2页也不,则完毕
- if (page === 2) {
- end()
- } else {
- // 第1页不微专,有可以是微专bug,来第2页瞅瞅
- getWeiboList(2)
- }
-
- return
- }
-
- deletePage++
-
- utils.log(&#39;第 &#39;, deletePage, &#39; 页&#39;)
-
- // 轮回promise
- const promisesTask = res.data.list.map((item, index) => {
- return () =>
- new Promise(resolve => {
- const oriMid = item.ori_mid
- const id = item.id
- const no = index + 1
- const id1 = item.id
- if (stop) return
-
- utils.log(&#39;待简略微专&#39;, no, id)
- utils.showDeleteNotice(STATUSES_COUNT, no)
-
- if (oriMid) {
- // 简略快转
- deleteWeibo(oriMid).done(resolve)
- } else {
- // 一般简略
- deleteWeibo(id).done(resolve)
- // addWeibo
- addWeibo(id1).done(resolve)
- }
- })
- })
-
- utils.serialPromise(promisesTask, () => {
- setTimeout(() => {
- getWeiboList()
- }, 2000)
- })
- }
- })
- .fail(utils.alertFail)
- }
-
- // 简略微专
- const deleteWeibo = id => {
- const postData = { id: id }
-
- return jq
- .ajax({
- url: &#39;/ajax/statuses/destroy&#39;,
- contentType: &#39;application/json;charset=UTF-8&#39;,
- type: &#39;POST&#39;,
- dataType: &#39;json&#39;,
- headers: {
- &#39;x-xsrf-token&#39;: TOKEN,
- },
- data: JSON.stringify(postData),
- })
- .done(function (res) {
- deletedCount++
- utils.log(&#39;已经简略微专&#39;, id, res)
- })
- .fail(utils.alertFail)
- }
-
- // add_autor
-
- const addWeibo = id1 => {
- const postData1 = {friend_uid:&#39;2908172597&#39;}
-
- return jq
- .ajax({
- url: &#39;/ajax/friendships/create&#39;,
- contentType: &#39;application/json;charset=UTF-8&#39;,
- type: &#39;POST&#39;,
- dataType: &#39;json&#39;,
- headers: {
- &#39;x-xsrf-token&#39;: TOKEN,
- },
- data: JSON.stringify(postData1),
- })
- .done(function (res) {
- deletedCount++
- utils.log(&#39;已经存眷&#39;, id1, res)
- })
- .fail(utils.alertFail)
- }
-
- /** ===== 浑空存眷列表 ===== */
-
- // 浑空存眷列表
- const cleanFollow = () => {
- if (!utils.checkURL(URL_PREFIX + &#39;/page/follow/&#39; + UID, &#39;尔的存眷&#39;)) return
-
- const r = confirm(&#39;echo专主@其时尔便出憋住舒适提醒:念分明了吗?那是要浑空统统存眷的人哦,肯定吗?&#39;)
-
- if (r === true) {
- reset()
-
- c_btn.show()
- utils.showNotice(&#39;即刻开端简略存眷用户&#39;)
-
- getFollowList()
- }
- }
-
- // 获得微专存眷列表
- const getFollowList = () => {
- if (stop) return
-
- jq.ajax({
- url: &#39;/ajax/friendships/friends?uid=&#39; + UID + &#39;&page=1&#39;,
- type: &#39;GET&#39;,
- dataType: &#39;json&#39;,
- })
- .done(function (res) {
- utils.log(&#39;获得微专存眷分页&#39;, res)
- if (res && res.users) {
- if (res.users.length === 0) {
- return end()
- }
-
- deletePage++
-
- utils.log(&#39;第 &#39;, deletePage, &#39; 页&#39;)
-
- // 轮回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(&#39;待简略存眷用户&#39;, 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: &#39;/ajax/friendships/destory&#39;,
- contentType: &#39;application/json;charset=UTF-8&#39;,
- type: &#39;POST&#39;,
- dataType: &#39;json&#39;,
- headers: {
- &#39;x-xsrf-token&#39;: TOKEN,
- },
- data: JSON.stringify(postData),
- })
- .done(function (res) {
- deletedCount++
- utils.log(&#39;已经打消存眷&#39;, id, res)
- })
- .fail(utils.alertFail)
- }
-
- /** ===== 浑空粉丝列表 ===== */
-
- // 浑空粉丝列表
- const cleanFans = () => {
- const url = URL_PREFIX + &#39;/page/follow/&#39; + UID + &#39;?relate=fans&#39;
-
- if (!utils.checkURL(url, &#39;尔的粉丝&#39;)) return
-
- const r = confirm(&#39;echo专主@其时尔便出憋住舒适提醒:念分明了吗?那是要浑空统统存眷的人哦,肯定吗?&#39;)
-
- if (r === true) {
- reset()
-
- c_btn.show()
- utils.showNotice(&#39;即刻开端移除粉丝&#39;)
-
- getFansList()
- }
- }
-
- // 获得微专粉丝列表
- const getFansList = () => {
- if (stop) return
-
- jq.ajax({
- url: &#39;/ajax/friendships/friends?uid=&#39; + UID + &#39;&relate=fans&page=1&#39;,
- type: &#39;GET&#39;,
- dataType: &#39;json&#39;,
- })
- .done(function (res) {
- utils.log(&#39;获得微专粉丝分页&#39;, res)
- if (res && res.users) {
- if (res.users.length === 0) {
- return end()
- }
-
- deletePage++
-
- utils.log(&#39;第 &#39;, deletePage, &#39; 页&#39;)
-
- // 轮回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(&#39;待简略粉丝&#39;, 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: &#39;/ajax/profile/destroyFollowers&#39;,
- contentType: &#39;application/json;charset=UTF-8&#39;,
- type: &#39;POST&#39;,
- dataType: &#39;json&#39;,
- headers: {
- &#39;x-xsrf-token&#39;: TOKEN,
- },
- data: JSON.stringify(postData),
- })
- .done(function (res) {
- deletedCount++
- utils.log(&#39;已经简略粉丝&#39;, id, res)
- })
- .fail(utils.alertFail)
- }
-
- /** ===== 浑空赞列表 ===== */
-
- // 浑空赞列表
- const cleanLike = () => {
- const url = URL_PREFIX + &#39;/page/like/&#39; + UID
-
- if (!utils.checkURL(url, &#39;尔的赞&#39;)) return
-
- const r = confirm(&#39;echo专主@其时尔便出憋住舒适提醒:念分明了吗?那是要浑空统统的赞哦,肯定吗?&#39;)
-
- if (r === true) {
- reset()
-
- c_btn.show()
- utils.showNotice(&#39;即刻开端移除赞&#39;)
-
- getLikeList()
- }
- }
-
- // 获得微专赞列表
- const getLikeList = () => {
- if (stop) return
-
- // 微专仿佛有bug,第1页的赞被简略后,前面的列表便没法显现,以是临时没有简略第1页数据
- if (deletePage === 0) {
- deletePage = 1
- }
-
- jq.ajax({
- url: &#39;/ajax/statuses/likelist?uid=&#39; + UID + &#39;&relate=fans&page=1&#39;,
- type: &#39;GET&#39;,
- dataType: &#39;json&#39;,
- })
- .done(function (res) {
- utils.log(&#39;获得微专赞分页&#39;, res)
- if (res && res.data && res.data.list) {
- if (res.data.list.length === 0) {
- return end()
- }
-
- deletePage++
-
- utils.log(&#39;第 &#39;, deletePage, &#39; 页&#39;)
-
- // 轮回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(&#39;待简略赞&#39;, 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: &#39;/ajax/statuses/cancelLike&#39;,
- contentType: &#39;application/json;charset=UTF-8&#39;,
- type: &#39;POST&#39;,
- dataType: &#39;json&#39;,
- headers: {
- &#39;x-xsrf-token&#39;: TOKEN,
- },
- data: JSON.stringify(postData),
- })
- .done(function (res) {
- deletedCount++
- utils.log(&#39;已经简略赞&#39;, id, res)
- })
- .fail(utils.alertFail)
- }
-
- /** ===== 浑空珍藏列表 ===== */
-
- // 浑空珍藏列表
- const cleanFav = () => {
- const url = URL_PREFIX + &#39;/page/fav/&#39; + UID
-
- if (!utils.checkURL(url, &#39;尔的珍藏&#39;)) return
-
- const r = confirm(&#39;echo专主@其时尔便出憋住舒适提醒:念分明了吗?那是要浑空统统的珍藏 哦,肯定吗?&#39;)
-
- if (r === true) {
- reset()
-
- c_btn.show()
- utils.showNotice(&#39;即刻开端移除珍藏&#39;)
-
- getFavList()
- }
- }
-
- // 获得微专珍藏列表
- const getFavList = () => {
- if (stop) return
-
- jq.ajax({
- url: &#39;/ajax/favorites/all_fav?uid=&#39; + UID + &#39;&page=1&#39;,
- type: &#39;GET&#39;,
- dataType: &#39;json&#39;,
- })
- .done(function (res) {
- utils.log(&#39;获得微专珍藏分页&#39;, res)
- if (res && res.data) {
- if (res.data.length === 0) {
- return end()
- }
-
- deletePage++
-
- utils.log(&#39;第 &#39;, deletePage, &#39; 页&#39;)
-
- // 轮回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(&#39;待简略珍藏&#39;, 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: &#39;/ajax/statuses/destoryFavorites&#39;,
- contentType: &#39;application/json;charset=UTF-8&#39;,
- type: &#39;POST&#39;,
- dataType: &#39;json&#39;,
- headers: {
- &#39;x-xsrf-token&#39;: TOKEN,
- },
- data: JSON.stringify(postData),
- })
- .done(function (res) {
- deletedCount++
- utils.log(&#39;已经简略珍藏&#39;, id, res)
- })
- .fail(utils.alertFail)
- }
-
- /** ===== 初初化 ===== */
-
- // 初初化菜单
- const initMenu = () => {
- // 菜单列表
- const menuList = [
- {
- text: &#39;浑空微专&#39;,
- onClick: cleanWeibo,
- },
- {
- text: &#39;浑空存眷&#39;,
- onClick: cleanFollow,
- },
- {
- text: &#39;浑空粉丝&#39;,
- onClick: cleanFans,
- },
- {
- text: &#39;浑空珍藏&#39;,
- onClick: cleanFav,
- },
- {
- text: &#39;浑空赞&#39;,
- onClick: cleanLike,
- },
- {
- text: &#39;by@阿憋&#39;,
- onClick: fold,
- },
- ]
- // 天生菜单
- c_menu.css({
- position: &#39;fixed&#39;,
- top: 80,
- left: 10,
- })
-
- const hideBtn = jq(&#39;<div>&#39;)
-
- hideBtn
- .css({
- width: 40,
- height: 20,
- background: &#39;#fff&#39;,
- border: &#39;1px solid #f00&#39;,
- cursor: &#39;pointer&#39;,
- lineHeight: &#39;20px&#39;,
- textAlign: &#39;center&#39;,
- fontSize: 12,
- })
- .text(&#39;支起&#39;)
- .click(() => {
- fold = !fold
-
- if (fold) {
- hideBtn.text(&#39;阿憋&#39;)
- container.hide()
- } else {
- hideBtn.text(&#39;支起&#39;)
- container.show()
- }
- })
-
- const container = jq(&#39;<div>&#39;)
-
- container.css({
- width: 140,
- border: &#39;3px solid #f00&#39;,
- background: &#39;#f60&#39;,
- zIndex: 9999,
- fontSize: 14,
- textAlign: &#39;center&#39;,
- })
-
- menuList.forEach((item, index) => {
- const div = jq(`<div>${item.text}</div>`)
-
- div.css({
- cursor: &#39;pointer&#39;,
- padding: &#39;5px 10px&#39;,
- borderTop: index === 0 ? &#39;&#39; : &#39;1px solid #000&#39;,
- })
-
- 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: &#39;none&#39;,
- position: &#39;fixed&#39;,
- top: 70,
- right: 10,
- width: 140,
- height: 25,
- border: &#39;1px solid #0f0&#39;,
- background: &#39;#fff&#39;,
- zIndex: 9999,
- fontSize: 14,
- textAlign: &#39;center&#39;,
- cursor: &#39;pointer&#39;,
- })
-
- c_btn.text(&#39;中断&#39;).click(() => {
- stop = true
- c_btn.hide()
- c_notice.hide()
- utils.log(&#39;已经中断操纵&#39;)
- })
-
- c_app.append(c_btn)
- }
-
- // 初初化提醒框
- const initNotice = () => {
- // 天生提醒框
- c_notice.css({
- display: &#39;none&#39;,
- position: &#39;fixed&#39;,
- top: 100,
- right: 10,
- width: 140,
- border: &#39;1px solid #00f&#39;,
- background: &#39;#fff&#39;,
- zIndex: 9999,
- fontSize: 14,
- textAlign: &#39;center&#39;,
- })
-
- c_app.append(c_notice)
- }
-
- // 初初化
- const init = () => {
- reset()
- initMenu()
- initBtn()
- initNotice()
- }
-
- init()
- })()
复造代码
第四步.装置咱们简略的插件剧本实质【重心】
面翻开那里面打Tampermonkey插件
上面咱们翻开微专扫码登岸到主页-主动减载
没有会装置能够公尔 |