Greasy Fork

Greasy Fork is available in English.

SFBA report

Copie les dernières commandes des sites SFBA dans le presse papier et met en forme en bbcode

目前为 2016-09-30 提交的版本。查看 最新版本

// ==UserScript==
// @name         SFBA report
// @namespace    https://trade.aliexpress.com/
// @include      https://trade.aliexpress.com/orderList.htm*
// @include      https://www.banggood.com/index.php?com=account&t=ordersList*
// @include      https://www.amazon.fr/gp/your-account/order-history*
// @version      0.3
// @description  Copie les dernières commandes des sites SFBA dans le presse papier et met en forme en bbcode
// @grant        GM_setClipboard
// @grant        GM_registerMenuCommand
// ==/UserScript==

GM_registerMenuCommand('Copier les produits', checkCurrentSite);


function checkCurrentSite()
{
   if(window.location.href.indexOf("banggood") > -1)
   {
       getBGOrders();
   }
   else if(window.location.href.indexOf("aliexpress") > -1)
   {
       getAEOrders();
   }
   else if (window.location.href.indexOf("amazon") > -1)
   {
       getAZOrders();
   }
}


function getBGOrders()
{
    var priceList = [];
    var post = "";
    
    var priceTags = document.getElementsByTagName('td');
    for (var j = 0; j < priceTags.length; j++)
    {
        if (priceTags[j].className == "price")
        {
            priceList.push(priceTags[j].innerText); 
        }
    }
    
    
    var tags = document.getElementsByTagName('div');
    var id = 0;
    for (var i = 0; i < tags.length; i++)
    {
        if (tags[i].className == "picture_box")
        {
            var title = tags[i].children[0].children[0].children[0].title;
            var link =  tags[i].children[0].children[0].children[0].href;
            var img = tags[i].children[0].children[0].children[0].children[0].src;
            var price = priceList[id];
            
            post += formatPost(title, link, img, price);
            
            id++;
        }   
    }
    GM_setClipboard(post);
}

function getAZOrders()
{
    post = "";
    var priceList = [];
    var priceTags = document.getElementsByTagName('div');
    for (var j = 0; j < priceTags.length; j++)
    {
        if (priceTags[j].className == "a-fixed-left-grid-col a-col-right")
        {
            if (priceTags[j].children[3].children[0].innerText !== "")
            {
               priceList.push(priceTags[j].children[3].children[0].innerText);  
            }
            else if (priceTags[j].children[2].children[0].innerText !== "")
            {
                priceList.push(priceTags[j].children[2].children[0].innerText);
            }
        }
    }
    
    var tags = document.getElementsByTagName('div');
    var id = 0;
    for (var i = 0; i < tags.length; i++)
    {
        if (tags[i].className == "item-view-left-col-inner")
        {
            var img = tags[i].children[0].children[0].src;
            var link = tags[i].children[0].href;
            var title = tags[i].children[0].children[0].title;
            var price = priceList[id];
            
            post += formatPost(title, link, img, price);
            
            id++;
        }
    }
    GM_setClipboard(post);
}

function getAEOrders()
{
    var post = "";
    var tags = document.getElementsByTagName('td');
    for (var i = 0; i < tags.length; i++)
    {
        if (tags[i].hasAttribute("class"))
        {
            if (tags[i].className == "product-sets")
            {
                var img = tags[i].children[0].children[0].children[0].src;
                var link = tags[i].children[1].children[0].children[0].href;
                var title = tags[i].children[1].children[0].children[0].title;
                var price = tags[i].children[1].children[2].innerText;
                
                post += formatPost(title, link, convertToLargePicture(img), price);
            }
        }
    }
    GM_setClipboard(post);
}

function convertToLargePicture(picture)
{
    // Picture url format is https://ae01.alicdn.com/kf/blablabla.jpg_50x50.jpg
    return picture.replace("50x50", "100x100");
}

function truncate(str, n)
{
    var isTooLong = str.length > n,
        s_ = isTooLong ? str.substr(0,n-1) : str;
        s_ = isTooLong ? s_.substr(0,s_.lastIndexOf(' ')) : s_;
    return  isTooLong ? s_ + '...' : s_;
}

function formatPost(title, link, img, price)
{
    var post = "";
    
    post += "[img]http://reho.st/" + img + "[/img]\n";
    post += "[b][url=" + link + "]" + truncate(title,50) + "[/url][/b]\n";
    post += price + "\n";
    post += "Mon avis: \n\n";
    
    return post;
}