Greasy Fork

Greasy Fork is available in English.

115一键选择相同

115文件去重助手

目前为 2024-05-05 提交的版本,查看 最新版本

// ==UserScript==
// @name         115一键选择相同
// @namespace    http://tampermonkey.net/
// @version      0.4
// @description  115文件去重助手
// @author       f5f5
// @match        https://115.com/?ct=file*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=115.com
// @grant        none
// @license      GPL
// ==/UserScript==

(function() {
  'use strict';
  setTimeout(function(){
      const el = jQuery('#js-panel_model_switch').next()
      const styleEl = document.createElement('style')
      styleEl.innerHTML = `
      .check-btn{
        border: 1px solid #f60;
        border-radius: 5px;
        padding: 0 8px;
        margin-right: 8px;
        cursor: pointer;
        color: #f60;
        line-height: 30px;
        display: inline-block;
        float: left;
      }`
      console.warn(el)
      if(el[0]) {
          document.head.appendChild(styleEl)
          var btnSize = $('<span class="check-btn check-btn-size">大小</span>')
          var btnTitle = $('<span class="check-btn check-btn-title">名字</span>')
          var btnTime = $('<span class="check-btn check-btn-title">时长</span>')
          var btnOne = $('<span class="check-btn check-btn-one">(1)</span>')
          var btnStart = $('<span class="check-btn check-btn-start">开头</span>')
          el.after(btnStart)
          el.after(btnOne)
          el.after(btnTime)
          el.after(btnTitle)
          el.after(btnSize)
          btnSize.on('click', function(){
              Array.from(jQuery('.list-contents li')).forEach(el => {
                  let thisStr = $(el).attr('file_size')
                  let thisType = $(el).attr('file_type')
                  let $prev = $(el).prev()
                  if($prev[0]) {
                      let prevStr = $prev.attr('file_size')
                      if(thisType == '0' || !thisStr) return
                      if(thisStr === prevStr) {
                          $prev.find('.checkbox').click()
                      }
                  }
              })
          })
          btnTitle.on('click', function(){
              Array.from(jQuery('.list-contents li')).forEach(el => {
                  let thisStr = $(el).attr('title')
                  let thisType = $(el).attr('file_type')
                  let $prev = $(el).prev()
                  if($prev[0]) {
                      let prevStr = $prev.attr('title')
                      if(thisType == '0' || !thisStr) return
                      if(thisStr === prevStr) {
                          $prev.find('.checkbox').click()
                      }
                  }
              })
          })
          btnTime.on('click', function(){
              Array.from(jQuery('.list-contents li')).forEach(el => {
                  let thisStr = $(el).find('.duration').attr('duration')
                  let thisType = $(el).attr('file_type')
                  let $prev = $(el).prev()
                  if($prev[0]) {
                      let prevStr = $prev.find('.duration').attr('duration')
                      if(thisType == '0' || !thisStr) return
                      if(thisStr === prevStr) {
                          $prev.find('.checkbox').click()
                      }
                  }
              })
          })
          btnOne.on('click', function(){
              Array.from(jQuery('.list-contents li')).forEach(el => {
                  let thisStr = $(el).attr('title')
                  let thisType = $(el).attr('file_type')
                  let str = ''
                  if(thisType === '0') {
                      str = thisStr.slice(thisStr.length-3, thisStr.length)
                  } else {
                      let index = thisStr.lastIndexOf('.')
                      str = thisStr.slice(index-3 ,index)
                  }
                  // if(thisType == '0' || !thisStr) return
                  if(!thisStr) return
                  if(str === '(1)') {
                      $(el).find('.checkbox').click()
                  }
              })
          })
          btnStart.on('click', function(){
            var len = window.prompt('要匹配前几位数?')
            len = Number(len)
            if(!len) return alert('输入不合法')
            Array.from(jQuery('.list-contents li')).forEach(el => {
              let thisStr = $(el).attr('title')
              thisStr = thisStr.slice(0, len)
              // thisStr = thisStr.replace(/^([a-zA-Z0-9]+-?[0-9]+)(.+)?/i, '$1')
              let $prev = $(el).prev()
              if($prev[0]) {
                  let prevStr = $prev.attr('title')
                  if(!thisStr) return
                  try {
                    if(prevStr.match(new RegExp(thisStr,'ig'))) {
                        $prev.find('.checkbox').click()
                    }
                  } catch (error) {
                    console.error(error);
                  }
              }
            })
          })
      }
      document.addEventListener('keydown', e => {
          console.log(e.keyCode)
          if(e.keyCode === 46 || e.keyCode === 8) {
              try{
                  document.querySelector('[menu="delete"]').click()
              }catch(e){console.log(e)}
          }
      })
  }, 2000)
})();