From cfe8569741276b1771c42b523056d2cda8887c85 Mon Sep 17 00:00:00 2001 From: Tony Date: Fri, 22 Sep 2023 01:36:37 +0800 Subject: [PATCH] fix(route): niaogebiji (#13354) --- lib/router.js | 6 +- lib/routes/niaogebiji/cat.js | 86 ------------------------- lib/routes/niaogebiji/index.js | 40 ------------ lib/routes/niaogebiji/today.js | 29 --------- lib/v2/niaogebiji/cat.js | 53 ++++++++++++++++ lib/v2/niaogebiji/index.js | 41 ++++++++++++ lib/v2/niaogebiji/maintainer.js | 6 ++ lib/v2/niaogebiji/radar.js | 25 ++++++++ lib/v2/niaogebiji/router.js | 5 ++ lib/v2/niaogebiji/today.js | 34 ++++++++++ website/docs/routes/new-media.md | 104 +++++++++++++++---------------- 11 files changed, 219 insertions(+), 210 deletions(-) delete mode 100644 lib/routes/niaogebiji/cat.js delete mode 100644 lib/routes/niaogebiji/index.js delete mode 100644 lib/routes/niaogebiji/today.js create mode 100644 lib/v2/niaogebiji/cat.js create mode 100644 lib/v2/niaogebiji/index.js create mode 100644 lib/v2/niaogebiji/maintainer.js create mode 100644 lib/v2/niaogebiji/radar.js create mode 100644 lib/v2/niaogebiji/router.js create mode 100644 lib/v2/niaogebiji/today.js diff --git a/lib/router.js b/lib/router.js index 50ee32839..bf397485b 100644 --- a/lib/router.js +++ b/lib/router.js @@ -1868,9 +1868,9 @@ router.get('/gov/chongqing/ljxq/zwgk/:caty', lazyloadRouteHandler('./routes/gov/ router.get('/12379', lazyloadRouteHandler('./routes/12379/index')); // 鸟哥笔记 -router.get('/ngbj', lazyloadRouteHandler('./routes/niaogebiji/index')); -router.get('/ngbj/today', lazyloadRouteHandler('./routes/niaogebiji/today')); -router.get('/ngbj/cat/:cat', lazyloadRouteHandler('./routes/niaogebiji/cat')); +// router.get('/ngbj', lazyloadRouteHandler('./routes/niaogebiji/index')); +// router.get('/ngbj/today', lazyloadRouteHandler('./routes/niaogebiji/today')); +// router.get('/ngbj/cat/:cat', lazyloadRouteHandler('./routes/niaogebiji/cat')); // 梅花网 router.get('/meihua/shots/:caty', lazyloadRouteHandler('./routes/meihua/shots')); diff --git a/lib/routes/niaogebiji/cat.js b/lib/routes/niaogebiji/cat.js deleted file mode 100644 index f15238e08..000000000 --- a/lib/routes/niaogebiji/cat.js +++ /dev/null @@ -1,86 +0,0 @@ -const got = require('@/utils/got'); -const cheerio = require('cheerio'); - -/** - * 在一个CheerioElement数组中查找有你想要的属性的元素 - * @author KotoriK - * @param {Array} eles CheerioElement数组 - * @param {string} attrName 要查找的属性名称 - * @param {boolean} recursive 是否递归子节点 - * @returns 有你想要元素的数组 - */ -function findAttributeFromNodes(eles, attrName, recursive = false) { - let array = []; - for (const ele of eles) { - if (ele.attribs && ele.attribs[attrName]) { - array.push(ele); - } - if (recursive && ele.children) { - array = array.concat(findAttributeFromNodes(ele.children, attrName, true)); - } - } - return array; -} - -/** - * 在一个CheerioElement数组中查找有你给的属性及对应的值的元素 - * @author KotoriK - * @param {Array} eles CheerioElement数组 - * @param {string} attrName 要查找的属性名称 - * @param {boolean} recursive 是否递归子节点 - * @returns 有你想要元素的数组 - */ -function findMatch(eles, attrName, value, recursive = false) { - let array = []; - for (const ele of eles) { - if (ele.attribs && ele.attribs[attrName] === value) { - array.push(ele); - } - if (recursive && ele.children) { - array = array.concat(findMatch(ele.children, attrName, value, true)); - } - } - return array; -} - -module.exports = async (ctx) => { - const cat_id = ctx.params.cat; - const response = await got({ - method: 'get', - url: `http://www.niaogebiji.com/cat/${cat_id}`, - }); - const $ = cheerio.load(response.data); - const cat_name = $('h1').text(); - const articles = $('div.articleBox.clearfix'); - ctx.state.data = { - title: `鸟哥笔记-分类-${cat_name}`, - link: `http://www.niaogebiji.com/cat/${cat_id}`, - item: response.data - ? await Promise.all( - articles.toArray().map((element) => { - const article_div = findAttributeFromNodes(element.children, 'href')[0]; - const article_link = `http://www.niaogebiji.com${article_div.attribs.href}`; - return (async () => ({ - title: findMatch(article_div.children, 'class', 'articleTitle elp', true)[0].children[0].data, - category: cat_name, - description: await ctx.cache.tryGet(`ngbj-${article_div.attribs.href}`, async () => { - // get article - const article_response = await got({ - method: 'get', - url: article_link, - }); - const article_dom = cheerio.load(article_response.data); - return article_dom('div.mobileHide.pc_content').html(); - }), - link: article_link, - pubDate: parseInt(element.attribs['data-timepoint'] + '000'), - }))(); - }) - ) - : [ - { - title: '获取失败!', - }, - ], - }; -}; diff --git a/lib/routes/niaogebiji/index.js b/lib/routes/niaogebiji/index.js deleted file mode 100644 index 5a5483583..000000000 --- a/lib/routes/niaogebiji/index.js +++ /dev/null @@ -1,40 +0,0 @@ -const got = require('@/utils/got'); -const cheerio = require('cheerio'); - -module.exports = async (ctx) => { - const response = await got({ - method: 'get', - url: `https://www.niaogebiji.com/`, - }); - const $ = cheerio.load(response.data); - const postList = $('.articleListBox').find('.articleBox').get(); - const result = await Promise.all( - postList.map(async (item) => { - const title = $(item).find('.article').find('a').find('.articleTitle').text(); - const link = 'https://www.niaogebiji.com' + $(item).find('.article').find('a').attr('href'); - const guid = link; - const pubDate = new Date(parseInt($(item).attr('data-timepoint')) * 1000).toUTCString(); - - const single = { - title, - link, - guid, - pubDate, - description: '', - }; - - const description_key = 'niaogebiji' + guid; - const description_value = await ctx.cache.get(description_key); - - if (description_value) { - single.description = description_value; - } else { - const temp = await got(link); - single.description = $(temp.data).find('.article').find('.pc_content').html(); - ctx.cache.set(description_key, single.description); - } - return Promise.resolve(single); - }) - ); - ctx.state.data = { title: '鸟哥笔记', link: 'https://www.niaogebiji.com/', item: result }; -}; diff --git a/lib/routes/niaogebiji/today.js b/lib/routes/niaogebiji/today.js deleted file mode 100644 index ae9a6197d..000000000 --- a/lib/routes/niaogebiji/today.js +++ /dev/null @@ -1,29 +0,0 @@ -const got = require('@/utils/got'); -module.exports = async (ctx) => { - const response = await got({ - method: 'post', - url: 'https://www.niaogebiji.com/pc/bulletin/index', - form: { - page: 1, - pub_time: '', - isfromajax: 1, - }, - }); - const data = response.data.return_data; - ctx.state.data = { - title: '鸟哥笔记-今日事', - link: 'https://www.niaogebiji.com/pc/bulletin/index', - item: data - ? data.map((item) => ({ - title: item.title, - description: item.content + `
原文链接`, - link: `https://www.niaogebiji.com/pc/bulletin/detail?id=${item.id}`, - pubDate: new Date(parseInt(data[0].pub_time + '000')), - })) - : [ - { - title: '获取失败!', - }, - ], - }; -}; diff --git a/lib/v2/niaogebiji/cat.js b/lib/v2/niaogebiji/cat.js new file mode 100644 index 000000000..d13cc6b55 --- /dev/null +++ b/lib/v2/niaogebiji/cat.js @@ -0,0 +1,53 @@ +const got = require('@/utils/got'); +const cheerio = require('cheerio'); +const { parseDate } = require('@/utils/parse-date'); +const timezone = require('@/utils/timezone'); + +module.exports = async (ctx) => { + const categoryId = ctx.params.cat; + const link = `https://www.niaogebiji.com/cat/${categoryId}`; + + const response = await got(link); + const $ = cheerio.load(response.data); + const catName = $('h1').text(); + + const articles = $('div.articleBox.clearfix') + .toArray() + .map((item) => { + item = $(item); + return { + title: item.find('.articleTitle').text().trim(), + description: item.find('.articleContentInner').text().trim(), + author: item.find('.author').text().trim(), + link: new URL(item.find('a').first().attr('href'), link).href, + category: [ + ...item + .find('.art_tag') + .toArray() + .map((tag) => $(tag).text().trim()), + catName, + ], + }; + }); + + const items = await Promise.all( + articles.map((element) => + ctx.cache.tryGet(element.link, async () => { + const response = await got(element.link); + const $ = cheerio.load(response.data); + + element.pubDate = timezone(parseDate($('.writeTime3').text().trim()), 8); + element.description = $('.pc_content').html(); + + return element; + }) + ) + ); + + ctx.state.data = { + title: $('head title').text(), + description: $('head meta[name="description"]').attr('content'), + link, + item: items, + }; +}; diff --git a/lib/v2/niaogebiji/index.js b/lib/v2/niaogebiji/index.js new file mode 100644 index 000000000..6480fbc24 --- /dev/null +++ b/lib/v2/niaogebiji/index.js @@ -0,0 +1,41 @@ +const got = require('@/utils/got'); +const cheerio = require('cheerio'); +const { parseDate } = require('@/utils/parse-date'); + +module.exports = async (ctx) => { + const baseUrl = 'https://www.niaogebiji.com'; + const { data: response } = await got(`${baseUrl}/pc/index/getMoreArticle`); + + if (response.return_code !== '200') { + throw Error(response.return_msg); + } + + const postList = response.return_data.map((item) => ({ + title: item.title, + description: item.summary, + author: item.author, + pubDate: parseDate(item.published_at, 'X'), + updated: parseDate(item.updated_at, 'X'), + category: [item.catname, ...item.tag_list], + link: new URL(item.link, baseUrl).href, + })); + + const result = await Promise.all( + postList.map((item) => + ctx.cache.tryGet(item.link, async () => { + const { data: response } = await got(item.link); + const $ = cheerio.load(response); + + item.description = $('.pc_content').html(); + + return item; + }) + ) + ); + + ctx.state.data = { + title: '鸟哥笔记', + link: baseUrl, + item: result, + }; +}; diff --git a/lib/v2/niaogebiji/maintainer.js b/lib/v2/niaogebiji/maintainer.js new file mode 100644 index 000000000..d6faf5c04 --- /dev/null +++ b/lib/v2/niaogebiji/maintainer.js @@ -0,0 +1,6 @@ +module.exports = { + '': ['WenryXu'], + '/': ['WenryXu'], + '/cat/:cat': ['cKotoriKat'], + '/today': ['KotoriK'], +}; diff --git a/lib/v2/niaogebiji/radar.js b/lib/v2/niaogebiji/radar.js new file mode 100644 index 000000000..a7ac4efc9 --- /dev/null +++ b/lib/v2/niaogebiji/radar.js @@ -0,0 +1,25 @@ +module.exports = { + 'niaogebiji.com': { + _name: '鸟哥笔记', + '.': [ + { + title: '首页', + docs: 'https://docs.rsshub.app/new-media#niao-ge-bi-ji', + source: ['/'], + target: '/niaogebiji', + }, + { + title: '今日事', + docs: 'https://docs.rsshub.app/new-media#niao-ge-bi-ji', + source: ['/', '/bulletin'], + target: '/niaogebiji', + }, + { + title: '分类目录', + docs: 'https://docs.rsshub.app/new-media#niao-ge-bi-ji', + source: ['/cat/:cat'], + target: '/niaogebiji/cat/:cat', + }, + ], + }, +}; diff --git a/lib/v2/niaogebiji/router.js b/lib/v2/niaogebiji/router.js new file mode 100644 index 000000000..e0c5c72ef --- /dev/null +++ b/lib/v2/niaogebiji/router.js @@ -0,0 +1,5 @@ +module.exports = (router) => { + router.get('/', require('./index')); + router.get('/cat/:cat', require('./cat')); + router.get('/today', require('./today')); +}; diff --git a/lib/v2/niaogebiji/today.js b/lib/v2/niaogebiji/today.js new file mode 100644 index 000000000..540365acf --- /dev/null +++ b/lib/v2/niaogebiji/today.js @@ -0,0 +1,34 @@ +const got = require('@/utils/got'); +const { parseDate } = require('@/utils/parse-date'); + +module.exports = async (ctx) => { + const response = await got({ + method: 'post', + url: 'https://www.niaogebiji.com/pc/bulletin/index', + form: { + page: 1, + pub_time: '', + isfromajax: 1, + }, + }); + + if (response.data.return_code !== '200') { + throw Error(response.data.return_msg); + } + + const data = response.data.return_data; + + ctx.state.data = { + title: '鸟哥笔记-今日事', + link: 'https://www.niaogebiji.com/bulletin', + item: data.map((item) => ({ + title: item.title, + description: item.content, + link: item.url, + pubDate: parseDate(item.pub_time, 'X'), + updated: parseDate(item.updated_at, 'X'), + category: item.seo_keywords.split(','), + author: item.user_info.nickname, + })), + }; +}; diff --git a/website/docs/routes/new-media.md b/website/docs/routes/new-media.md index 1eb05697a..795d426ac 100644 --- a/website/docs/routes/new-media.md +++ b/website/docs/routes/new-media.md @@ -3427,175 +3427,175 @@ column 为 third 时可选的 category: | 电脑配件 | 手机之家 | 家用电器 | 网络设备 | 办公外设 | 游戏之家 | | -------- | -------- | -------- | -------- | -------- | -------- | | cid/2 | cid/3 | cid/4 | cid/5 | cid/6 | cid/7 | - + | 电脑软件 | 业内动向 | 品牌整机 | 其它资讯 | 显卡 | CPU | | -------- | -------- | -------- | -------- | ------ | ------ | | cid/8 | cid/9 | cid/10 | cid/11 | cid/12 | cid/13 | - + | 主板 | 内存 | 硬盘 | 机箱 | 电源 | 散热器 | | ------ | ------ | ------ | ------ | ------ | ------ | | cid/14 | cid/15 | cid/16 | cid/17 | cid/18 | cid/19 | - + | 光驱 | 声卡 | 键鼠 | 音箱 | 手机厂商 | 手机配件 | | ------ | ------ | ------ | ------ | -------- | -------- | | cid/20 | cid/21 | cid/22 | cid/23 | cid/24 | cid/25 | - + | PDA | MP3/MP4 | 摄像机 | 数码相机 | 摄像头 | 数码配件 | | ------ | ------- | ------ | -------- | ------ | -------- | | cid/26 | cid/27 | cid/29 | cid/30 | cid/31 | cid/32 | - + | 电子书 | 导航产品 | 录音笔 | 交换机 | 路由器 | 防火墙 | | ------ | -------- | ------ | ------ | ------ | ------ | | cid/33 | cid/34 | cid/35 | cid/37 | cid/38 | cid/40 | - + | 网卡 | 网络存储 | UPS | 打印机 | 复印机 | 复合机 | | ------ | -------- | ------ | ------ | ------ | ------ | | cid/41 | cid/43 | cid/44 | cid/45 | cid/46 | cid/47 | - + | 投影仪 | 扫描仪 | 传真机 | 电脑游戏 | 主机游戏 | 游戏主机 | | ------ | ------ | ------ | -------- | -------- | -------- | | cid/48 | cid/49 | cid/51 | cid/52 | cid/53 | cid/54 | - + | 掌机游戏 | 电脑驱动 | 桌面系统 | 视点人物 | 数据报告 | 科技前沿 | | -------- | -------- | -------- | -------- | -------- | -------- | | cid/55 | cid/57 | cid/58 | cid/62 | cid/63 | cid/65 | - + | 笔记本 | 台式机 | 服务器 | 一体机 | 其他 | PC硬件 | | ------ | ------ | ------ | ------ | ------ | ------ | | cid/66 | cid/67 | cid/68 | cid/69 | cid/73 | cid/74 | - + | 时尚数码 | 软件驱动 | 显示器 | 音箱耳机 | 投影机 | 便携机 | | -------- | -------- | ------ | -------- | ------- | ------- | | cid/78 | cid/79 | cid/80 | cid/92 | cid/100 | cid/108 | - + | 手机 | MP3 | MP4 | 闪存盘 | DV摄像机 | U盘 | | ------- | ------- | ------- | ------- | -------- | ------- | | cid/109 | cid/112 | cid/113 | cid/114 | cid/115 | cid/116 | - + | GPS | 移动硬盘 | 操作系统 | 驱动 | 软件 | 软件更新 | | ------- | -------- | -------- | ------- | ------- | -------- | | cid/117 | cid/119 | cid/120 | cid/121 | cid/122 | cid/123 | - + | 新软推荐 | 业界动态 | 软件评测 | 软件技巧 | 游戏相关 | 驱动研究 | | -------- | -------- | -------- | -------- | -------- | -------- | | cid/124 | cid/125 | cid/126 | cid/127 | cid/128 | cid/130 | - + | 游戏试玩 | 硬件学堂 | 实用技巧 | 新软体验 | 资讯教程 | 软件横评 | | -------- | -------- | -------- | -------- | -------- | -------- | | cid/131 | cid/132 | cid/133 | cid/134 | cid/135 | cid/136 | - + | Windows | Mac | Linux | 其它 | 使用技巧 | 深入研究 | | ------- | ------- | ------- | ------- | -------- | -------- | | cid/137 | cid/138 | cid/139 | cid/140 | cid/141 | cid/142 | - + | 游戏机 | 显示 | 存储 | 音频 | 外设 | 数码 | | ------- | ------- | ------- | ------- | ------- | ------- | | cid/144 | cid/145 | cid/146 | cid/147 | cid/148 | cid/151 | - + | 网络 | 办公 | 维修 | 安全 | 聊天 | 影音 | | ------- | ------- | ------- | ------- | ------- | ------- | | cid/152 | cid/154 | cid/155 | cid/156 | cid/157 | cid/158 | - + | 国内 | 国外 | 办公应用 | 设计创意 | 基础知识 | 程序 | | ------- | ------- | -------- | -------- | -------- | ------- | | cid/159 | cid/160 | cid/161 | cid/162 | cid/163 | cid/164 | - + | 其他硬件 | 电视卡/盒 | 游戏体验 | 平板电视 | 企业动态 | 天文航天 | | -------- | --------- | -------- | -------- | -------- | -------- | | cid/166 | cid/170 | cid/172 | cid/173 | cid/174 | cid/175 | - + | MID设备 | 数码相框 | 耳机 | 通讯运营商 | 电视盒 | 线材线缆 | | ------- | -------- | ------- | ---------- | ------- | -------- | | cid/176 | cid/177 | cid/179 | cid/180 | cid/182 | cid/183 | - + | 小家电 | 网络游戏 | 行情信息 | 科学动态 | 生物世界 | 历史考古 | | ------- | -------- | -------- | -------- | -------- | -------- | | cid/184 | cid/186 | cid/188 | cid/192 | cid/193 | cid/194 | - + | 生科医学 | 地理自然 | 工程建筑 | 苹果手机 | 谷歌Android | 塞班手机 | | -------- | -------- | -------- | -------- | ----------- | -------- | | cid/195 | cid/196 | cid/197 | cid/201 | cid/202 | cid/203 | - + | 黑莓手机 | 微软手机 | 移动处理器 | 山寨机 | 手机游戏 | 安卓应用 | | -------- | -------- | ---------- | ------- | -------- | -------- | | cid/204 | cid/205 | cid/206 | cid/208 | cid/209 | cid/210 | - + | 娱乐生活 | 明星全接触 | 电影影讯 | 电视节目 | 音乐戏曲 | 国际风云 | | -------- | ---------- | -------- | -------- | -------- | -------- | | cid/212 | cid/213 | cid/214 | cid/215 | cid/216 | cid/217 | - + | 国内传真 | 社会民生 | 生活百态 | 医药健康 | 家居尚品 | 星座旅游 | | -------- | -------- | -------- | -------- | -------- | -------- | | cid/218 | cid/219 | cid/220 | cid/221 | cid/222 | cid/223 | - + | 评论分析 | 体育竞技 | IT八卦 | 科技动态 | 游戏动态 | 手机系统 | | -------- | -------- | ------- | -------- | -------- | -------- | | cid/224 | cid/225 | cid/226 | cid/227 | cid/228 | cid/232 | - + | 智能设备 | 生活电器 | 汽车相关 | 飞机航空 | 手机周边 | 网络运营商 | | -------- | -------- | -------- | -------- | -------- | ---------- | | cid/233 | cid/234 | cid/235 | cid/236 | cid/237 | cid/238 | - + | 平板电脑 | 苹果iPad | 安卓平板 | Windows平板 | 创业路上 | 网友热议 | | -------- | -------- | -------- | ----------- | -------- | -------- | | cid/239 | cid/240 | cid/241 | cid/242 | cid/243 | cid/244 | - + | IT圈 | 数码周边 | 智能手环 | 智能眼镜 | 智能手表 | iOS应用 | | ------- | -------- | -------- | -------- | -------- | ------- | | cid/246 | cid/247 | cid/248 | cid/249 | cid/250 | cid/251 | - + | 壁纸主题 | 游戏厂商 | 数理化学 | 科普知识 | 奇趣探险 | 汽车世界 | | -------- | -------- | -------- | -------- | -------- | -------- | | cid/252 | cid/253 | cid/254 | cid/255 | cid/256 | cid/257 | - + | 传统汽车 | 电动汽车 | 新能源汽车 | 无人驾驶汽车 | 车载系统 | 车载配件 | | -------- | -------- | ---------- | ------------ | -------- | -------- | | cid/258 | cid/259 | cid/260 | cid/261 | cid/262 | cid/263 | - + | 汽车厂商 | 影音动漫 | 精彩影视 | 电影动画 | 艺术设计 | 摄影达人 | | -------- | -------- | -------- | -------- | -------- | -------- | | cid/264 | cid/265 | cid/266 | cid/267 | cid/269 | cid/270 | - + | 固件 | 样张赏析 | 创意摄影 | WP应用 | 教育未来 | 安卓手机 | | ------- | -------- | -------- | ------- | -------- | -------- | | cid/272 | cid/273 | cid/274 | cid/284 | cid/285 | cid/288 | - + | 智能穿戴 | 移动应用 | 电子竞技 | 游戏八卦 | 游戏评测 | 生活百科 | | -------- | -------- | -------- | -------- | -------- | -------- | | cid/290 | cid/292 | cid/297 | cid/298 | cid/299 | cid/301 | - + | 智能家居 | 智能插座 | 智能摄像头 | 智能路由器 | 智能体重秤 | 智能血压计 | | -------- | -------- | ---------- | ---------- | ---------- | ---------- | | cid/302 | cid/303 | cid/304 | cid/305 | cid/306 | cid/307 | - + | 空气净化器 | 智能净水器 | 电动两轮车 | 公司财报 | 智能行车记录仪 | 网络影视 | | ---------- | ---------- | ---------- | -------- | -------------- | -------- | | cid/308 | cid/309 | cid/310 | cid/311 | cid/312 | cid/313 | - + | 多轴无人机 | 摩托车 | 自行车 | 共享经济 | 生活周边 | 网络安全 | | ---------- | ------- | ------- | -------- | -------- | -------- | | cid/314 | cid/316 | cid/317 | cid/320 | cid/321 | cid/322 | - + | 考勤机 | 网络红人 | 火车高铁 | 机器人 | 其他网络 | 快递物流 | | ------- | -------- | -------- | ------- | -------- | -------- | | cid/323 | cid/324 | cid/325 | cid/326 | cid/327 | cid/328 | - + | 科技资讯 | 好货推荐 | 日常用品 | 餐饮零食 | 化妆品 | 运动健康 | | -------- | -------- | -------- | -------- | ------- | -------- | | cid/329 | cid/334 | cid/335 | cid/336 | cid/339 | cid/340 | - + | 酒水饮料 | 个人洗护 | 电子产品 | 服装鞋帽 | 会员卡 | 用户投稿 | | -------- | -------- | -------- | -------- | ------- | -------- | | cid/341 | cid/342 | cid/343 | cid/345 | cid/346 | cid/351 | - + | APP投稿 | PC投稿 | 视频快讯 | 新品开箱 | 技巧教程 | 科技快讯 | | ------- | ------- | -------- | -------- | -------- | -------- | | cid/352 | cid/353 | cid/354 | cid/355 | cid/356 | cid/357 | - + | 产品评测 | 人物专访 | 会议活动 | 数码影音 | 数码影像 | 游戏周边 | | -------- | -------- | -------- | -------- | -------- | -------- | | cid/358 | cid/359 | cid/360 | cid/361 | cid/362 | cid/368 | - + | 汽车周边 | 个人交通 | 其他交通 | | -------- | -------- | -------- | | cid/369 | cid/370 | cid/371 | @@ -4182,15 +4182,15 @@ column 为 third 时可选的 category: ### 首页 {#niao-ge-bi-ji-shou-ye} - + ### 今日事 {#niao-ge-bi-ji-jin-ri-shi} - + ### 分类目录 {#niao-ge-bi-ji-fen-lei-mu-lu} - + ## 派代 {#pai-dai} @@ -5669,7 +5669,7 @@ column 为 third 时可选的 category: | 小说 | 诗歌 | 散文 | 纪实 | 其他 | | ------------- | ------------- | ------------- | ------------- | ------------- | | 404015/404017 | 404015/404020 | 404015/404018 | 404015/404019 | 404015/419926 | - + | 平台推荐 | 本周之星 | 2018年5月18日前原创作品 | | ------------- | ------------- | ----------------------- | | 404015/419789 | 404015/431511 | 404009 | @@ -5677,23 +5677,23 @@ column 为 third 时可选的 category: | 《人民文学》 | 《诗刊》 | 《民族文学》 | 《收获》 | 《十月》 | | -------------------- | -------------------- | -------------------- | -------------------- | -------------------- | | 404015/416204/418925 | 404015/416204/418926 | 404015/416204/418928 | 404015/416204/418958 | 404015/416204/418956 | - + | 《小说选刊》 | 《北京文学》 | 《上海文学》 | 《天津文学》 | 《草原》 | | -------------------- | -------------------- | -------------------- | -------------------- | -------------------- | | 404015/416204/418929 | 404015/416204/418954 | 404015/416204/418962 | 404015/416204/419004 | 404015/416204/418989 | - + | 《黄河》 | 《江南》 | 《钟山》 | 《广州文艺》 | 《湖南文学》 | | -------------------- | -------------------- | -------------------- | -------------------- | -------------------- | | 404015/416204/426204 | 404015/416204/418957 | 404015/416204/418984 | 404015/416204/419881 | 404015/416204/419156 | - + | 《山西文学》 | 《花城》 | 《青年作家》 | 《雨花》 | 《红豆》 | | -------------------- | -------------------- | -------------------- | -------------------- | -------------------- | | 404015/416204/419827 | 404015/416204/418960 | 404015/416204/418967 | 404015/416204/419885 | 404015/416204/418993 | - + | 《长江文艺》 | 《中国作家》 | 《青年文学》 | 《美文》 | 《芙蓉》 | | -------------------- | -------------------- | -------------------- | -------------------- | -------------------- | | 404015/416204/418961 | 404015/416204/418927 | 404015/416204/418979 | 404015/416204/418985 | 404015/416204/418986 | - + | 《长城》 | 《福建文学》 | 《啄木鸟》 | 《芳草》 | 《小说月报》 | | -------------------- | -------------------- | -------------------- | -------------------- | -------------------- | | 404015/416204/418987 | 404015/416204/419003 | 404015/416204/435225 | 404015/416204/424311 | 404015/416204/418963 |