Greasy Fork 支持简体中文。

KijijiAutos Ad Date

shows the date the ad was originally posted

// ==UserScript==
// @name         KijijiAutos Ad Date
// @namespace    http://localhost
// @version      1.4
// @description  shows the date the ad was originally posted
// @author       Kronzky
// @include      https://www.kijiji.*/*
// @include      https://www.kijijiautos.*/*
// @include      https://www.autotrader.*/*
// @run-at       document-end
// @grant        none
// ==/UserScript==

function getDate(path) {
    // dealer:  https://tdrpmimages.azureedge.net/photos/import/202003/0303/2531/0245a01b-dd96-4600-bc21-59480a7c5d9b.jpg-1024x786
    // private: https://tdrpmimages.azureedge.net/private/2020/1/22/a80010d7-72c1-4eb2-a5a4-d84ed8c7e71a.jpg-1024x786
    var metaParts = path.split('/');
    var ml=metaParts.length;
    var mY,mM,mD;
    for (var i=0; i<ml; i++) {
        var m=metaParts[i];
        if ((m.substr(0,3)=="201") || (m.substr(0,3)=="202")) {
            if (m.length==6) {
                mY = m.substr(0,4);
                mM = m.substr(4,2);
                mD = metaParts[i+1].substr(0,2);
            } else {
                mY = m;
                mM = metaParts[i+1];
                mD = metaParts[i+2];
            };
            break;
        };
    };
    return (new Date(mY,mM-1,mD).getTime()/1000);
}

(function() {
    'use strict';

    var unsafeWindow = window.wrappedJSObject;
    var pos = "top:120px; left:30px;"
    var posted = Date.now();
    var where = document.body;
    var href = window.location.host;

    if ((href.indexOf("autotrader.com"))!=-1) {
        pos = "top:120px; right:245px;"
        var pics = unsafeWindow.__BONNET_DATA__.props.vdp.images.sources;
        for (var p=0; p<pics.length-1; p++) {
            var imgdate = getDate(pics[p].src);
            posted = Math.min(imgdate,posted);
        };
    } else if ((href.indexOf("autotrader.ca"))!=-1) {
        pics = unsafeWindow.ngVdpModel.gallery.items;
        if (pics.length<2) {
            var meta = document.querySelector("meta[property='og:image']").getAttribute('content');
            posted = getDate(meta);
        } else {
            for (p=0; p<pics.length-1; p++) {
                imgdate = getDate(pics[p].galleryUrl);
                posted = Math.min(imgdate,posted);
            };
        };
    } else if ((href.indexOf("kijijiautos"))!=-1) {
        posted = unsafeWindow.INITIAL_STATE.pages.vip.listing.created;
    } else {
        posted = unsafeWindow.dataLayer[0].a.cdt;
        pos = "right:60px; top:-180px;"
        where = document.getElementById('vip-body');
    };

    var dateInfo = 'no posted date found';
    if (!isNaN(posted.valueOf())) {
        var created = new Date(posted*1000);
        var dateStr = (created.toLocaleString('default', { month: 'short' })) + " " + created.getDate();
        var diffDays = Math.floor((Date.now()-created)/(1000*60*60*24));
        var diffStr = "today";
        if (diffDays>1) {
            diffStr = diffDays + ' days ago';
        } else if (diffDays==1) {
            diffStr = 'yesterday';
        };
        dateInfo = 'posted: ' + dateStr + ' (' + diffStr + ')';
    };
    var newHTML = document.createElement ('div');
    newHTML.innerHTML = '<h3 style="background-color:#fff; padding:4px; border:1px solid #333; position:absolute; ' + pos + ' color:#333">' + dateInfo + '</h3>';
    where.appendChild(newHTML);
})();