写点什么

[JS 真好玩] 嘘!我改了掘金源代码!1 行代码,让表格支持 page_size 切换,从每页 10 条变为 20 条!

作者:HullQin
  • 2022 年 8 月 21 日
    广东
  • 本文字数:1647 字

    阅读完需:约 5 分钟

[JS真好玩] 嘘!我改了掘金源代码!1行代码,让表格支持page_size切换,从每页10条变为20条!

我是 HullQin,公众号线下聚会游戏的作者(欢迎关注公众号,发送加微信,交个朋友),转发本文前需获得作者 HullQin 授权。我独立开发了《联机桌游合集》,是个网页,可以很方便的跟朋友联机玩斗地主、五子棋等游戏,不收费没广告。还独立开发了《合成大西瓜重制版》。还开发了《Dice Crush》参加 Game Jam 2022。喜欢可以关注我 HullQin 噢~我有空了会分享做游戏的相关技术。

掘金创作者的困惑

上篇文章,我们用 1 行代码,计算掘金创作者写的文章的「展现-阅读转化率」以及「点赞率」等,传送门:《掘金创作者必备: 用一行 JS 查看所有文章的转化率,让你知道什么标题才是好标题》


但是,有个问题,进入「创作者中心」-「内容数据」-「数据趋势」-「单篇分析」https://juejin.cn/creator/data/content/article/single 后,如果你比较勤奋,写了 10 篇以上的文章,那么这个表格只能展示 10 篇文章,因为表格限定:每页 10 条数据


不知是掘金的产品经理比较倔强,还是掘金的前端开发比较懒,(狗头保命)这个数据分析用的表格并不支持切换 page_size(每页文章的数量)。


所以,用我上篇文章的方法,每次只能计算 10 篇文章的转化率,并不能一次性计算出所有文章的转化率。


这实在是太难受了!我已经写了将近 20 篇文章了,我希望把它们放在一起,统一分析数据!


其实对创作者而言,这种展示数据的表格还是非常重要的,因为可以帮助创作者分析,最好至少每页展示 20 条(但是这样就很长,会比较丑)。


但是现在,不用给掘金产品提建议了,因为我已经用 1 行代码帮掘金实现这个功能了!

解决方案

经过我 HullQin 坚持不懈的努力,终于找到了解决办法,并且只需要 1 行代码!

来吧,展示:1 行代码!

_f=fetch,fetch=(u,i)=>u.includes('list_by_user')?_f(u,{...i,body:JSON.stringify({...JSON.parse(i.body),page_size:20})}):_f(u,i);
复制代码

使用方法

  1. 打开「创作者中心」-「内容数据」-「数据趋势」-「整体分析」

  2. F12打开浏览器的开发者工具,进入 Console(调试)面板,复制粘贴上面的代码,并按回车键

  3. 【不要刷新浏览器】点击「单篇分析」


你会发现,这个「单篇分析」表格已经展示了至多 20 篇文章!(如果你文章不够 20 篇,看到的就是你所有文章了)


求赞求收藏,我为什么求赞求收藏?

掘金将来可能会改版,这个方法可能会失效。不建议你直接复制走代码,建议你收藏文章,再顺手点个赞,超级感谢!因为如果掘金改版了,我会同步修改文章的代码,保证它永远可用!你每次可以来这里找到最新的可用的代码!

原理

通过抓包发现,「单篇分析」的数据来自于叫做list_by_user的接口,它的 request body 有个参数,叫做page_size,只要我们把这个参数改大点,那么就会请求得到更多数据啦,然后前端就会渲染出这些数据。


经过试验,后端对page_size有限制,最大是 20,所以我们把page_size改成 20 就可以了。

怎么修改 fetch 时的 request body 呢?

幸运的是,JS 中函数也是「一等公民」,我们直接把全局的 window.fetch 函数改了就好,用旧的window.fetch封装出一个新的fetch函数,并赋值给window.fetch。这种模式也叫「装饰器模式」。


在新的fetch函数中,判断如果请求是list_by_user,就修改它的body参数中的page_size,改成 20,就可以啦。


当然还有其它方法,例如配置代理修改请求包,但是如果你之前没配过代理,就需要安装代理软件、信任证书等操作,不如执行 1 行 JS 来得快~以后我也会教你代理方法的,功能更强大,也更方便,哈哈哈,快快关注我,现在关注我就是老粉啦。

注意事项

毕竟我本人之前也是字节的前端开发,出于责任感,提示下大家:禁止发送恶意请求给掘金噢,禁止压测噢,禁止利用掘金漏洞干坏事噢,不然你的账号可能会被封禁。

写在最后

我是 HullQin,公众号线下聚会游戏的作者(欢迎关注公众号,发送加微信,交个朋友),转发本文前需获得作者 HullQin 授权。我独立开发了《联机桌游合集》,是个网页,可以很方便的跟朋友联机玩斗地主、五子棋等游戏,不收费没广告。还独立开发了《合成大西瓜重制版》。还开发了《Dice Crush》参加 Game Jam 2022。喜欢可以关注我 HullQin 噢~我有空了会分享做游戏的相关技术。

发布于: 刚刚阅读数: 5
用户头像

HullQin

关注

公众号【线下聚会游戏】 2020.10.07 加入

game.hullqin.cn 我做了一些联机桌游网页:支持2-10人联机的UNO、2-4人联机的斗地主、2人联机的五子棋。无需下载,点开即玩!叫上朋友,即刻开局!不看广告,不做任务,享受「纯粹」的游戏!

评论

发布
暂无评论
[JS真好玩] 嘘!我改了掘金源代码!1行代码,让表格支持page_size切换,从每页10条变为20条!_CSS_HullQin_InfoQ写作社区