首个正式开源项目: HXCO Get - 万物皆可 Get

2018-08-03 02:10:59 +08:00
 imhx233

说实话其实起这么个标题有点名过其实了,其实这仅仅是一个开源的前端小应用(不过想不出有什么别的标题),能够帮助你在 Windows、macOS、Android 以及 iOS 下下载不同的应用。因为实现原理的原因,暂时不支持任何 Linux 系统。

官网:https://get.js.org

应用列表:https://get.js.org/apps

GitHub:https://github.com/hxco/Get

中文文档:https://github.com/hxco/Get/blob/master/README-CN.md

英文文档:https://github.com/hxco/Get/blob/master/README.md

原理是通过简单的 Javascript 代码判断操作系统,再重定向到预先抓取的下载地址。HTML 代码生成依赖 Jekyll,实现了自动压缩。

这个项目最初的想法,仅仅是一个能够下载 Google Chrome 最新版本的网页;后来,又想着把 Firefox 也加上。最后,我适配了非常多的应用,并且将会在未来适配更多。

这个项目对于普通人来说,使用方式非常的简单,你仅仅需要记住 get.js.org 这个网址,get = 获取,js = JavaScript,org = organization (组织),然后在浏览器里面输入:get.js.org/应用名称,如 get.js.org/chrome 还是什么别的。[get.js.org]使用 https 协议,并且会将不安全的 http 协议强制重定向为 https,所以在实际使用的时候不必带上 https:// 前缀。

斜杠后面的部分,是应用名称,这里可以以三种方式呈现——以“网易云音乐”为例子:

https://get.js.org/wangyiyunyinyue - “网易云音乐的拼音”

https://get.js.org/wyyyy - ”网易云音乐拼音的首字母简写“

https://get.js.org/cloudmusic - ”网易云音乐的英文名“

综上 - 获取一个应用的方式可以使用拼音全名,拼音缩写,以及英文名称。请注意,任何情况下,https://get.js.org/ 后面的应用名称不带有大写字母,也不带有任何空格。

这个项目会持续维护,并且我衷心希望它能帮到在座的各位 - 在重装系统需要安装软件的时候……

https://get.js.org/chrome
https://get.js.org/tim
https://get.js.org/wechat
https://get.js.org/wangyiyunyinyue
https://get.js.org/qqyinyue
https://get.js.org/potplayer
https://get.js.org/vscode
https://get.js.org/ssr
https://get.js.org/telegram
https://get.js.org/word
https://get.js.org/excel
https://get.js.org/powerpoint
https://get.js.org/steam
https://get.js.org/origin
https://get.js.org/uplay
https://get.js.org/thunder9
https://get.js.org/itunes

然后这么一来你需要的软件的安装包都可以下载下来了,无论你在使用哪个系统。

如果想要新增应用支持,或者使用过程中遇到任何问题,请到 https://github.com/hxco/Get/issues 打开一个 issue

这个项目是本人第一个正式的开源项目,是作为博客运行一周年的礼物送给自己和博客,也获得了数位小伙伴的支持。在这里感谢目前唯二的项目协作者:@KeJun @XTL,同时感谢给予我建议和支持的 @小霖@折影轻梦 以及 @黎明余光

欢迎各位大佬使用,如果有不足之处请不吝赐教。谢谢各位!

相关博文:https://tech.hxco.de/announcement/to-meet-you-in-one-year.html

8173 次点击
所在节点    分享创造
75 条回复
leoleoasd
2018-08-08 20:00:07 +08:00
建议,比如:
get.js.org/xxx
自动到 github 爬取所有名字是 xxx 的项目,按照 star 排序,取 star 数量大于某熟知的项目,筛选出 releases 中对应平台的最新版二进制包,如果同时存在多个项目,提供选项给用户
leoleoasd
2018-08-08 20:01:41 +08:00
如果根据名字爬取 github 的 repo 比较困难,可以考虑新建一个仓库,内部是软件名字-仓库地址的 mappings,通过 pull request 维护这个列表
imhx233
2018-08-08 21:30:44 +08:00
@leoleoasd 如果有需求增加支持的 app,您可以给 https://github.com/hxco/Get 提交 PR。像 GitHub 按照 Stars 数量排序这个感觉不合理,毕竟一个项目不是 Star 越多月优秀的。并且本项目的思想在于 “获取最新”,虽然对 GitHub 的开源程序也有一定的支持,但是大部分支持的还是日常使用的、并非开源的软件。
leoleoasd
2018-08-09 18:50:23 +08:00
@imhx233 我的意思是 数据存在一个新的仓库里,json 格式(比如),网站在被访问的时候实时读取仓库中最新的 json。数据和代码放到同一个仓库中,就会有很大的代码重复(比如您判断客户端的代码)
imhx233
2018-08-09 21:26:47 +08:00
@leoleoasd 这是一个非常好的想法。如果您了解如何实现,请给代码仓库提交 PR。我们感激不尽。
leoleoasd
2018-08-09 22:27:41 +08:00
@imhx233 需要伪静态,貌似你的部署方式做不到
不明白这样一个项目为什么要用 jetyll 做
如果服务器支持伪静态的话 我可以重构一下 来做到我提到的效果
大致:
无论访问什么 url,xshelll 也好,zsh 也好,只返回同一个 js
js 内容: 获取 url 末尾的软件名称,链接 github api 读取下载链接,下载
leoleoasd
2018-08-09 22:32:11 +08:00
@imhx233 查了查 github pages 支持做到我需要的效果
使用它提供的自定义 404.html 功能,当访问不存在的路径时会打开自定义的 404.html 可以在这个 html 中嵌入 js 来做到我所需要的效果
参见: http://lea.verou.me/2016/11/url-rewriting-with-github-pages/
imhx233
2018-08-09 22:42:42 +08:00
@leoleoasd 这个会覆盖非开源的软件,建议开一个目录,例如 https://get.js.org/github/xxx 这样
leoleoasd
2018-08-10 18:50:52 +08:00
@imhx233 还是没明白我的意思。。。
你现在的所有软件全是以文章的形式存储的
每一个软件对应一个 js
我的意思是
把所有数据全部放到 json 里
比如
atom:{}
leoleoasd
2018-08-10 18:51:52 +08:00
@imhx233 还是没明白我的意思。。。
你现在的所有软件全是以文章的形式存储的
每一个软件对应一个 js
我的意思是
把所有数据全部放到 json 里
比如
atom:{
‘ macos ’:'https://atom.io/download/mac',
‘ windows ’:"https://atom.io/download/windows_x64"
}
程序判断 ua 后 读取 json 里的配置地址
这样维护起来方便
也方便别人贡献
imhx233
2018-08-10 19:09:00 +08:00
@leoleoasd 明白了,(因为您之前提到过适配全 GitHub 的 repo,根据 star 排名什么的)。这涉及到比较大的架构修改,目前我的能力不足以做到。
leoleoasd
2018-08-10 19:10:55 +08:00
@imhx233 写起来其实不麻烦,就是要全重构。。
别人写的话就没有你这么好的域名了 2333
imhx233
2018-08-11 17:06:21 +08:00
@leoleoasd 好的!
jemyzhang
2018-08-11 19:39:24 +08:00
https://get.js.org/chrome ubuntu 自动下载了 exe...
imhx233
2018-08-12 00:59:02 +08:00
@jemyzhang 哈哈,目前不打算支持任何 Linux 系统耶!(因为目的是方便个人使用~能用 Linux 的都是大佬啦!)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/476450

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX