| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- #!/usr/bin/env node
- const path = require('path');
- const { okResult } = require('../core/result-envelope');
- const { updateTrendMemory } = require('../features/douyin-trend/preference-memory');
- function parseArgs(argv) {
- const args = {};
- const setArg = (key, value) => {
- args[key] = value;
- if (key.includes('-')) {
- args[key.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase())] = value;
- }
- };
- for (let i = 0; i < argv.length; i++) {
- const token = argv[i];
- if (!token.startsWith('--')) continue;
- const eq = token.indexOf('=');
- if (eq >= 0) {
- setArg(token.slice(2, eq), token.slice(eq + 1));
- continue;
- }
- const key = token.slice(2);
- const next = argv[i + 1];
- if (next && !next.startsWith('--')) {
- setArg(key, next);
- i++;
- } else {
- setArg(key, true);
- }
- }
- return args;
- }
- async function updateDouyinPreference(input = {}) {
- const result = updateTrendMemory(input);
- return okResult({
- status: 'ok',
- assistantMessage: [
- '# 抖音偏好记忆已更新',
- '',
- '已把你这次的反馈写入偏好记忆,下一轮抖音趋势情报会自动参考。',
- '',
- `memory: ${path.relative(process.cwd(), result.memoryPath)}`
- ].join('\n'),
- summary: {
- memoryPath: result.memoryPath,
- preferredDirections: result.memory.preferredDirections,
- blockedDirections: result.memory.blockedDirections,
- focusModes: result.memory.focusModes
- },
- data: result
- });
- }
- async function main() {
- const args = parseArgs(process.argv.slice(2));
- const result = await updateDouyinPreference(args);
- console.log(JSON.stringify(result, null, 2));
- }
- if (require.main === module) {
- main().catch(error => {
- console.error(JSON.stringify({ status: 'error', message: error.message }, null, 2));
- process.exit(1);
- });
- }
- module.exports = {
- updateDouyinPreference
- };
|