UNPKG

winner12-copywriter-mcp

Version:

MCP tool for generating social media content for winner12 AI football prediction website

54 lines 2.92 kB
import { ContentTemplateGenerator } from '../templates/content-templates.js'; export class TwitterGenerator { static async generateContent(input) { // 生成合规的推文串 const tweets = this.generateComplianceTweetThread(input); // 生成标签 const hashtags = ContentTemplateGenerator.generateFootballHashtags(input, 'twitter'); // 合规的行动号召 const callToAction = '关注我们获取更多足球数据分析 ⚽📊'; const fullContent = tweets.join('\n\n--- 推文 2 ---\n\n'); return { content: fullContent, hashtags, callToAction, meta: { platform: 'twitter', characterCount: fullContent.length, wordCount: fullContent.split(/\s+/).length } }; } // 生成合规的推文串 static generateComplianceTweetThread(input) { const { homeTeam, awayTeam, confidence, league, matchDate } = input; const emojis = ContentTemplateGenerator.getEmojis('twitter'); // 添加AI标识 const aiLabel = ContentTemplateGenerator.generateAILabel('twitter'); // 第一条推文 - 比赛信息和分析简介 const tweet1 = this.createTweet(`${aiLabel} ${homeTeam} vs ${awayTeam}\n\n📊 Winner12 AI 数据分析来了!\n📅 ${matchDate} | ${league}\n\n基于历史数据和当前状态进行深度分析\n\n⚠️ 仅供参考,请理性观赛\n\n#Winner12 #足球分析`, 280); // 第二条推文 - 数据洞察和社区讨论 const analysisLevel = confidence > 80 ? '数据趋势明显' : confidence > 60 ? '发现有趣趋势' : '比赛充满变数'; const tweet2 = this.createTweet(`📈 分析要点:\n• 历史对战趋势\n• 球队近期状态分析\n• 主客场因素考量\n• 球员状态评估\n\n🤖 AI显示:${analysisLevel}\n\n💬 你的观赛心得是什么?\n\n#数据分析 #足球讨论`, 280); return [tweet1, tweet2]; } // 保留原方法名以避免破坏性修改 static generateTweetThread(input) { return this.generateComplianceTweetThread(input); } static createTweet(content, maxLength) { if (content.length <= maxLength) return content; // 智能截断推文内容 const truncated = content.substring(0, maxLength - 3); // 尝试在完整的句子或行处截断 const lastLine = truncated.lastIndexOf('\n'); const lastSentence = Math.max(truncated.lastIndexOf('!'), truncated.lastIndexOf('。'), truncated.lastIndexOf('?')); const cutPoint = Math.max(lastLine, lastSentence); if (cutPoint > 0 && cutPoint > truncated.length * 0.7) { return truncated.substring(0, cutPoint + 1); } return truncated + '...'; } } //# sourceMappingURL=twitter-generator.js.map