Unofficial API for cohost.org
npm i cohost
const cohost = require("cohost");
(async function () {
// Create User and authenticate
let user = new cohost.User();
await user.login("YOUR_EMAIL", "YOUR_PASSWORD");
// Get first Project of user
let [project] = await user.getProjects();
// Create Post
let myPostID = await cohost.Post.create(project, {
postState: 1,
headline: "hello world from cohost.js",
adultContent: false,
blocks: [],
cws: [],
tags: []
});
// Edit Post
await cohost.Post.update(project, myPostID, {
postState: 1,
headline: "Hello world from cohost.js!",
adultContent: false,
blocks: [],
cws: [],
tags: ["cohost.js"]
});
// Get Posts of Project
let posts = await project.getPosts();
// Create a draft with attachments
// 1. Create a draft
const draftId = await cohost.Post.create(myProject, basePost);
// 2. Upload the attachment
const attachmentData = await myProject.uploadAttachment(
draftId,
path.resolve(__dirname, "./02-15_One_pr.png")
);
// 3. Add the attachment block to the draft and publish it
await cohost.Post.update(myProject, draftId, {
...basePost,
postState: 1,
blocks: [
...basePost.blocks,
{ type: "attachment", attachment: { ...attachmentData } }
]
});
})();
Works:
- Logging in
- Getting the posts of a project
- Creating a post
- Editing a post
Doesn't work:
- Sharing a post: possible, haven't done it
- Liking a post: possible, haven't done it
- Getting notifications: possible, haven't done it
- Getting the home feed: possible, haven't done it
- Editing profiles: possible, haven't done it
- Getting followers and following: possible, haven't done it
- Getting bookmarks and bookmarking: possible, haven't done it
- Getting a post by its ID: seems impossible? endpoint seems to be disabled
- Getting posts from a tag: haven''t checked
- ...everything else