说实话其实起这么个标题有点名过其实了,其实这仅仅是一个开源的前端小应用(不过想不出有什么别的标题),能够帮助你在 Windows、macOS、Android 以及 iOS 下下载不同的应用。因为实现原理的原因,暂时不支持任何 Linux
系统。
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
1
wafm 2018-08-03 02:16:58 +08:00
资瓷资瓷,这可以算作是新一代的下载站吧
|
2
Yien 2018-08-03 02:34:24 +08:00 via Android
Cool !
|
3
nciyuan 2018-08-03 04:05:29 +08:00 via Android
楼主脑洞其实实在是清奇,我之前也做过一个类似的,不过是关于开源软件的文档,以及开源软件静态 CDN,目前该网站已扔给我们的低频存储存档站吃灰,源码已进入 localhost 模式。首先请问我能把您的这个获取方式称作程序员的 RESTful 形式艺术性下载吗?
首先我觉得这个轮子海星,然后 Watch 和 Star 一下。其次是您这个命名实在是太有趣了,就怕电脑要是王者荣耀,手机访问 VisualStudio 怎么办? 虽然这个是很 restful 的 URI,但是没有多少软件能真正牛逼哄哄的兼容全平台,另外我看您自动识别了电报,然后弹出 ss,可是 ios 本身锁区,特别是贵州政府强 X 了苹果之后,iTunes 的 us 的 URL 自动 404。 另外命名有趣在何处呢?比如 Souhu Video > souhushipi。张朝阳那么给你们纠正,搜狗还 sougou,搜狐还 souhu ?另外很多时候官方名字就很混乱,比如 weixin.qq.com ,英文 WeChat,项目名 MicroMsg。 还有云音乐,现在可以不和网易这个词绑定出现,但是我刚才打 yunyinyue,告诉我 404。 所以我想说的是万物皆 get 一点也不现实,光靠一节 RESTful 内容存在很多歧义,另外真心希望有规范的编排.... |
4
ETiV 2018-08-03 04:52:04 +08:00
macOS 有 brew cask install XXX ~
|
5
LuvF 2018-08-03 07:15:31 +08:00 via Android
挺难的。。拿 Firefox 举例,Windows 上有 32 位和 64 位的,版本有 stable,enterprise,beta 和 nightly,语言就不说了,但是仅仅中文就也有国际版和国内版。。。。。
|
6
Tink 2018-08-03 08:04:36 +08:00 via iPhone
版本能区分吗?比如说非主流版本,另外这个是缓存到本地存储还是直接从官方服务器下载呢
|
7
artandlol 2018-08-03 08:16:01 +08:00
|
8
geekzu 2018-08-03 09:19:58 +08:00 via Android
域名真好…
|
9
imhx233 OP @nciyuan 首先非常感谢您的回复。
关于定义这方面,我其实不是太清楚您的意思。 如果访问的平台不支持某个软件,比如如您所说在手机上访问 [vscode]( https://get.js.org/vscode), 则会有错误提示 ` alert("This app does not work on your device.");` ,您可以参见[这里]( https://raw.githubusercontent.com/hxco/Get/master/_posts/vscode/2018-7-15-vscode.md)。而没有用更美观的弹窗(错误提示)的原因只是希望让代码体积尽可能小。 关于锁区,事实上在我早期做这个程序的 `1.0` 初始版本的时候,我是完全在墙外环境做的,所以并没有发现会 `404`,反而是最近几天才发现,还疑惑诶这些软件下架了吗……今天听你一说才明白了。 关于搜狐视频那里,纯粹是初期 typo,谅解下~ 命名混乱那里,考虑到很多人会有不同的读法,目前仅仅使用 全名全拼 + 全拼简写 + 英文名成 三个方式创建 alias,另外我自己来说,我从来真的只会叫网易云音乐全称本身,并不会对别人说 “诶你用 QQ 音乐还是云音乐啊?”这样的话。 这个项目肯定会持续维护,至少到软件支持的七七八八,然后本身也没什么错漏,才会停止积极的维护。 非常感谢您的意见!也非常感谢关注我的项目~ |
10
imhx233 OP @LuvF 是的,Firefox 是这个项目前五个被支持的软件之一,初期的想法没那么成熟,所以后期会针对所有含有 Beta 版本的软件再次适配。
|
12
imhx233 OP 诶回复不支持 markdown 的吗!!!!
|
13
imhx233 OP @Tink 我很弱的……这个项目更是纯前端的项目,没有传统意义上的后端,所以也无法缓存。就算可以……以我那么点服务器还是算了。所以目前是获取官方源实现的。
|
14
imhx233 OP @artandlol 这个项目其实并不只是简单的 Google Chrome 镜像什么的 ==,Google 默认下载域名国内绝大部分地方经过测试都可以正常访问,参见 https://get.js.org/googlechrome
|
15
Lanke0 2018-08-03 09:41:27 +08:00
感觉还行,挺不错
|
17
coffeemayor 2018-08-03 09:54:36 +08:00
|
18
xxx749 2018-08-03 09:57:02 +08:00 via Android
已星,移动端打开文字会错位,望周知
|
20
imhx233 OP @coffeemayor 谢谢你,记得注明下出处~
|
21
coffeemayor 2018-08-03 10:04:57 +08:00
@imhx233 出处地址 写上了 (*^__^*) 嘻嘻
|
22
boxove 2018-08-03 10:28:26 +08:00
支持一下
|
23
imhx233 OP @boxove 谢谢~如果喜欢的话可以给个 star | https://github.com/hxco/Get
|
24
zn 2018-08-03 10:43:48 +08:00
我就想知道这域名怎么搞来的。
|
25
imhx233 OP @zn 可以参考 https://js.org
|
26
nciyuan 2018-08-03 11:08:54 +08:00 via Android 1
@geekzu js.org 是开放免费的一个服务
@imhx233 另外如果有这种下载服务,建议使用 RESTful 的命名方式,比如 get.js.org/firefox/x64/stable。为获得更佳体验,以多数服从基础,假设简单粗暴的 GET /firefox HTTP/1.1 https://get.js.org ,那么默认就是以稳定版为基础,以 x86 兼容性为佳,以网页 accept language 的 zh-cn 和 UA 中的内容就提供 32 位中文稳定版 Firefox。 但是人工添加真的感觉补星,首先是上面的不同用户对于产品名理解不同,再一多了这真的是噩梦... 另外锁区的不仅仅是苹果,谷歌也一样,比如中文简体环境在部分情况下搜不到谷歌注音输入法。 另外是 @Tink 的观点作者是不是还得考虑一下? 有些厂商会给一个中转链接,下到最新版本,比如 360 就一直是 down.360safe.com/inst.exe ,网易云音乐有 music.163.com/api/pc/download/latest,但是还有很多的没有呢 |
27
imhx233 OP |
28
hg 2018-08-03 12:36:32 +08:00
基于 useragent 的短网址?
|
29
imhx233 OP @hg 抱歉,并不是。您可以阅读文档: https://github.com/hxco/Get/blob/master/README-CN.md
|
30
youngxu 2018-08-03 13:37:14 +08:00 via Android
点开这个应用列表链接会跳转到 github,看不了应用列表
https://get.js.org/apps |
31
orangeade 2018-08-03 13:40:18 +08:00 via Android
360 的源下 Chrome ……算了
|
34
netyjq 2018-08-03 15:21:55 +08:00
已 start
|
36
sobigfish 2018-08-03 18:59:08 +08:00
建议在页面里也显示下载地址, 更能让用户放心
|
38
sobigfish 2018-08-03 19:07:17 +08:00
有些会提示如果下载失败 提供链接手动下载
|
40
eeeeeee 2018-08-03 21:33:33 +08:00
Star 举报一气呵成 :doge
|
42
chemzqm 2018-08-04 00:44:20 +08:00
https://get.js.org/vim 404 可以差评吗
|
43
huson 2018-08-04 01:28:47 +08:00
楼主这个很赞 解决了很多痛点 特别是很多小白朋友都去百度下载的 第三方重新打包的非官方软件,有这个就很方便了
|
46
xitiecheng 2018-08-04 09:23:52 +08:00
后面支持的软件多了,是不是得加个搜索的功能
|
47
omph 2018-08-04 12:52:51 +08:00
有点类似 linux 的 yum,不过用的 b/s 模式,有乐趣
|
48
imhx233 OP @xitiecheng 可能会添加 但是目前已经可以按照字母顺序排序了,请见 https://get.js.org/apps
|
50
Hubs 2018-08-04 15:54:59 +08:00
如果能抓取下载链接的话,那么下载 APP 的历史版本应该不难实现!
那么如果有弹出二级菜单选择下载 APP 的历史版本就更完美了! |
51
imhx233 OP |
52
Shazoo 2018-08-05 09:37:46 +08:00
霸气十足……
Your download should begin automatically. If it doesn't, upgrade your browser. |
53
imhx233 OP @chemzqm VIM 目前已经支持! https://get.js.org/vim
|
55
nicoljiang 2018-08-07 14:57:15 +08:00
楼主能不能加一个私人的联系方式。
最近在思考的东西和你做的刚好类似~希望能碰撞一些想法。 顺便也想公益支持一下这个项目, 包括但不限于: 1、x.soft.org 域名的永久免费使用权(虽然你已经开源,我可以自己部署一套,但还是希望能合作); 2、一台不高于 2C4G 的 VPS ( Linode 或 Google Cloud ) 3、包括目前优化的很完善的全球化 Anycast 内容加速架构。这套架构对动态内容的加速不仅比 CloudFlare 商业版的 RailGun 还要好,并且对国内的支持也是很优秀的( via Google ); 4、如果不想要使用我的域名,那希望保留一个赞助方的链接。 我的考虑和所图: 1、为 soft.org 项目养养域名; 2、结交朋友,或许能找到一起做 soft.org 的人; 3、这个项目有点意思,消耗的资源也不是很大,希望有一套。 我的私人微信:bmljb2xqaWFuZw==。希望能一起交流很多的想法。 |
56
imhx233 OP @nicoljiang 首先非常感谢您的支持合作!
get.js.org 这个域名属于 js.org 的主人,也就是说不是我的。这个域名下的所有子域名仅仅可以被通过 GitHub Pages (可以选择加上 Cloudflare 商业版)托管,目前 get.js.org 就是这种方案。 其次,您的想法和我不谋而合。非常感谢您能够赞助云资源。域名方面,我想使用 get.soft.org ,是否可以? 最后,如果我们能够成功合作,毋庸置疑,您的赞助信息一定会被展示在项目相关的地方~ |
57
imhx233 OP |
58
nicoljiang 2018-08-07 16:10:10 +08:00
已加。
|
59
imhx233 OP @nicoljiang 抱歉我把我 QQ 号码打错了…… 是 1031092401 非常抱歉……
|
60
nicoljiang 2018-08-07 16:49:30 +08:00
@imhx233 已加。我的微信是 base64
|
61
leoleoasd 2018-08-08 20:00:07 +08:00
建议,比如:
get.js.org/xxx 自动到 github 爬取所有名字是 xxx 的项目,按照 star 排序,取 star 数量大于某熟知的项目,筛选出 releases 中对应平台的最新版二进制包,如果同时存在多个项目,提供选项给用户 |
62
leoleoasd 2018-08-08 20:01:41 +08:00
如果根据名字爬取 github 的 repo 比较困难,可以考虑新建一个仓库,内部是软件名字-仓库地址的 mappings,通过 pull request 维护这个列表
|
63
imhx233 OP @leoleoasd 如果有需求增加支持的 app,您可以给 https://github.com/hxco/Get 提交 PR。像 GitHub 按照 Stars 数量排序这个感觉不合理,毕竟一个项目不是 Star 越多月优秀的。并且本项目的思想在于 “获取最新”,虽然对 GitHub 的开源程序也有一定的支持,但是大部分支持的还是日常使用的、并非开源的软件。
|
64
leoleoasd 2018-08-09 18:50:23 +08:00
@imhx233 我的意思是 数据存在一个新的仓库里,json 格式(比如),网站在被访问的时候实时读取仓库中最新的 json。数据和代码放到同一个仓库中,就会有很大的代码重复(比如您判断客户端的代码)
|
66
leoleoasd 2018-08-09 22:27:41 +08:00
@imhx233 需要伪静态,貌似你的部署方式做不到
不明白这样一个项目为什么要用 jetyll 做 如果服务器支持伪静态的话 我可以重构一下 来做到我提到的效果 大致: 无论访问什么 url,xshelll 也好,zsh 也好,只返回同一个 js js 内容: 获取 url 末尾的软件名称,链接 github api 读取下载链接,下载 |
67
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/ |
68
imhx233 OP @leoleoasd 这个会覆盖非开源的软件,建议开一个目录,例如 https://get.js.org/github/xxx 这样
|
69
leoleoasd 2018-08-10 18:50:52 +08:00
|
70
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 里的配置地址 这样维护起来方便 也方便别人贡献 |
71
imhx233 OP @leoleoasd 明白了,(因为您之前提到过适配全 GitHub 的 repo,根据 star 排名什么的)。这涉及到比较大的架构修改,目前我的能力不足以做到。
|
74
jemyzhang 2018-08-11 19:39:24 +08:00
https://get.js.org/chrome ubuntu 自动下载了 exe...
|
75
imhx233 OP @jemyzhang 哈哈,目前不打算支持任何 Linux 系统耶!(因为目的是方便个人使用~能用 Linux 的都是大佬啦!)
|