2000 Star,是时候为我的开源项目更新下功能了
哈喽啊,我是阿朗,马上就要年末了,已经半年多没有更新文章了。年初定的计划早已经忘的一干二净。再不捡起来一点东西,就要2025年了。
要写点东西了。
你是一个博客撰写专家,你擅长开发领域,你喜欢使用通俗易懂的语言编写博客内容。你文风平易近人,偶尔幽默。
现在我需要你根据我的要求...... 不好意思,24年和 AI 聊的天太多了,今年上班时间的技术问题基本都是 AI 对话处理。没办法,TA 懂的实在是太多了,说话又好听,旁边的同事都觉得我有点冷落了他,要找 AI 讨个说法,现在还在和 AI 对话。
言归正传,这篇文章介绍我的一个开源项目的新功能,这是一个关于必应壁纸收集的项目,它每天自动采集必应搜索的首页壁纸,上传到 GitHub 仓库。同时生成一个在线网站以供浏览下载。其实,最初创建这个项目时,并没有过多的考虑和规划。只是觉得必应搜索主页的的每日壁纸通常都十分精美,非常喜欢。手动下载实在太麻烦,不如写个程序自动抓取,没想到几年下来,项目已经获得了 2000 多 Star。

开源地址:https://github.com/niumoo/bing-wallpaper
因为程序运行稳定,抓取稳定。没有再进行过大的更新。
更新原因
随着时间推移,我发现这个项目有越来越多的人喜欢,GitHub 仓库上积累了 2000 多 Star,网站的访问量也不断增加。目前网站每天的访问量 PV 10000 左右,UV 1500 左右,既然这么多人喜欢,那么这个项目就不完全属于我了,我决定发起一个问卷调查,看看大家想要什么功能,针对性的进行功能迭代。
功能更新
我使用腾讯在线问卷发起一个功能投票,并把链接放到网站上。一段时间后我收到了80多份用户建议数据,进行分类统计后。对呼声较高的功能一一实现,下面是详细更新内容。

壁纸详情
过去,用户在首页只能看到壁纸缩略图,可以直接下载,但是没有关于图片的更多信息。这就导致用户觉得这个图片风景不错,是什么地方呢?不知道。

现在用户可以在壁纸详情页了解壁纸的作者、壁纸内容说明信息。这让用户不仅能欣赏到美丽的壁纸,还能了解它背后的故事。
壁纸搜索功能
其实我觉得这一点壁纸数量,壁纸内容又非常简单,很难有不错的搜索效果,但是还是实现了一些。现在在菜单栏将可以通过输入关键字来快速检索想要的壁纸。不再让你陷入“我之前见过一张非常好看的壁纸,但我忘了是什么了”的苦恼中。
搜索使用的是一个轻量级的模糊搜索 Js 库,因为壁纸数据其实不大。可以前端直接加载。
这里使用的是 Fuse.js。
下面是它的开源地址:https://github.com/krisk/Fuse
自适应的全屏显示
不少用户希望能够将我们的壁纸项目作为浏览器的首页,但之前的显示效果有些局限。对此,优化了页面布局,确保无论是在电脑、平板,还是手机上,首页都是全屏展示。

日期翻页浏览
壁纸每天一张,如果看多个壁纸,那么需要一个一个点击进入壁纸详情页,因此很多用户想要在详情页通过按下方向按键直接跳转昨天或者下一天的壁纸。
为了让用户体验更流畅,也实现了这个功能。
你可以到任意一个页面然后按下左右键翻页浏览图片。
如:https://bing.wdbyte.com/zh-cn/day/202404/30
夜间模式
无需多说,夜间浏览,保护眼睛。

夜间模式通过开源 JS 库 darkmode.js 实现,引入这个库然后复制粘贴初始化代码,就会得到一个可以打开和关闭暗黑模式的小部件。也可以通过编程方式使用它,非常轻量,只有 3kb 大小。
他们的官网:https://darkmodejs.learn.uno/
登录收藏功能
想要将喜爱的壁纸保存下来,却又怕下次丢失了找不到?这次更新后允许用户登录后进行收藏。当遇见中意的壁纸时,只需一个简单的点击,即可将其收藏起来,在想要回顾时候轻松找到。

登录功能需要后端实现,之前写过一篇关于如何通过微信公众号扫码登录网站?的文章。这次的登录功能是相似的,但是个人公众号微信没有开放获取扫码登录二维码的权限。只能采用曲线救国的方式,用户输入数字验证码,同时浏览器向后端监听验证状态,这在用户量小的情况下没有问题。

