23 lines
826 B
TypeScript
23 lines
826 B
TypeScript
import type { NewsItem } from '../../types'
|
|
import type { BaiduFuturesNewsItem } from './types'
|
|
|
|
/** 将 Unix 秒时间戳格式化为「MM-DD HH:mm」 */
|
|
function formatPublishTime(raw: string): string {
|
|
const sec = Number(raw)
|
|
if (!Number.isFinite(sec) || sec <= 0) return ''
|
|
const d = new Date(sec * 1000)
|
|
if (Number.isNaN(d.getTime())) return ''
|
|
const pad = (n: number) => String(n).padStart(2, '0')
|
|
return `${pad(d.getMonth() + 1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}`
|
|
}
|
|
|
|
export function mapBaiduNewsToItems(list: BaiduFuturesNewsItem[]): NewsItem[] {
|
|
return list.map((item) => ({
|
|
id: item.news_id,
|
|
source: item.source || item.provider || '未知来源',
|
|
time: formatPublishTime(item.publish_time),
|
|
title: item.title,
|
|
url: item.loc || item.third_url,
|
|
}))
|
|
}
|