Ruby 写了一个小工具 Gstar,帮助你搜索在 github 上 star 过的项目

kayakjiang · 2013年10月08日 · 最后由 wcp1231 回复于 2013年10月09日 · 7717 次阅读

一不小心在 github 上 star 过的项目将近 800 个了,我发现从这 800 个项目里找出我需要的项目不是一件容易的事情了,比如说印象里我有 star 过几个关于中文分词的 project,当我用 github 自带的搜星功能去搜索'中文分词'时,却发现什么也找不到,

那就动手自己写一个搜星工具吧。通过 Gstar 搜索'中文分词',

安装

一. git clone https://github.com/baya/Gstar.git

二. cd Gstar/ground

三. bundle install

四. rake db:migrate

五. cp config/github.example.yml config/github.yml

在 config/github.yml 里有三个配置,其中 login 为必填项,access_token 和 password 选一个填写即可, login 和 password 分别是你用来登录 github 的用户名和密码,access_token 可以通过下面的步骤得到,

  • 点击 Account Settings,进入帐号设置页面
  • 选择左侧栏的 Applications 导航,可以看到 Personal Access Tokens 这个设置,点击右上角的 Create new token 生 成新的 access_token 即可。

六. rake maintain:pull_stars_from_github # 将你 star 过的项目从 github 拉到本地数据库

七. whenever --update # 启动定时任务,每分钟检查一次你是否有新的 star 项目

八. rackup -p 9292

九. 使用浏览器访问 http://localhost:9292

注意操作三到八都是在 Gstar/ground 目录下进行的。

功能特点

1. 准确快速的搜索

github 自带的搜星功能不是特别好用,比如说我想找出我收藏的 (github 的标星功能对我来说就是收藏) 与 markdown 有关的项目,使用 github 自带的搜星功能只能找到一个叫 miclle/Markdown-Editor 的项目,因为 github 是通过项目的名字进行搜索,这导致很多与 markdown 有关的项目被忽略了,但是使用 Gstar 搜索 markdown 能找到 11 个与 markdown 有关的项目,因为 Gstar 对项目名和项目描述都进行搜索,这样比 github 更准确些。

github 的搜星:

gstar 的搜星:

2.可以修改项目的描述 (description),实现类似于打标签的功能

比如说我给 karmi/tire 这个项目的描述加上"搜索",那么我就可以通过搜索"搜索"找到 tire 这个项目了。

3.自动更新 starred projects

Gstar 自带一个定时任务,每一分钟会去 github 那检查是否有新的 stars,如果有就会拉到本地,建立索引,方便你以后搜索使用。

参考资料

github api

ruby 正则匹配中文

sequel 相关知识

angular js 分页

这个好啊,附带了参考资料了,一般我看完就忘了……

#1 楼 @nightire 哈哈我也是当作备份

github 的 api 有一定时间内使用次数的限制,如果是多用户的话,在同步 start 的时候如何解决有可能出现的 api 无法调用的问题?

做个 Alfred 插件吧,web 的话可用性很低

#3 楼 @ywjno 嗯 github 对 api 的调用确实有限制,http://developer.github.com/v3/#rate-limiting, 这个我还没有考虑过,如果你的应用确实需要大量调用 api 时,可以和 github 联系叫他们帮你提高调用限制

#4 楼 @xlaok web 可用性还好吧,至少能够跨平台,Alfred 只支持 mac os,并且还需要掏钱买 powerpack。

不错不错,github 的基本都搜不到

想起我朋友用油猴修改淘宝的搜索,我想油猴应该也可以改这个吧 今天重新看帖子,学习了!

需要 登录 后方可回复, 如果你还没有账号请 注册新账号