Все источники
Lobsters
Разработка v1.0.0Hottest stories from Lobsters
@codytseng #news #tech #programming
Настройки
| Название | Ключ | Тип | Обязательно | По умолчанию | Описание |
|---|---|---|---|---|---|
| Tag | TAG | list | Нет | — | Filter by tag (e.g. programming, security, linux). Leave empty for all tags. |
Исходный код
version: 1.0.0
name: Lobsters
description: Hottest stories from Lobsters
author: codytseng
author_url: https://github.com/codytseng
category: Developer
tags:
- news
- tech
- programming
config:
- key: TAG
name: Tag
type: list
required: false
description: Filter by tag (e.g. programming, security, linux). Leave empty for all tags. version: 1.0.0
name: Lobsters
description: Hottest stories from Lobsters
author: codytseng
author_url: https://github.com/codytseng
category: Developer
tags:
- news
- tech
- programming
config:
- key: TAG
name: Tag
type: list
required: false
description: Filter by tag (e.g. programming, security, linux). Leave empty for all tags. module.exports = async (api) => {
const tags = api.config.get("TAG");
async function fetchData() {
const url =
tags && tags.length > 0
? `https://lobste.rs/t/${tags.join(",")}.json`
: "https://lobste.rs/hottest.json";
const response = await api.fetch(url);
if (!response.ok || !response.json) {
throw new Error(
`Failed to fetch Lobsters stories (HTTP ${response.status})`,
);
}
api.emit(
response.json.map((story) => ({
id: story.short_id,
title: story.title,
subtitle:
story.description_plain ||
`${story.score} points · ${story.comment_count} comments · ${story.tags.join(", ")}`,
url: story.url || story.comments_url,
timestamp: story.created_at,
})),
);
}
await fetchData();
return {
refresh: fetchData,
};
}; module.exports = async (api) => {
const tags = api.config.get("TAG");
async function fetchData() {
const url =
tags && tags.length > 0
? `https://lobste.rs/t/${tags.join(",")}.json`
: "https://lobste.rs/hottest.json";
const response = await api.fetch(url);
if (!response.ok || !response.json) {
throw new Error(
`Failed to fetch Lobsters stories (HTTP ${response.status})`,
);
}
api.emit(
response.json.map((story) => ({
id: story.short_id,
title: story.title,
subtitle:
story.description_plain ||
`${story.score} points · ${story.comment_count} comments · ${story.tags.join(", ")}`,
url: story.url || story.comments_url,
timestamp: story.created_at,
})),
);
}
await fetchData();
return {
refresh: fetchData,
};
};