Commit 2066486e by Lin Wang

fix: judge whether has change

parent d2d753dd
...@@ -4,18 +4,19 @@ import { readFileSync, writeFileSync, mkdirSync, rmSync } from 'fs'; ...@@ -4,18 +4,19 @@ import { readFileSync, writeFileSync, mkdirSync, rmSync } from 'fs';
import { join } from 'path'; import { join } from 'path';
import { section_selectors, sectionSelectorLanguages, ai_section_selectors, aiSectionSelectorsLanguages, diffBaselineId } from '../constant/section_selectors'; import { section_selectors, sectionSelectorLanguages, ai_section_selectors, aiSectionSelectorsLanguages, diffBaselineId } from '../constant/section_selectors';
const useAiSelectors = process.env.USE_AI_SELECTORS === 'true';
// Directory containing JSON outputs to compare // Directory containing JSON outputs to compare
const srcDir = 'src/detect_section_selector_masters/extractOutput'; const srcDir = 'src/detect_section_selector_masters/extractOutput';
// Directory to write diff results // Directory to write diff results
const outDir = 'src/detect_section_selector_masters/diffWithBaseline'; const outDir = useAiSelectors ? 'src/detect_section_selector_masters/diffAIWithBaseline' : 'src/detect_section_selector_masters/diffWithBaseline';
// Remove existing diffWithBaseline folder if it exists to start fresh // Remove existing folder if it exists to start fresh
rmSync(outDir, { recursive: true, force: true }); rmSync(outDir, { recursive: true, force: true });
// Ensure output directory exists // Ensure output directory exists
mkdirSync(outDir, { recursive: true }); mkdirSync(outDir, { recursive: true });
const useAiSelectors = process.env.USE_AI_SELECTORS === 'true';
// 根据环境变量选择使用哪个 selector 数组 // 根据环境变量选择使用哪个 selector 数组
const selectedSelectors = useAiSelectors ? ai_section_selectors : section_selectors; const selectedSelectors = useAiSelectors ? ai_section_selectors : section_selectors;
const selectedLanguages = useAiSelectors ? aiSectionSelectorsLanguages : sectionSelectorLanguages; const selectedLanguages = useAiSelectors ? aiSectionSelectorsLanguages : sectionSelectorLanguages;
...@@ -30,7 +31,7 @@ const baselineData = JSON.parse(readFileSync(baselinePath, 'utf-8')); ...@@ -30,7 +31,7 @@ const baselineData = JSON.parse(readFileSync(baselinePath, 'utf-8'));
const ignoreFields = ['category', 'pageUid', 'pageTitle', 'id', 'path']; const ignoreFields = ['category', 'pageUid', 'pageTitle', 'id', 'path'];
selectedSelectors selectedSelectors
.filter(id => Number(id) !== diffBaselineId) .filter(id => Number(id) !== Number(diffBaselineId)) // Exclude baseline ID
.forEach(otherId => { .forEach(otherId => {
const otherFile = `${otherId}_extract.json`; const otherFile = `${otherId}_extract.json`;
const otherPath = join(srcDir, otherFile); const otherPath = join(srcDir, otherFile);
......
...@@ -35,7 +35,6 @@ if (commandMode === 'detect') { ...@@ -35,7 +35,6 @@ if (commandMode === 'detect') {
outDir = 'src/detect_section_selector_masters/extractNavOutput' outDir = 'src/detect_section_selector_masters/extractNavOutput'
} }
// Remove existing diffWithBaseline folder if it exists to start fresh
rmSync(outDir, { recursive: true, force: true }) rmSync(outDir, { recursive: true, force: true })
// Ensure output directory exists // Ensure output directory exists
......
...@@ -15,7 +15,7 @@ async function uploadAllToSheets() { ...@@ -15,7 +15,7 @@ async function uploadAllToSheets() {
}); });
const sheets = google.sheets({ version: 'v4', auth }); const sheets = google.sheets({ version: 'v4', auth });
const dir = join(__dirname, 'diffWithBaseline'); const dir = join(__dirname, useAiSelectors ? 'diffAIWithBaseline' : 'diffWithBaseline');
const files = readdirSync(dir).filter(f => f.endsWith('.json')); const files = readdirSync(dir).filter(f => f.endsWith('.json'));
// Fetch existing sheet names // Fetch existing sheet names
......
...@@ -3,9 +3,10 @@ import { readdirSync } from 'fs'; ...@@ -3,9 +3,10 @@ import { readdirSync } from 'fs';
import { join } from 'path'; import { join } from 'path';
async function uploadAll() { async function uploadAll() {
const useAiSelectors = process.env.USE_AI_SELECTORS === 'true';
const token = process.env.SLACK_BOT_USER_OAUTH_TOKEN!; const token = process.env.SLACK_BOT_USER_OAUTH_TOKEN!;
const channel = process.env.DESIGN_TEAM_CHANNEL_ID!; const channel = process.env.DESIGN_TEAM_CHANNEL_ID!;
const dir = join(__dirname, 'diffWithBaseline'); const dir = join(__dirname, useAiSelectors ? 'diffAIWithBaseline' : 'diffWithBaseline');
const files = readdirSync(dir).filter(f => f.endsWith('.json')); const files = readdirSync(dir).filter(f => f.endsWith('.json'));
for (const file of files) { for (const file of files) {
......
import { sendSlackMessage } from '../clients/slack'; import { sendSlackMessage } from '../clients/slack';
import { readdirSync, readFileSync } from 'fs';
import { join } from 'path';
async function main() { async function main() {
// Scan both diff directories for JSON files, with error handling
const dirs = [
join(__dirname, 'diffWithBaseline'),
join(__dirname, 'diffAIWithBaseline')
];
let filePaths: string[] = [];
dirs.forEach(dir => {
try {
const jsFiles = readdirSync(dir).filter(f => f.endsWith('.json'));
jsFiles.forEach(f => filePaths.push(join(dir, f)));
} catch (e) {
console.warn(`Directory ${dir} not found, skipping.`);
}
});
// Determine if any diff file contains non-empty array data
const hasChanges = filePaths.some(fp => {
try {
const data = JSON.parse(readFileSync(fp, 'utf-8'));
return Array.isArray(data) && data.length > 0;
} catch {
return false;
}
});
if (!hasChanges) {
console.log('No changes detected in both diff directories, skipping Slack notification.');
process.exit(0);
}
const webhookUrl = process.env.SLACK_WEBHOOK!; const webhookUrl = process.env.SLACK_WEBHOOK!;
const nonAiUrl = `https://docs.google.com/spreadsheets/d/${process.env.GOOGLE_SHEET_ID}/edit`; const nonAiUrl = `https://docs.google.com/spreadsheets/d/${process.env.GOOGLE_SHEET_ID}/edit`;
const aiUrl = `https://docs.google.com/docs.google.com/spreadsheets/d/${process.env.GOOGLE_SHEET_AI_ID}/edit`; const aiUrl = `https://docs.google.com/docs.google.com/spreadsheets/d/${process.env.GOOGLE_SHEET_AI_ID}/edit`;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment