diff --git a/docs/en/government.md b/docs/en/government.md
index 44a8ce7ea..172348c62 100644
--- a/docs/en/government.md
+++ b/docs/en/government.md
@@ -95,6 +95,18 @@ Fill in the English expression for the month in the Month field, eg `December` f
+## The White House
+
+### Briefing Room
+
+
+
+| All | Blog | Legislation | Presidential Actions | Press Briefings | Speeches and Remarks | Statements and Releases |
+| - | - | - | - | - | - | - |
+| | blog | legislation | presidential-actions | press-briefings | speeches-remarks | statements-releases |
+
+
+
## U.S. Department of the Treasury
### Press Releases
diff --git a/docs/government.md b/docs/government.md
index 070f6b3be..5d86e2883 100644
--- a/docs/government.md
+++ b/docs/government.md
@@ -228,6 +228,18 @@ pageClass: routes
+## 美国白宫办公厅
+
+### 简报室
+
+
+
+| All | Blog | Legislation | Presidential Actions | Press Briefings | Speeches and Remarks | Statements and Releases |
+| --- | ---- | ----------- | -------------------- | --------------- | -------------------- | ----------------------- |
+| | blog | legislation | presidential-actions | press-briefings | speeches-remarks | statements-releases |
+
+
+
## 美国财政部
### 新闻稿
diff --git a/lib/v2/whitehouse/briefing-room.js b/lib/v2/whitehouse/briefing-room.js
new file mode 100644
index 000000000..6239a6145
--- /dev/null
+++ b/lib/v2/whitehouse/briefing-room.js
@@ -0,0 +1,50 @@
+const got = require('@/utils/got');
+const cheerio = require('cheerio');
+const { parseDate } = require('@/utils/parse-date');
+
+module.exports = async (ctx) => {
+ const category = ctx.params.category ?? '';
+
+ const rootUrl = 'https://www.whitehouse.gov';
+ const currentUrl = `${rootUrl}/briefing-room/${category}`;
+ const response = await got({
+ method: 'get',
+ url: currentUrl,
+ });
+
+ const $ = cheerio.load(response.data);
+
+ const list = $('.news-item__title')
+ .slice(0, 10)
+ .map((_, item) => {
+ item = $(item);
+ return {
+ title: item.text(),
+ link: item.attr('href'),
+ };
+ })
+ .get();
+
+ const items = await Promise.all(
+ list.map((item) =>
+ ctx.cache.tryGet(item.link, async () => {
+ const detailResponse = await got({
+ method: 'get',
+ url: item.link,
+ });
+ const content = cheerio.load(detailResponse.data);
+
+ item.description = content('.body-content').html();
+ item.pubDate = parseDate(content('meta[property="article:published_time"]').attr('content'));
+
+ return item;
+ })
+ )
+ );
+
+ ctx.state.data = {
+ title: $('title').text(),
+ link: currentUrl,
+ item: items,
+ };
+};
diff --git a/lib/v2/whitehouse/maintainer.js b/lib/v2/whitehouse/maintainer.js
new file mode 100644
index 000000000..454bfa704
--- /dev/null
+++ b/lib/v2/whitehouse/maintainer.js
@@ -0,0 +1,3 @@
+module.exports = {
+ '/briefing-room/:category?': ['nczitzk'],
+};
diff --git a/lib/v2/whitehouse/radar.js b/lib/v2/whitehouse/radar.js
new file mode 100644
index 000000000..dcef31af0
--- /dev/null
+++ b/lib/v2/whitehouse/radar.js
@@ -0,0 +1,13 @@
+module.exports = {
+ 'whitehouse.gov': {
+ _name: '美国白宫办公厅',
+ '.': [
+ {
+ title: '简报室',
+ docs: 'https://docs.rsshub.app/government.html#mei-guo-bai-gong-ban-gong-ting',
+ source: ['/briefing-room/:category', '/'],
+ target: '/whitehouse/briefing-room/:category',
+ },
+ ],
+ },
+};
diff --git a/lib/v2/whitehouse/router.js b/lib/v2/whitehouse/router.js
new file mode 100644
index 000000000..d815b0ce6
--- /dev/null
+++ b/lib/v2/whitehouse/router.js
@@ -0,0 +1,3 @@
+module.exports = (router) => {
+ router.get('/briefing-room/:category?', require('./briefing-room'));
+};