winner12-copywriter-mcp
Version:
MCP tool for generating social media content for winner12 AI football prediction website
54 lines • 2.92 kB
JavaScript
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