-
Notifications
You must be signed in to change notification settings - Fork 0
Examples
drrobl0xx edited this page Jul 28, 2026
·
2 revisions
import { JokelboardClient } from '@yeetgodpro1324/jokelboard-js';
const client = new JokelboardClient({ token: process.env.JOKELBOARD_TOKEN });
const BOARD_ID = 'your-board-id';
const LIST_ID = 'your-list-id';
// Create a card
const card = await client.createCard(BOARD_ID, LIST_ID, 'New application', {
categoryId: 'P2',
labels: [{ name: 'applicant', color: '#4ea8de' }],
});
// Set a custom field (e.g. Discord ID)
await client.updateCard(BOARD_ID, card.id, {
fieldValues: { 'discord-id': '123456789012345678' },
});
// Add a comment
await client.addComment(BOARD_ID, card.id, 'Application received.');
// Get a shareable link
const link = await client.getCardLink(BOARD_ID, card.id);
console.log(link.url);const lists = await client.getLists(BOARD_ID);
const doneList = lists.find(l => l.title === 'Done');
await client.moveCard(BOARD_ID, card.id, doneList.id);import { JokelboardClient } from '@yeetgodpro1324/jokelboard-ts';
import type { BoardCard } from '@yeetgodpro1324/jokelboard-ts';
const client = new JokelboardClient({ token: process.env.JOKELBOARD_TOKEN! });
const BOARD_ID = 'your-board-id';
const LIST_ID = 'your-list-id';
const card: BoardCard = await client.createCard(BOARD_ID, LIST_ID, 'New application', {
categoryId: 'P2',
labels: [{ name: 'applicant', color: '#4ea8de' }],
});
await client.updateCard(BOARD_ID, card.id, {
fieldValues: { 'discord-id': '123456789012345678' },
});
await client.addComment(BOARD_ID, card.id, 'Application received.');
const link = await client.getCardLink(BOARD_ID, card.id);
console.log(link.url);import { JokelboardClient, RateLimitError, RevisionConflictError, JokelboardError } from '@yeetgodpro1324/jokelboard-ts';
const client = new JokelboardClient({ token: process.env.JOKELBOARD_TOKEN! });
async function safeCreate(boardId: string, listId: string, title: string) {
try {
return await client.createCard(boardId, listId, title);
} catch (err) {
if (err instanceof RateLimitError) {
console.warn(`Rate limited, retry in ${err.retryAfter}s`);
} else if (err instanceof RevisionConflictError) {
console.warn(`Conflict at revision ${err.currentRevision}`);
} else if (err instanceof JokelboardError) {
console.error(`API error ${err.status}: ${err.message}`);
}
throw err;
}
}import os
from jokelboard import JokelboardClient
BOARD_ID = "your-board-id"
LIST_ID = "your-list-id"
with JokelboardClient(token=os.environ["JOKELBOARD_TOKEN"]) as client:
card = client.create_card(
BOARD_ID,
LIST_ID,
"New application",
category_id="P2",
labels=[{"name": "applicant", "color": "#4ea8de"}],
)
client.update_card(BOARD_ID, card["id"], {
"fieldValues": {"discord-id": "123456789012345678"},
})
client.add_comment(BOARD_ID, card["id"], "Application received.")
link = client.get_card_link(BOARD_ID, card["id"])
print(link["url"])with JokelboardClient(token=os.environ["JOKELBOARD_TOKEN"]) as client:
lists = client.get_lists(BOARD_ID)
done_list = next(l for l in lists if l["title"] == "Done")
client.move_card(BOARD_ID, card["id"], done_list["id"])from jokelboard import JokelboardClient, RateLimitError, RevisionConflictError, JokelboardError
with JokelboardClient(token="jkb_...") as client:
try:
client.create_card("board-id", "list-id", "My card")
except RateLimitError as e:
print(f"Rate limited — retry in {e.retry_after}s")
except RevisionConflictError as e:
print(f"Conflict at revision {e.current_revision}")
except JokelboardError as e:
print(f"{e.code} ({e.status}): {e}")