最后欢迎你的访问:https://bing.wdbyte.com
写在末尾
公众号:程序猿阿朗
开源地址:https://github.com/niumoo/bing-wallpaper
壁纸网站:https://bing.wdbyte.com
2000 Star,是时候为我的开源项目更新下功能了的更多相关文章
- 微人事 star 数超 10k,如何打造一个 star 数超 10k 的开源项目
看了下,微人事(https://github.com/lenve/vhr)项目 star 数超 10k 啦,松哥第一个 star 数过万的开源项目就这样诞生了. 两年前差不多就是现在这个时候,松哥所在 ...
- 5 天 4000 star 的一个爆款开源项目
今天早上起来浏览 GitHub 的时候,在周热门趋势排行榜上看到了这么一个开源项目,仅仅 5 天时间,爬到了周排行榜的第一名的位置.而在每天的排行榜上,今天一早也高高位居排行榜的第二位. 这个开源项目 ...
- Github上关于iOS的各种开源项目集合(强烈建议大家收藏,查看,总有一款你需要)
下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件. SVPullToRefresh - 下拉刷新控件. MJRefresh - 仅需一行代码就可以为UITableVie ...
- GitHub上史上最全的Android开源项目分类汇总 (转)
GitHub上史上最全的Android开源项目分类汇总 标签: github android 开源 | 发表时间:2014-11-23 23:00 | 作者:u013149325 分享到: 出处:ht ...
- iOS及Mac开源项目和学习资料【超级全面】
UI 下拉刷新 EGOTableViewPullRefresh – 最早的下拉刷新控件. SVPullToRefresh – 下拉刷新控件. MJRefresh – 仅需一行代码就可以为UITable ...
- GitHub上史上最全的Android开源项目分类汇总
今天在看博客的时候,无意中发现了 @Trinea 在GitHub上的一个项目 Android开源项目分类汇总 ,由于类容太多了,我没有一个个完整地看完,但是里面介绍的开源项目都非常有参考价值,包括很炫 ...
- Android开源项目第一篇——个性化控件(View)篇
本文为那些不错的Android开源项目第一篇——个性化控件(View)篇,主要介绍Android上那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Ga ...
- iOS开发--iOS及Mac开源项目和学习资料
文/零距离仰望星空(简书作者)原文链接:http://www.jianshu.com/p/f6cdbc8192ba著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 原文出处:codecl ...
- Android开发UI之开源项目第一篇——个性化控件(View)篇
原文:http://blog.csdn.net/java886o/article/details/24355907 本文为那些不错的Android开源项目第一篇——个性化控件(View)篇,主要介绍A ...
- iOS、mac开源项目及库汇总
原文地址:http://blog.csdn.net/qq_26359763/article/details/51076499 iOS每日一记------------之 中级完美大整理 iOS.m ...
随机推荐
- Kubernetes Deployment控制器(二十)
前面我们学习了 ReplicaSet 控制器,了解到该控制器是用来维护集群中运行的 Pod 数量的,但是往往在实际操作的时候,我们反而不会去直接使用 RS,而是会使用更上层的控制器,比如我们今天要学习 ...
- const` 关键字位于函数签名的末尾
在 C++ 中,const 关键字可以应用于成员函数,表示该函数不会修改对象的成员变量. const 出现在 operator->() 成员函数的末尾,这意味着该成员函数在调用时不会修改对象的任 ...
- 八字测算引流seo程序php网页版黄历/排盘/抽签/星座/生肖/解梦整站程序分享
2演示站: https://s31.yczfcn.com/ 2源码说明: 1.手机端和PC端共两套模板,手机端访问时候自动跳转至手机端模板和域名. 2.本程序包含文章系统,结合自身的免费测算功能,适合 ...
- 欢迎体验程序员Lingma的助攻手
如果你是一位软件开发者,(同义灵码)Lingma可以帮助你做基础架构的脚手架相关工作事宜以及部分代码开发,对比之前没有灵码,现在提效了她可以给予你零编码的快感,准确快速地读懂了你我的需求,例如答问场景 ...
- SVN上的修改提交时间、作者以及简单的SVN操作说明
情况说明 因为部分SVN记录上传时间不符合规范,需要修改因此有这个需求.默认情况下SVN是不允许修改时间和作者信息,需要服务器进行配置. 一.服务的配置变更 我用的是Windows版本,在这个地方配置 ...
- Mysql导出文本文件
使用mysqldump命令导出文本文件 mysqldump -u root -pPassword -T 目标目录 dbname [tables] [option]; 其中: Password 参数表示 ...
- 一文彻底弄懂spring boot自动转配的过程
Spring Boot 的自动配置机制是它的重要特性之一,极大地简化了 Spring 应用的配置工作.自动配置的核心思想是基于类路径中的依赖.环境配置以及自定义代码进行智能化配置,避免了开发者手动编写 ...
- JS实现斐波那契数列的几种方法及代码优化
一.斐波那契数定义 斐波那契数列又被称为黄金分割数列,指 1,1,2,3,5,8,13,21,... 等数列. 在数学中有递推的方法定义: F(0)=0,F(1)=1, F(2)=1,F(n)=F(n ...
- github/gitee个人博客到底是什么一个运行原理?
本文主要讲的是GitHub.Gitee这样的代码存储网站上提供的个人博客建站的原理分析,需要注意的是,本文并不介绍GitHub.Gitee上建立个人blog的操作步骤,本文只介绍原理,不介绍实操步骤. ...
- python 中的[:-1]和[::-1]的具体使用
案例 a='python' b=a[::-1] print(b) #nohtyp c=a[::-2] print(c) #nhy #从后往前数的话,最后一个位置为-1 d=a[:-1] #从位置0到位 ...