gpt4 book ai didi

trello - 如何从 Trello 看板中获取 1000 多个操作?

转载 作者:行者123 更新时间:2023-12-04 09:43:17 26 4
gpt4 key购买 nike

我想运行一个简单的脚本,该脚本以 JSON 格式获取来自 Trello 的所有卡片等,其数据和 URL 如下所示:https://trello.com/b/Vqrkz3KO.json .我想自动化导出电路板的过程。

但是 Trello 不允许我这样做,所以我必须从 API 中这样做,如下所示:

`/1/boards/${board.id}`, {fields: "all",actions: "all",action_fields: "all",activities_limit: 1000,cards: "all",card_fields: "all",card_attachments: true,labels: "all",lists: "all",list_fields: "all",members: "all",member_fields: "all",checklists: "all",checklist_fields: "all", organization: false

它做我想做的事,但我想从中获取卡片的板有 1000 多个事件。那么我如何获得所有事件呢?它只获取 1000 个事件/卡片。另外,我不能只获取上面的 URL,因为出于某种原因,您不能按照 this question 使用 api 获取它。 .这个问题没有回答我的问题,我想超过 1000 张卡,但是如果你这样做了,你会得到一个错误,说你不能。

最佳答案

编辑 2 : 终于搞定了,我使用了 API 和 ID 生成器 HTTPS请求并使用提供的 &before=范围。 &before=参数使用日期作为参数,所以我必须从一个请求中获取最后一个操作,从中获取日期,并将其提供给 &before 参数。然后对于每个包含 1000 个元素的数组元素,我弹出最后一个元素,因为我最终会得到重复的操作。
现在,我最终得到了如下所示的操作:[[actions],[actions],[actions],[actions]]等等,所以我用了 Merge/flatten an array of arrays的答案让一切[actions] .然后我使用括号表示法 object["key"] = value用我的 HTTPS 中的 Action 设置/替换 Action 请求,结果是一个非常大的文件,生成这个文件花了很长时间,结果大约是 99.5 MB .
这是我的整个 index.js 测试文件:

const https = require('https');
const fs = require('fs');
var boardinfo = "";
https.get({
hostname: 'trello.com',
path: `/b/Vqrkz3KO.json`,
headers: {'User-Agent': `${Math.random().toString(16).substring(2,16)}`}
}, (r) => {
var data = "";
r.on('data', (d) => {
data+=d;
})
r.on('close', () => {
boardinfo = JSON.parse(data);
});
})

var actions = [];

(function untilDeath(beforeval) {
https.get({
hostname: 'api.trello.com',
path: `/1/boards/Vqrkz3KO/actions?limit=1000${beforeval ? `&before=${beforeval}` : ``}`,
headers: {'User-Agent': `${Math.random().toString(16).substring(2,16)}`}
}, (r) => {
var cmpdta = "";
r.on('data', (d) => {
cmpdta+=d;
})
r.on('close', () => {
cmpdta = JSON.parse(cmpdta);
if(cmpdta.length < 1000) {
if(cmpdta.length) actions.push(cmpdta);
return makeFile(info, [].concat.apply([], actions), fileName);
} else
untilDeath(cmpdta[999].date);
cmpdta.pop();
actions.push(cmpdta);
});

r.on('error', () => {
throw new Error('-----HTTPS Error Occurred, Please retry :(');
});
});
})();

function makeFile(trelloBoard, actions) {
trelloBoard["actions"] = actions;
fs.createWriteStream('./full-board.json');
fs.writeFile(`./full-board.json`, JSON.stringify(trelloBoard, null, `\t`), (c) => {
if(c) console.log(c);
});
}
编辑 :令人失望的是,这也只能获取 1000 个 Action ,即使手动保存 JSON 文件,它仍然提供 1000 个 Action 。
我用 HTTPS User-Agent 轻松解决了这个问题标题。
const https = require('https');
https.get({
hostname: 'trello.com',
path: '/b/Vqrkz3KO.json',
headers: {'User-Agent': 'some-random-user-agent'}
}, (r) => {
var str = "";
r.on('data', (d) => {str+=d});
r.on('close', () => {console.log(str)})
})

关于trello - 如何从 Trello 看板中获取 1000 多个操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62237952/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com