diff options
Diffstat (limited to 'src/common/get-post-summary.ts')
| -rw-r--r-- | src/common/get-post-summary.ts | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/common/get-post-summary.ts b/src/common/get-post-summary.ts new file mode 100644 index 0000000000..f628a32b41 --- /dev/null +++ b/src/common/get-post-summary.ts @@ -0,0 +1,39 @@ +/** + * 投稿を表す文字列を取得します。 + * @param {*} post 投稿 + */ +const summarize = (post: any): string => { + let summary = post.text ? post.text : ''; + + // メディアが添付されているとき + if (post.media) { + summary += ` (${post.media.length}つのメディア)`; + } + + // 投票が添付されているとき + if (post.poll) { + summary += ' (投票)'; + } + + // 返信のとき + if (post.reply_to_id) { + if (post.reply_to) { + summary += ` RE: ${summarize(post.reply_to)}`; + } else { + summary += ' RE: ...'; + } + } + + // Repostのとき + if (post.repost_id) { + if (post.repost) { + summary += ` RP: ${summarize(post.repost)}`; + } else { + summary += ' RP: ...'; + } + } + + return summary.trim(); +}; + +export default summarize; |