mirror of
https://github.com/koodiklinikka/koodiklinikka.fi.git
synced 2026-03-05 10:00:06 +00:00
WIP
This commit is contained in:
35
components/feed-transformers/twitter.ts
Normal file
35
components/feed-transformers/twitter.ts
Normal file
@@ -0,0 +1,35 @@
|
||||
import { KKEvent } from "../../data/events";
|
||||
import twitterText from "twitter-text";
|
||||
|
||||
export interface TwitterItem {
|
||||
retweeted?: boolean;
|
||||
retweeted_status?: TwitterItem;
|
||||
user: {
|
||||
screen_name: string;
|
||||
profile_image_url_https: string;
|
||||
};
|
||||
text: string;
|
||||
created_at: number | string; // TODO: type?
|
||||
}
|
||||
|
||||
function convertTwitterItem(item: TwitterItem): KKEvent {
|
||||
if (item.retweeted && item.retweeted_status) {
|
||||
item = item.retweeted_status;
|
||||
}
|
||||
|
||||
const url = `https://twitter.com/${item.user.screen_name}`;
|
||||
|
||||
return {
|
||||
user: `@${item.user.screen_name}`,
|
||||
userLink: url,
|
||||
image: item.user.profile_image_url_https,
|
||||
imageLink: url,
|
||||
body: twitterText.autoLink(item.text),
|
||||
timestamp: new Date(item.created_at),
|
||||
type: "twitter",
|
||||
};
|
||||
}
|
||||
|
||||
export function convertTwitterItems(items: readonly TwitterItem[]) {
|
||||
return items.map(convertTwitterItem);
|
||||
}
|
||||
Reference in New Issue
Block a user