const fs = require('fs'); const path = require('path'); const siteConfigs = { seoul: { siteName: '로열클래스 1:1 과외', siteDomain: 'https://aeseo.cloud', desc: '서울 초·중·고 1:1 맞춤 과외 및 방문·화상 시범수업 전문 교육 기관', items: [ { title: '서울 초·중·고 1:1 맞춤 과외 매칭', link: 'https://aeseo.cloud/', desc: '과외 비용·시세 투명 비교부터 무료 시범수업 신청까지. 검증된 전문 선생님 100% 매칭' }, { title: '대치동 중학생 수학과외 1:1 맞춤 수업', link: 'https://aeseo.cloud/%EB%8C%80%EC%B9%98%EB%8F%99-%EC%A4%91%ED%95%99%EC%83%9D-%EC%88%98%ED%95%99', desc: '대치동 인근 학교별 기출 족보 분석 및 킬러문항 완파' }, { title: '대치동 고등학생 영어과외 1:1 맞춤 수업', link: 'https://aeseo.cloud/%EB%8C%80%EC%B9%98%EB%8F%99-%EA%B3%A0%EB%93%B1%ED%95%99%EC%83%9D-%EC%98%81%EC%96%B4', desc: '내신 서술형 감점 0점화 및 수능 1등급 대비' }, { title: '목동 중학생 수학과외 1:1 맞춤 수업', link: 'https://aeseo.cloud/%EB%AA%A9%EB%8F%99-%EC%A4%91%ED%95%99%EC%83%9D-%EC%88%98%ED%95%99', desc: '목동 학군 맞춤 1:1 개념 정밀 코칭' } ] }, gyeonggi: { siteName: '로열클래스 1:1 과외', siteDomain: 'https://aeseo.shop', desc: '경기 초·중·고 1:1 맞춤 과외 및 방문·화상 시범수업 전문 교육 기관', items: [ { title: '경기 초·중·고 1:1 맞춤 과외 매칭', link: 'https://aeseo.shop/', desc: '과외 비용·시세 투명 비교부터 무료 시범수업 신청까지' }, { title: '분당동 중학생 수학과외 1:1 맞춤 수업', link: 'https://aeseo.shop/%EB%B6%84%EB%8B%B9%EB%8F%99-%EC%A4%91%ED%95%99%EC%83%9D-%EC%88%98%ED%95%99', desc: '분당 인근 학교별 내신 기출 분석' }, { title: '일산동 고등학생 영어과외 1:1 맞춤 수업', link: 'https://aeseo.shop/%EC%9D%BC%EC%82%B0%EB%8F%99-%EA%B3%A0%EB%93%B1%ED%95%99%EC%83%9D-%EC%98%81%EC%96%B4', desc: '일산 학군 내신 서술형 대비' } ] }, incheon: { siteName: '로열클래스 1:1 과외', siteDomain: 'https://aeseo.site', desc: '인천 초·중·고 1:1 맞춤 과외 및 방문·화상 시범수업 전문 교육 기관', items: [ { title: '인천 초·중·고 1:1 맞춤 과외 매칭', link: 'https://aeseo.site/', desc: '송도·청라 등 인천 전지역 과외 비용 비교 및 시범수업 신청' }, { title: '송도동 중학생 수학과외 1:1 맞춤 수업', link: 'https://aeseo.site/%EC%86%A1%EB%8F%84%EB%8F%99-%EC%A4%91%ED%95%99%EC%83%9D-%EC%88%98%ED%95%99', desc: '송도 학군 1:1 개념 정밀 클리닉' } ] }, daegu: { siteName: '과외매칭센터', siteDomain: 'https://soohyun.store', desc: '대구 초·중·고 1:1 맞춤 과외 및 방문·화상 시범수업 전문 교육 기관', items: [ { title: '대구 초·중·고 1:1 맞춤 과외 매칭', link: 'https://soohyun.store/', desc: '수성구 등 대구 전지역 과외 비용 비교 및 시범수업 신청' }, { title: '범어동 중학생 수학과외 1:1 맞춤 수업', link: 'https://soohyun.store/%EB%B2%94%EC%96%B4%EB%8F%99-%EC%A4%91%ED%95%99%EC%83%9D-%EC%88%98%ED%95%99', desc: '수성구 학군 기출 족보 완파' } ] }, busan: { siteName: '가온에듀', siteDomain: 'https://soohyun.cloud', desc: '부산 초·중·고 1:1 맞춤 과외 및 방문·화상 시범수업 전문 교육 기관', items: [ { title: '부산 초·중·고 1:1 맞춤 과외 매칭', link: 'https://soohyun.cloud/', desc: '해운대·수영·동래 등 부산 전지역 과외 비용 비교 및 시범수업 신청' }, { title: '우동 중학생 수학과외 1:1 맞춤 수업', link: 'https://soohyun.cloud/%EC%9A%B0%EB%8F%99-%EC%A4%91%ED%95%99%EC%83%9D-%EC%88%98%ED%95%99', desc: '해운대구 관내 학교 기출 분석' } ] }, gwangju: { siteName: '클래스픽', siteDomain: 'https://aeseo.store', desc: '광주 초·중·고 1:1 맞춤 과외 및 방문·화상 시범수업 전문 교육 기관', items: [ { title: '광주 초·중·고 1:1 맞춤 과외 매칭', link: 'https://aeseo.store/', desc: '봉선·수완 등 광주 전지역 과외 비용 비교 및 시범수업 신청' }, { title: '봉선동 중학생 수학과외 1:1 맞춤 수업', link: 'https://aeseo.store/%EB%B4%89%EC%84%A0%EB%8F%99-%EC%A4%91%ED%95%99%EC%83%9D-%EC%88%98%ED%95%99', desc: '봉선동 학군 내신 1등급 솔루션' } ] }, ulsan: { siteName: '쌤인증', siteDomain: 'https://soohyun.xyz', desc: '울산 초·중·고 1:1 맞춤 과외 및 방문·화상 시범수업 전문 교육 기관', items: [ { title: '울산 초·중·고 1:1 맞춤 과외 매칭', link: 'https://soohyun.xyz/', desc: '옥동·신정 등 울산 전지역 과외 비용 비교 및 시범수업 신청' }, { title: '옥동 중학생 수학과외 1:1 맞춤 수업', link: 'https://soohyun.xyz/%EC%98%A5%EB%8F%99-%EC%A4%91%ED%95%99%EC%83%9D-%EC%88%98%ED%95%99', desc: '옥동 학원가 대비 1:1 밀착 코칭' } ] }, site1: { siteName: '로열클래스 1:1 과외', siteDomain: 'https://aeseo.cloud', desc: '서울 초·중·고 1:1 맞춤 과외 및 방문·화상 시범수업 전문 교육 기관', items: [ { title: '서울 초·중·고 1:1 맞춤 과외 매칭', link: 'https://aeseo.cloud/', desc: '과외 비용·시세 투명 비교부터 무료 시범수업 신청까지' } ] } }; const pubDate = new Date().toUTCString(); for (const [p, c] of Object.entries(siteConfigs)) { const rssPath = path.join('c:/Users/kkgu8/OneDrive/Desktop/kyounggu/educo/example/web', p, 'public', 'rss.xml'); const itemsXml = c.items.map(item => ` <![CDATA[${item.title}]]> ${item.link} ${pubDate} ${item.link} `).join('\n'); const rssContent = ` <![CDATA[${c.siteName}]]> ${c.siteDomain}/ ko ${pubDate} ${pubDate} ${itemsXml} `; fs.writeFileSync(rssPath, rssContent, 'utf8'); console.log(`Generated rss.xml for ${p}`); }