120 lines
8.4 KiB
JavaScript
120 lines
8.4 KiB
JavaScript
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/%EC%88%98%EB%82%B4%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/%EB%A7%88%EB%91%90%EB%8F%99/%EA%B3%A0%EB%93%B1%ED%95%99%EC%83%9D/%EC%98%81%EC%96%B4', desc: '일산 학군 내신 서술형 대비' }
|
|
]
|
|
},
|
|
incheon: {
|
|
siteName: '튜터온',
|
|
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 개념 정밀 클리닉' },
|
|
{ title: '청라동 고등학생 영어과외 1:1 맞춤 수업', link: 'https://aeseo.site/%EC%B2%AD%EB%9D%BC%EB%8F%99/%EA%B3%A0%EB%93%B1%ED%95%99%EC%83%9D/%EC%98%81%EC%96%B4', 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: '수성구 학군 기출 족보 완파' },
|
|
{ title: '황금동 고등학생 영어과외 1:1 맞춤 수업', link: 'https://soohyun.store/%ED%99%A9%EA%B8%88%EB%8F%99/%EA%B3%A0%EB%93%B1%ED%95%99%EC%83%9D/%EC%98%81%EC%96%B4', desc: '수성구 황금동 내신 1등급 집중 코칭' }
|
|
]
|
|
},
|
|
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: '해운대구 관내 학교 기출 분석' },
|
|
{ title: '사직동 고등학생 영어과외 1:1 맞춤 수업', link: 'https://soohyun.cloud/%EC%82%AC%EC%A7%81%EB%8F%99/%EA%B3%A0%EB%93%B1%ED%95%99%EC%83%9D/%EC%98%81%EC%96%B4', 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등급 솔루션' },
|
|
{ title: '수완동 고등학생 영어과외 1:1 맞춤 수업', link: 'https://aeseo.store/%EC%88%98%EC%99%84%EB%8F%99/%EA%B3%A0%EB%93%B1%ED%95%99%EC%83%9D/%EC%98%81%EC%96%B4', desc: '광산구 수완동 내신 서술형 완벽 대비' }
|
|
]
|
|
},
|
|
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 밀착 코칭' },
|
|
{ title: '신정동 고등학생 영어과외 1:1 맞춤 수업', link: 'https://soohyun.xyz/%EC%8B%A0%EC%A0%95%EB%8F%99/%EA%B3%A0%EB%93%B1%ED%95%99%EC%83%9D/%EC%98%81%EC%96%B4', desc: '남구 신정동 내신 서술형 집중 관리' }
|
|
]
|
|
},
|
|
site1: {
|
|
siteName: '로열클래스 1:1 과외',
|
|
siteDomain: 'https://aeseo.cloud',
|
|
desc: '서울 초·중·고 1:1 맞춤 과외 및 방문·화상 시범수업 전문 교육 기관',
|
|
items: [
|
|
{ title: '서울 초·중·고 1:1 맞춤 과외 매칭', link: 'https://aeseo.cloud/', desc: '과외 비용·시세 투명 비교부터 무료 시범수업 신청까지' },
|
|
{ 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 개념 정밀 코칭' }
|
|
]
|
|
}
|
|
};
|
|
|
|
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 => ` <item>
|
|
<title><![CDATA[${item.title}]]></title>
|
|
<link>${item.link}</link>
|
|
<description><![CDATA[${item.desc}]]></description>
|
|
<pubDate>${pubDate}</pubDate>
|
|
<guid>${item.link}</guid>
|
|
</item>`).join('\n');
|
|
|
|
const rssContent = `<?xml version="1.0" encoding="UTF-8"?>
|
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
|
<channel>
|
|
<title><![CDATA[${c.siteName}]]></title>
|
|
<link>${c.siteDomain}/</link>
|
|
<description><![CDATA[${c.desc}]]></description>
|
|
<language>ko</language>
|
|
<pubDate>${pubDate}</pubDate>
|
|
<lastBuildDate>${pubDate}</lastBuildDate>
|
|
<atom:link href="${c.siteDomain}/rss.xml" rel="self" type="application/rss+xml"/>
|
|
${itemsXml}
|
|
</channel>
|
|
</rss>
|
|
`;
|
|
|
|
fs.writeFileSync(rssPath, rssContent, 'utf8');
|
|
console.log(`Generated rss.xml for ${p}`);
|
|
}
|