Greasy Fork is available in English.
2022/8/2 10:34:08
// ==UserScript==
// @name 阿里巴巴国际站主图/视频一键下载
// @namespace Violentmonkey Scripts
// @match https://www.alibaba.com/product-detail/*
// @match https://*.en.alibaba.com/product/*
// @grant GM_download
// @version 1.0.1
// @author Venlon
// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyBAMAAADsEZWCAAAALVBMVEVHcEz+AGX+AGX+AGX+AGX+AGX+AGX+AGX+AGX+AGX+AGX+AGX+AGX+AGX+AGXX6eLfAAAADnRSTlMAonyPVC+2ZRjiC8n0RM3W8EcAAAFYSURBVDjLY2AYwSAUlwSLAS4Z7wZcWp7i0lLngE10aVHa8keeu9MEhVUCkMXDc969zLVLiL17pUgwu/o5XLxF5t1L2wVMLxdAuGxboOJcbu/ebVnAwJV3FM0CDpt37ySAdOe7yYLGSsoId3PIvXs3FUizznsHAo/hElx27969BKm7A5Z4iXCXD5D7BEizgyXeZcElFr6DyuihmQU1vICB+R2UgWwWyHSR61cjOvTeITm75h0UvJm9W8Dv5QKODriTr7iUlyspGxuKbdujNW9X5Zw301TRA5SrgfsZgyZIuwCazEqHfQIMHOeAMg/RgugZ42MW04tgKxegxtkEPQWIl949Q43/dy3P2aDORHI6x6Wcd2/jKiCefvcaEtghRcqG2SAhi8dQszZDgzRcSUmp3PdqaFSflqChoKCxyg0M3xzElZw4BXDJbMMlwZaAS8YMlwSvwMgtFgDoBrmPv43JgwAAAABJRU5ErkJggg==
// @description 2022/8/2 10:34:08
// @license MIT
// ==/UserScript==
// window.onload = () => {
// downloadFlow()
// }
setTimeout(()=> {
downloadFlow()
},3000)
// 下载流程函数
function downloadFlow() {
const props = getData()
if (!props) {
return
}
const downoadList = getLists(props) // 获得视频和图片
console.log('downoadList',downoadList)
setDownBtn(downoadList, props) // 添加下载按钮
// await downLoadFn(downoadList, props) // 下载函数
}
// 添加下载按钮
function setDownBtn(downoadList, props) {
const btn = document.createElement("button"); //创建一个input对象(提示框按钮)
btn.textContent = "下载图片/视频";
btn.className = 'ui2-button ui2-button-primary ui2-button-large'
// btn.style.width = "60px";
// btn.style.height = "20px";
// btn.style.align = "center";
// btn.style.border = '1px solid #f60';
// btn.style.color = '#ff6444';
// btn.style.padding = '6px'
// btn.style.background = '#fff';
// btn.style.borderRadius = '50%';
btn.onclick = function (){
downLoadFn(downoadList, props)
}
const wrapper = document.getElementsByClassName('main-layout')[0]
wrapper.appendChild(btn)
}
// 获取数据方法
function getData() {
// 全部变量
const props = {}
const params = location.search.substr(1).split('&')
for (let i in params) {
props[params[i].split('=')[0]] = unescape(params[i].split('=')[1])
}
// 获取产品id
const i = location.href.indexOf('.html')
if (i) {
let k = 5
while (location.href[i - k - 1] !== '_' && k < 20) {
k++
}
props.id = location.href.substr(i - k, k)
return props
}
}
function getLists(props) {
console.log('id: ', props)
// 视频
let videoSrc = document.getElementsByTagName('video')[0]?.getAttribute('src') || ''
// if(videoSrc) GM_download(videoSrc, props.id + '.mp4')
// 图片
let [...picUlList] = document.querySelectorAll(('.main-list img')) // 获取图片列表
if(videoSrc) picUlList.splice(0, 2) // 去掉含视频的图片
return {
videoSrc,
picUlList
}
}
function downLoadFn(downoadList, props) {
const {videoSrc, picUlList} = downoadList
// console.log(videoSrc,picUlList)
if(videoSrc) GM_download(videoSrc, props.id + '.mp4') // 下载视频
console.log(picUlList);
picUlList.forEach((item, index)=>{
// 图片名规则
let srcUrl = item.src
// let srcUrl = item.src.replace(/.jpg.+$/, '.jpg_720x720q50.jpg')
GM_download(srcUrl, props.id + '-' + index + '.jpg')
// console.log(item.src)
// GM_download(item.src + '_720x720q50.jpg', props.id + '-' + index + '.jpg')
})
}