SaveAsZip for Patreon

一键下载帖子内所有图片,并保存为ZIP文件。

< 脚本SaveAsZip for Patreon的反馈

评价:一般 - 脚本能用,但还有一些问题

§
发表于:2025-01-28

A simple way to make script work again | 一个简易的方法让脚本重新激活

Step 1: Find following code in line(90~93) | 先找下面代码位置(行号90左右)

async function SaveAsZip(btn, post) {
  if (btn.classList.contains('down')) return;
  else btn.classList.add('down');
  let btn_text = btn.querySelector('.btn-text');
  const status = text => (btn_text.innerText = text);
  //get post json
  let post_info = window.patreon && window.patreon.bootstrap.post; //post page
  if (!post_info) {
    let post_href = post.querySelector('a[href^="/posts/"]').href;
    let post_page = await (await fetch(post_href)).text();
    let post_data = post_page.match(/{"props".*?(?=<\/script>)/);
    if (post_data) post_info = JSON.parse(post_data).props.pageProps.bootstrapEnvelope.bootstrap.post;

Step 2: Insert code at the beginning | 在开头插入代码

window.addEventListener('keyup', (e) => { ['p', 'P'].includes(e.key) && findPostsIn(document) });

async function SaveAsZip(btn, post) {

Step 3: Edit last line | 编辑最后一行

bootstrap -> pageBootstrap

origin | 原始代码

    if (post_data) post_info = JSON.parse(post_data).props.pageProps.bootstrapEnvelope.bootstrap.post;

target | 修改后的代码

    if (post_data) post_info = JSON.parse(post_data).props.pageProps.bootstrapEnvelope.pageBootstrap.post;

Step 4: Save modified code | 保存编辑

Now, after loaded posts on patreon page, you can force create&mount the “Save button” by pressing keyboard “P”

现在patreon 载入显示帖子后,你可以通过按键“p”,强行创建挂载“保存”按钮

§
发表于:2025-02-20
编辑于:2025-02-20

will i use violentmonkey to run this ,but when i opened the artist's homepage, and press "p",nothing happened.

§
发表于:2025-02-20

you said this script can work well,could you please tell me which software can run this?

发表回复

登录以发表回复。