___ ______ _ ____ ____ _ _
/ \ * | | /\ | | \ / | * | \ | \
\ \ | | /\ \ | |* / | | | | | |
\ \ | | /--\ \ | | \ | | | | | |
*_\./ ._| / ._\ |_| \_ \.|__. |_|_. |_|
从命令行浏览 Github 上的热门项目 $ _
功能
- 筛选条件
- 星标数
- 最后推送日期
- 创建日期
- 用户
- 主题
- 编程语言
- 自然语言
- 使用通用 GitHub 搜索 API 或 GitHub 趋势
- 认证令牌(可选)
- 分页输出
- 不同布局
先决条件
- 需要 Python 3.6 或更高版本
安装
pip3 install starcli
使用方法
用法: starcli [选项]
搜索和查询 GitHub 仓库
选项:
-l, --lang TEXT 编程语言筛选,例如:python。(可多次使用)
-S, --spoken-language TEXT 自然语言筛选,例如:en 表示英语,zh 表示中文
-c, --created TEXT 指定仓库创建日期,格式为 YYYY-MM-DD,
可使用 >date、<=date 等更具体的指定。
-t, --topic TEXT 主题筛选
-p, --pushed TEXT 指定最后推送日期,格式为 YYYY-MM-DD,允许使用 >=<
-L, --layout [list|table|grid] 输出格式(列表、表格或网格),默认为列表
-s, --stars TEXT 星标数,默认为 '>=100'。例如:
'>0'、'123'、'<50000'
-n, --num-results INTEGER 结果中的项目数量。默认值:7
-o, --order [desc|asc] 仓库按星标数排序,'desc' 或 'asc',
默认:desc
--long-stats 显示实际的统计数字(1300 而不是 1.3k)
-d, --date-range [day|week|month]
查看指定时间内获得的星标,可选:day、week、month。
使用 GitHub 趋势获取结果,因此某些其他
筛选选项可能不起作用。
-u, --user TEXT 按用户名筛选热门仓库
--auth TEXT 可选使用 GitHub 个人访问令牌,
格式为 'username:password'。
-P, --pager 使用 $PAGER 对输出进行分页。(在 $LESS 中
添加 -r 以启用 ANSI 样式)
--debug 开启调试模式
--help 显示此消息并退出。
布局
使用 --layout {list|table|grid}
切换布局,或使用简短选项 -L
列表
表格
网格
这三种布局选项都支持仓库名称的可点击链接。如果 你的终端支持链接,你可以直接点击名称,它会 在你的浏览器中打开相应的 GitHub 仓库。
按编程语言筛选
例如,如果你只想查找热门的 Python 仓库:使用 --lang
或 -l
:
starcli --lang python
这是另一个例子 starcli -l python -L grid
,使用 Python 和网格布局:
按自然语言筛选
如果你想找到使用你的母语编写的仓库,可以使用 --spoken-language
或 -S
选项:
starcli --spoken-language zh
上述命令会列出用中文编写的仓库。
完整的语言代码列表可以在这里找到。
请注意,(与 --date-range
一样)--topics
、--pushed
、--created
等选项不会生效,因为 -d
使用了不同的搜索机制来查找结果。
指定星标数量(或范围)
(建议与 --created
一起使用)
默认范围是大于等于100颗星。
使用 --stars
或 -s
来指定你想要的范围,例如,如果你想找到拥有超过100颗星的仓库,可以使用:
starcli -s '>100'
注意,如果你使用类似 >1000
的条件,可能没有多少仓库能在约200天内(这是 --created
的默认值)获得超过1000颗星。要指定创建日期,请使用 --created
,详见下文。
按日、周或月筛选星标
你可以通过使用 --date-range
或 -d
选项来查看仓库今天、本周或本月收到的星标数:
starcli -d this-week -L table
这个命令还会以表格形式显示每个仓库本周收到的星标数。
-d
使用GitHub趋势搜索仓库,因此 --topic
、--pushed
、--created
选项不会生效。
指定创建日期
--created
/-c
接受ISO8601格式的日期:yyyy-mm-dd
例如,要搜索2014年1月1日创建的仓库,使用:
starcli --created 2014-01-01
要搜索2014年1月1日或之后创建的仓库,使用:
starcli --created '>=2014-01-01'
按主题筛选
此选项允许你按主题筛选。你可以使用 --topics
或 -t
在搜索中包含一个主题。
此选项可以多次使用。
starcli -l python -d 2020-07-06 -t deep-learning -t pytorch
指定最后推送日期
当你想找到在指定日期最后更新的热门仓库时,使用 --pushed
/-p
,比如2020年1月1日:
starcli -p 2020-01-01
你也可以在值前加上">=<",像这样:
starcli -p '>=2020-01-01'
这会查找在2020年1月1日或之后最后推送的仓库。
在GitHub文档上阅读更多关于>=<语法的信息。
按用户搜索
建议与 --stars
和/或 --date-created
一起使用。
也支持按GitHub用户名查找热门项目。使用 --user
或 -u
来实现。
只需在后面提供一个有效的GitHub用户名,像这样:
starcli -u torvalds
starcli -u gvanrossum
使用日期范围
你可以使用 --date-range
或 -d
并指定today、this-week或this-month,这样GitHub趋势搜索功能将用于查找热门仓库,并告诉你根据你使用的选项,这一天/周/月获得了多少星标。
starcli -d this-week
请注意,(与 --spoken-language
类似)--topics
、--pushed
、--created
等选项不会生效,因为 -d
使用了不同的搜索机制来查找结果。
限制显示的结果数量
不喜欢默认的7个结果?你可以使用 --limit-results
或 -r
后跟一个整数来改变它:
starcli -r 2
上面的命令只会给你两个仓库。如果你想把它放在 .bashrc
、.zshrc
或 fish_greeting
函数中,这很有用。
只需在那里添加 starcli -r 3 -L grid
,每次打开终端时,你都会看到3个热门仓库整齐地以网格格式打印出来,这是开始新一天的好方法(有点像Hacker Tab 扩展)。
分页
可以使用 --pager
/-p
标志通过操作系统的分页器显示结果输出。
如果你使用less,请在 LESS
环境变量中添加 R
,以便正确显示颜色和样式。
GitHub认证
如果starcli在短时间内向GitHub发送多个重复请求,可能会达到速率限制。
为避免这种情况,请使用 --auth
提供认证令牌:
starcli --auth 'username:token'
问题、功能请求和反馈
- 问题、错误报告或功能请求:请随时在本仓库中提出issue
- 反馈:关于使用StarCLI的任何一般性反馈或问题,您可以在Product Hunt页面上留言评论
开发
有关贡献指南和如何设置开发环境,请阅读CONTRIBUTING.md
。请记住,对本项目的所有贡献都应遵循其行为准则。
使用的技术
贡献者 ✨
感谢这些优秀的人(emoji 图例):
本项目遵循all-contributors规范。欢迎任何形式的贡献!
致谢
本项目最初是从githunt
(Python版)分支而来,最初的目的是重写该项目以使用Rich代替colorama + tabulate。但现在,由于每个人的贡献,它已经拥有了比以前更多的功能。感谢所有人的贡献 🙌