openvibers/openvibe.sources Commits
Sources: opencollective-accounts reads the 100 most active (200 took longer than the 20 s fetch limit) (#66)
Changes
@@@ -152,7 +152,7 @@ catalog is about 12 MB.`request_content_type` (`application/json` only) is sent as the Content-Type of the endpoint's GET, which has no body.Open Collective's public GraphQL API answers a GET only with it (its CSRF guard): `opencollective-accounts` (category--`crowdfunding`) reads the 200 most active and the 100 newest collectives, projects and funds every six hours, each a++`crowdfunding`) reads the 100 most active and the 100 newest collectives, projects and funds every six hours, each a`campaign` item with the amounts and counts as Open Collective states them, for OpenVibe.Deals' crowdfunding discovery.**Facts stated in prose (`extract`, rss/atom only).** A feed endpoint may carry@@@ -1246,7 +1246,7 @@"homepage_url": "https://opencollective.com/discover","endpoints": [{-- "url": "https://api.opencollective.com/graphql/v2?query=%7B+accounts%28type%3A+%5BCOLLECTIVE%2C+PROJECT%2C+FUND%5D%2C+limit%3A+200%2C+orderBy%3A+%7Bfield%3A+ACTIVITY%2C+direction%3A+DESC%7D%29+%7B+nodes+%7B+slug+name+type+description+currency+createdAt+imageUrl+website+tags+stats+%7B+totalAmountReceived+%7B+valueInCents+currency+%7D+yearlyBudget+%7B+valueInCents+currency+%7D+contributorsCount+%7D+%7D+%7D+%7D",++ "url": "https://api.opencollective.com/graphql/v2?query=%7B+accounts%28type%3A+%5BCOLLECTIVE%2C+PROJECT%2C+FUND%5D%2C+limit%3A+100%2C+orderBy%3A+%7Bfield%3A+ACTIVITY%2C+direction%3A+DESC%7D%29+%7B+nodes+%7B+slug+name+type+description+currency+createdAt+imageUrl+website+tags+stats+%7B+totalAmountReceived+%7B+valueInCents+currency+%7D+yearlyBudget+%7B+valueInCents+currency+%7D+contributorsCount+%7D+%7D+%7D+%7D","format": "json","request_content_type": "application/json","items_path": "data.accounts.nodes",@@@ -1297,12 +1297,12 @@}],"robots_note": "robots.txt checked 2026-10-15: https://api.opencollective.com/robots.txt answers 404, so the API host publishes no robots rules (a 404 is treated as no restrictions, never guessed as a disallow). The fetcher re-checks robots.txt on every run.",-- "terms_note": "Open Collective's public GraphQL API v2 (documented at https://graphql-docs-v2.opencollective.com) answers anonymous reads of public accounts; a GET must carry Content-Type: application/json (its CSRF guard). Two requests every six hours: the 200 most active collectives, projects and funds and the 100 newest. Each becomes a campaign item: name, description, type, currency, the total received and yearly budget in cents, the number of contributors, logo URL, website and first tag, as Open Collective states them; the profile is https://opencollective.com/<slug>. Show amounts as observations with their fetch date, link each to its Open Collective page, and imply no endorsement.",++ "terms_note": "Open Collective's public GraphQL API v2 (documented at https://graphql-docs-v2.opencollective.com) answers anonymous reads of public accounts; a GET must carry Content-Type: application/json (its CSRF guard). Two requests every six hours: the 100 most active collectives, projects and funds and the 100 newest. Each becomes a campaign item: name, description, type, currency, the total received and yearly budget in cents, the number of contributors, logo URL, website and first tag, as Open Collective states them; the profile is https://opencollective.com/<slug>. Show amounts as observations with their fetch date, link each to its Open Collective page, and imply no endorsement.","license_note": "Public account data published by Open Collective; the descriptions are the collectives' own words (short summaries only, linked back).","min_interval_ms": 60000,"poll_interval_sec": 21600,"stale_after_sec": 86400,-- "max_items": 300,++ "max_items": 200,"enabled": false,"review_required": true,"sensitivity": "financial",
@@ -152,7 +152,7 @@ catalog is about 12 MB.
@@ -152,7 +152,7 @@ catalog is about 12 MB.
`request_content_type` (`application/json` only) is sent as the Content-Type of the endpoint's GET, which has no body.
`request_content_type` (`application/json` only) is sent as the Content-Type of the endpoint's GET, which has no body.
Open Collective's public GraphQL API answers a GET only with it (its CSRF guard): `opencollective-accounts` (category
Open Collective's public GraphQL API answers a GET only with it (its CSRF guard): `opencollective-accounts` (category
-`crowdfunding`) reads the 200 most active and the 100 newest collectives, projects and funds every six hours, each a
+`crowdfunding`) reads the 100 most active and the 100 newest collectives, projects and funds every six hours, each a
`campaign` item with the amounts and counts as Open Collective states them, for OpenVibe.Deals' crowdfunding discovery.
`campaign` item with the amounts and counts as Open Collective states them, for OpenVibe.Deals' crowdfunding discovery.
**Facts stated in prose (`extract`, rss/atom only).** A feed endpoint may carry
**Facts stated in prose (`extract`, rss/atom only).** A feed endpoint may carry
@@ -1246,7 +1246,7 @@
@@ -1246,7 +1246,7 @@
"homepage_url": "https://opencollective.com/discover",
"homepage_url": "https://opencollective.com/discover",
"endpoints": [
"endpoints": [
{
{
- "url": "https://api.opencollective.com/graphql/v2?query=%7B+accounts%28type%3A+%5BCOLLECTIVE%2C+PROJECT%2C+FUND%5D%2C+limit%3A+200%2C+orderBy%3A+%7Bfield%3A+ACTIVITY%2C+direction%3A+DESC%7D%29+%7B+nodes+%7B+slug+name+type+description+currency+createdAt+imageUrl+website+tags+stats+%7B+totalAmountReceived+%7B+valueInCents+currency+%7D+yearlyBudget+%7B+valueInCents+currency+%7D+contributorsCount+%7D+%7D+%7D+%7D",
+ "url": "https://api.opencollective.com/graphql/v2?query=%7B+accounts%28type%3A+%5BCOLLECTIVE%2C+PROJECT%2C+FUND%5D%2C+limit%3A+100%2C+orderBy%3A+%7Bfield%3A+ACTIVITY%2C+direction%3A+DESC%7D%29+%7B+nodes+%7B+slug+name+type+description+currency+createdAt+imageUrl+website+tags+stats+%7B+totalAmountReceived+%7B+valueInCents+currency+%7D+yearlyBudget+%7B+valueInCents+currency+%7D+contributorsCount+%7D+%7D+%7D+%7D",
"format": "json",
"format": "json",
"request_content_type": "application/json",
"request_content_type": "application/json",
"items_path": "data.accounts.nodes",
"items_path": "data.accounts.nodes",
@@ -1297,12 +1297,12 @@
@@ -1297,12 +1297,12 @@
}
}
],
],
"robots_note": "robots.txt checked 2026-10-15: https://api.opencollective.com/robots.txt answers 404, so the API host publishes no robots rules (a 404 is treated as no restrictions, never guessed as a disallow). The fetcher re-checks robots.txt on every run.",
"robots_note": "robots.txt checked 2026-10-15: https://api.opencollective.com/robots.txt answers 404, so the API host publishes no robots rules (a 404 is treated as no restrictions, never guessed as a disallow). The fetcher re-checks robots.txt on every run.",
- "terms_note": "Open Collective's public GraphQL API v2 (documented at https://graphql-docs-v2.opencollective.com) answers anonymous reads of public accounts; a GET must carry Content-Type: application/json (its CSRF guard). Two requests every six hours: the 200 most active collectives, projects and funds and the 100 newest. Each becomes a campaign item: name, description, type, currency, the total received and yearly budget in cents, the number of contributors, logo URL, website and first tag, as Open Collective states them; the profile is https://opencollective.com/<slug>. Show amounts as observations with their fetch date, link each to its Open Collective page, and imply no endorsement.",
+ "terms_note": "Open Collective's public GraphQL API v2 (documented at https://graphql-docs-v2.opencollective.com) answers anonymous reads of public accounts; a GET must carry Content-Type: application/json (its CSRF guard). Two requests every six hours: the 100 most active collectives, projects and funds and the 100 newest. Each becomes a campaign item: name, description, type, currency, the total received and yearly budget in cents, the number of contributors, logo URL, website and first tag, as Open Collective states them; the profile is https://opencollective.com/<slug>. Show amounts as observations with their fetch date, link each to its Open Collective page, and imply no endorsement.",
"license_note": "Public account data published by Open Collective; the descriptions are the collectives' own words (short summaries only, linked back).",
"license_note": "Public account data published by Open Collective; the descriptions are the collectives' own words (short summaries only, linked back).",
"min_interval_ms": 60000,
"min_interval_ms": 60000,
"poll_interval_sec": 21600,
"poll_interval_sec": 21600,
"stale_after_sec": 86400,
"stale_after_sec": 86400,
- "max_items": 300,
+ "max_items": 200,
"enabled": false,
"enabled": false,
"review_required": true,
"review_required": true,
"sensitivity": "financial",
"sensitivity": "financial",