Greasy Fork

来自缓存

Greasy Fork is available in English.

阿里巴巴国际站产品辅助脚本

1. 添加【零效果产品页】复制及数据查看产品按钮 2. 添加【产品运营工作台页】产品编辑及数据查看按钮 3. 添加【产品分析页】编辑及数据查看按钮 4. 添加【产品详情页】编辑及数据查看按钮,修改图片链接为原图,添加显示产品关键词,添加视频链接与封面链接 5. 添加【图片银行页】直接下载原图按钮,

当前为 2021-08-02 提交的版本,查看 最新版本

// ==UserScript==
// @namespace  http://www.alibaba.com
// @author     Lepturus
// @version    0.0.2
// @name 阿里巴巴国际站产品辅助脚本
// @icon http://is.alicdn.com/favicon.ico//
// @description  1. 添加【零效果产品页】复制及数据查看产品按钮 2. 添加【产品运营工作台页】产品编辑及数据查看按钮 3. 添加【产品分析页】编辑及数据查看按钮 4. 添加【产品详情页】编辑及数据查看按钮,修改图片链接为原图,添加显示产品关键词,添加视频链接与封面链接 5. 添加【图片银行页】直接下载原图按钮,
// @match *://hz-productposting.alibaba.com/product/product_grow_up_manage.htm*
// @match *://hz-productposting.alibaba.com/product/products_manage.htm*
// @match *://data.alibaba.com/product/ineffective*
// @match *://photobank.alibaba.com/home/index.htm*
// @match *://data.alibaba.com/product/overview*
// @match *://www.alibaba.com/product-detail/*
// @grant GM_addStyle
// ==/UserScript==
 (function () {
     'use strict';
     // 工具函数 -- 添加元素属性
     function setAttributes(el, attrs) {
         for (var key in attrs) {
             el.setAttribute(key, attrs[key]);
         }
     }
     // 添加零效果产品页复制产品按钮
     function productNEW() {
         let products = document.querySelectorAll('tbody>tr')
         let ln = products.length;
         // 非对不起,未能查询到符合您要求的产品,建议重新设置查询条件或者已经存在复制按钮
         if (!document.querySelector('tbody>tr').textContent.match("未能查询到") && !document.querySelector('tbody>tr').textContent
             .match("复制")) {
             for (var i = 0; i < ln; i++) {
                 var product_info = products[i].querySelectorAll('.next-table-cell-wrapper'); // 表格每一行产品
                 // console.log(product_info);
                 var product_url = product_info[1].querySelector("a").href;
                 var product_container = product_info[6].querySelector(".edit-delete-off"); // <span class="edit-delete-off">...
                 var product_id = product_url.match(/_(\d+)\.htm(l)?/)[1]; // http://www.alibaba.com/product-detail//XXX_123456789.html?spm=a2... // 产品ID
                 var product_newURL =
                     "https://post.alibaba.com/product/publish.htm?spm=a2747.manage.0.0.8e9071d2H60Rr7&pubType=similarPost&itemId=" +
                     product_id + "&behavior=copyNew";
                 let product_HTML = document.createElement("span");
                 product_HTML.innerHTML =
                     `<a href="${product_newURL}" target="_blank" behavior="copyToNewProduct"><br/>复制</a>
         <a href="//hz-productposting.alibaba.com/product/manage_products.htm?#/product/all/1-10/productId=${product_id}" target="_blank">数据</a>`;
                 if (!product_container.textContent.match("数据")) { // 动态加载fix
                     product_container.appendChild(product_HTML);
                 }
             }
             console.log("零效果产品页复制按钮添加成功!!!");
         }
     }
     // 添加产品运营工作台产品编辑按钮
     function productEdit() {
         let products = document.querySelectorAll('.upgrade-products-article-item')
         let ln = products.length;
         // 非已经存在编辑按钮
         if (ln && !document.querySelector('.upgrade-products-article-item').textContent.match("编辑")) {
             for (var i = 0; i < ln; i++) {
                 var product_title = products[i].querySelector(".product-subject").title;
                 var product_container = products[i].querySelector(".product-id");
                 var product_id = product_container.textContent.match(/\d+/)[0]; // 产品ID
                 // console.log(product_title, product_id);
                 var product_href =
                     `<a href="//post.alibaba.com/product/publish.htm?spm=a2747.manage.0.0.77fb71d2zK7Jvr&itemId=${product_id}" target="_blank"><br/>编辑</a>
        <a href="//hz-productposting.alibaba.com/product/manage_products.htm?#/product/all/1-10/productId=${product_id}" target="_blank"> 数据</a>`
                 if (!product_container.textContent.match("编辑")) { // 动态加载fix
                     product_container.innerHTML += product_href;
                 }
             }
             console.log("添加产品运营工作台产品编辑按钮成功!!!");
         }
     }
     // 添加产品分析页面按钮
     function productAnalyse() {
         let products = document.querySelectorAll('tbody>tr')
         let ln = products.length;
         // 非已经存在产品分层按钮
         if (ln && !document.querySelector('tbody>tr:last-child').textContent.match("分层")) {
             for (var i = 0; i < ln; i++) {
                 var product_title = products[i].querySelector(".media-content").textContent;
                 var product_url = products[i].querySelector(".custom-td-content>a").href;
                 var product_id = product_url.match(/_(\d+)\.htm(l)?/)[1]; // 产品ID
                 // console.log(product_title, product_id);
                 var product_newURL =
                     "https://post.alibaba.com/product/publish.htm?spm=a2747.manage.0.0.8e9071d2H60Rr7&pubType=similarPost&itemId=" +
                     product_id + "&behavior=copyNew";
                 var product_href =
                     `<br><a class="action-enabled TEST" href="${product_newURL}" target="_blank" behavior="copyToNewProduct">复制</a><br>
        <a class="action-enabled TEST" href="//hz-productposting.alibaba.com/product/manage_products.htm?#/product/all/1-10/productId=${product_id}" target="_blank">分层</a>`;
                 // 非产品不可编辑状态
                 if (products[i].querySelector(".action-enabled")) {
                     var product_container = products[i].querySelector(".action-enabled").parentElement; // 插入span 编辑 ...
                     if (!product_container.textContent.match("分层")) { // fix动态加载js,指选择日期产品后排序会重复添加的
                         product_container.innerHTML += product_href;
                     }
                 }
                 // product_container.parentNode.insertBefore(document.createElement("br"), product_container.nextSibling);
                 // document.querySelector('col:last-child').style.setProperty("width", "180px", "important"); // 设置表格最后一栏宽度
             }
             console.log("添加产品分析页面按钮成功!!!");
         }
     }
     // 添加产品页按钮
     function productDetail() {
         if (!document.querySelector('.detail-title-section').textContent.match("编辑")) {
             var product_title = document.querySelector(".module-pdp-title").textContent;
             var product_id = document.URL.match(/_(\d+)\.htm(l)?/)[1]; // 产品ID
             var product_keywords = document.title.match(/- Buy (.*) Product/)[1]; // 产品关键词
             var product_keywords_html = product_keywords.split(",").map(item => (
                 `<br/><i class="next-icon next-icon-success next-icon-xs" style="margin-right:5px;"></i>${item}`
             )).join("")
             // overwriting the innerHTML is not a good idea indeed, will gone event listener so using appendChild here.
             let product_html = document.createElement("div");
             product_html.innerHTML =
                 `<a href="//post.alibaba.com/product/publish.htm?spm=a2747.manage.0.0.77fb71d2zK7Jvr&itemId=${product_id}" target="_blank"><br/>编辑</a>
        <a href="//hz-productposting.alibaba.com/product/manage_products.htm?#/product/all/1-10/productId=${product_id}" target="_blank"> 数据</a>
        <p style="color:#ff6a00">${product_keywords_html}</p>`
             document.querySelector(".module-pdp-title").parentElement.appendChild(product_html);
             console.log("添加产品分析页面按钮成功!!!");
             document.querySelectorAll(".main-image-thumb-item img").forEach(v => (v.src = v.src.replace(
                 /_50x50\.(jpg|png)/, ""))); // 修改图片轮播链接为原图
         }
         if (document.querySelector('.image-slider video') && document.querySelector(".details-user-actions")) {
             if (!document.querySelector('.details-user-actions').textContent.match("视频")) {
                 var container = document.querySelector(".details-user-actions");
                 var video_link = document.querySelector('video').src; // 产品视频链接
                 var video_poster = document.querySelector('video').poster; // 产品视频封面链接
                 var video_html =
                     `<a href="${video_link}" target="_blank">视频链接 </a><a href="${video_poster}" target="_blank">视频封面</a>`
                 container.innerHTML += video_html;
             }
         }
     }

     // 添加图片银行直接下载原图按钮
     function productPhoto() {
         let products = document.querySelectorAll('.photo-grid-item') // 获取图片容器
         let ln = products.length;
         // 非已存在下载原图链接按钮
         if (!document.querySelector('.image-info').textContent.match("下载原图")) {
             for (var i = 0; i < ln; i++) {
                 let product_src = products[i].querySelector(".photo-grid-img-wrapper img").src; // 获取图片链接
                 let product_picforamt = product_src.match(/_350x350\.(jpg|png)/)[1];
                 let product_picLink = product_src.replace(/_350x350\.(jpg|png)/, "");
                 let product_picName = products[i].querySelector(".display-name button").textContent; // 获取图片文件名
                 let product_picContainer = products[i].querySelector(".image-info");
                 let product_picHTML = document.createElement("a");
                 setAttributes(product_picHTML, {
                     "href": `${product_picLink}?attachment=${product_picName}.${product_picforamt}`,
                     "target": "_blank",
                     "rel": "noopener noreferrer"
                 });
                 product_picHTML.innerHTML = "下载原图";
                 product_picContainer.appendChild(product_picHTML);
             }
             // console.log("添加图片银行直接下载原图按钮成功!");
         }
     }

     if (/product_grow_up_manage/.test(document.URL)) {
         setInterval(productEdit, 2500);
         // 添加产品运营工作台产品编辑按钮
     } else if (/ineffective/.test(document.URL)) {
         setInterval(productNEW, 2500);
         // 添加零效果产品页复制产品按钮
     } else if (/overview/.test(document.URL)) {
         setInterval(productAnalyse, 2500);
         // 添加产品分析页面按钮
     } else if (/product-detail/.test(document.URL)) {
         setInterval(productDetail, 2500);
         // 添加产品详情页按钮
     } else if (/photobank/.test(document.URL)) {
         setInterval(productPhoto, 2500);
         // 添加图片银行直接下载原图按钮
     }
 })();