diff --git a/docs/game.md b/docs/game.md
index 4079061f90..c08459f7c5 100644
--- a/docs/game.md
+++ b/docs/game.md
@@ -112,6 +112,12 @@ pageClass: routes
+## Liquipedia
+
+### Dota2 战队最近比赛结果
+
+
+
## Maxjia News
### Dota 2
diff --git a/lib/router.js b/lib/router.js
index 09d3010330..0775b23551 100644
--- a/lib/router.js
+++ b/lib/router.js
@@ -3419,6 +3419,9 @@ router.get('/sagawa/:id', require('./routes/sagawa/index'));
// QNAP
router.get('/qnap/release-notes/:id', require('./routes/qnap/release-notes'));
+// Liquipedia
+router.get('/liquipedia/dota2/matches/:id', require('./routes/liquipedia/dota2_matches.js'));
+
// 哈尔滨市科技局
router.get('/gov/harbin/kjj', require('./routes/gov/harbin/kjj'));
diff --git a/lib/routes/liquipedia/dota2_matches.js b/lib/routes/liquipedia/dota2_matches.js
new file mode 100644
index 0000000000..e459f6b405
--- /dev/null
+++ b/lib/routes/liquipedia/dota2_matches.js
@@ -0,0 +1,50 @@
+const got = require('@/utils/got');
+const cheerio = require('cheerio');
+
+module.exports = async (ctx) => {
+ const team = ctx.params.id;
+ const url = `https://liquipedia.net/dota2/${team}`;
+ const response = await got({
+ method: 'get',
+ url: url,
+ });
+
+ const data = response.data;
+
+ const $ = cheerio.load(data);
+ const list = $('div.recent-matches > table > tbody > tr[style]');
+
+ ctx.state.data = {
+ title: `Liquipedia Dota2 ${team} Matches`,
+ link: url,
+ item:
+ list &&
+ list
+ .map((index, item) => {
+ item = $(item);
+ let message = '';
+ if (item.attr('style') === 'background:rgb(240, 255, 240)') {
+ message = '胜';
+ } else if (item.attr('style') === 'background:rgb(249, 240, 242)') {
+ message = '败';
+ } else {
+ message = '平';
+ }
+ const date = item.find('td:nth-child(1)').text();
+ const time = item.find('td:nth-child(2)').text();
+ const tournament = item.find('td:nth-child(5) > a').text();
+ const date_time = new Date(date + ' ' + time).toUTCString();
+ const score = item.find('td:nth-child(6)').text();
+ const vs_team = item.find('td:nth-child(7) > span > span.team-template-text > a').text();
+
+ return {
+ title: `[${message}] ${score} ${vs_team}`,
+ description: `At ${tournament}, ${team} ${score} ${vs_team}`,
+ pubDate: date_time,
+ link: url,
+ guid: url + date_time,
+ };
+ })
+ .get(),
+ };
+};