Greasy Fork is available in English.

Save Pixiv Pictures to Eagle

Collect pictures in pixiv to eagle.

< Feedback on Save Pixiv Pictures to Eagle

Review: Good - script works

§
Posted: 2023-12-15

请问如果我想单独使用下载收藏里的所有作品的功能该使用那一段代码?

miracleXLAuthor
§
Posted: 2023-12-15

bookmarksPage函数里给按键添加的点击事件函数那部分,不过应该是没办法直接搬到其他地方用的。

let count = $(BOOKMARK_SELECT).length;
$(BOOKMARK_SELECT).each((index, elem)=>{
    let e = $(SELECT_CHECK, elem)[0];
    if(e && e.checked){
        addToDownloadList("https://www.pixiv.net" + $(SELECT_URL, elem).attr("to"), DLMultiple);
        if(--count === 0){
            downloadList();
        }
        e.checked = false;
    }
    else if(--count === 0){
        downloadList();
    }
})

先遍历一遍页面中选择框,如果被选中了就添加进下载列表,遍历完开始下载。全大写的静态变量是定义在开头的jQuery选择器。

miracleXLAuthor
§
Posted: 2023-12-15

不对看错了……是userPage函数里的那个按键

if (page === undefined){
    $(SHOW_ALL)[0].click();
}
else if(pageCount && pageCount != "1"){
    $(FIRST_PAGE)[0].click();
}
waitForPageLoaded(undefined, addAllArtToList);

page和pageCount的定义在上面,如果前两个判断现在是不是第一页,如果不是就翻回到第一页。当页面加载完成之后调用下载当前页面全部图片的函数。

function addAllArtToList(elements){
    let count = elements.length;
    console.log("从", document.URL,"获取到", count, "个作品链接");
    // if (count < 48){
    //     console.log("当前页面疑似未能加载完成,请之后手动下载……");
    // }
    elements.each((i,e)=>{
        addToDownloadList(e.parentElement.nextElementSibling.href, true);
        if(--count === 0){
            downloadList().then(() => {
                let nextpage = $(NEXT_PAGE)[0];
                if (nextpage === undefined || nextpage.hidden){
                    console.log("全部页面解析完成");
                }
                else{
                    nextpage.click();
                    waitForPageLoaded(elements[0], addAllArtToList);
                }
            });
        }
    });
}

Post reply

Sign in to post a reply.