同事看到我在浏览器中看东西:“很高兴你不忙;我需要你做这个、这个、这个……”
同事看到我专注地盯着命令提示符:后退,慢慢地......
-来源
查看这篇黑客新闻帖子中有关haxor-news
讨论。
haxor-news
将黑客新闻带到终端,允许您在不离开命令行的情况下查看/过滤以下内容:
haxor-news
可帮助您过滤热门帖子生成的大量评论。
-cu/--comments_unseen
-cr/--comments_recent
-cq/--comments_query [query]
正在找工作或只是好奇外面有什么?过滤每月正在招聘的人和自由职业者的帖子:
$ hn hiring "(?i)(Node|JavaScript).*(remote)" > remote_web_jobs.txt
将haxor-news
与管道、重定向和其他命令行实用程序结合起来。输出到寻呼机、写入文件、使用 cron 实现自动化等。
haxor-news
附带一个方便的可选自动完成器和交互式帮助:
用法:
$ hn <command> [params] [options]
或者,您可以启用鱼式补全和带有交互式帮助的自动补全菜单:
$ haxor-news
如果可用,自动完成器还会通过寻呼机自动显示注释。
在自动完成器中,应用相同的语法:
haxor> hn <command> [params] [options]
您可以通过更新~/.haxornewsconfig
文件来控制用于突出显示的 ansi 颜色。
颜色选项包括:
'black', 'red', 'green', 'yellow',
'blue', 'magenta', 'cyan', 'white'
如果没有颜色,请将值设置为None
。
查看热门、最佳、显示、询问、职位、新帖子和洋葱帖子。
用法:
$ hn [command] [limit] # post limit default: 10
示例:
$ hn top
$ hn show 20
查看帖子列表后,您可以通过引用帖子#
查看帖子的链接网页内容。
帖子链接的 HTML 内容经过格式化,以便在您的终端中轻松查看。如果可用,格式化的输出将发送到寻呼机。
请参阅“在浏览器中查看”部分以在浏览器中查看内容。
用法:
$ hn view [#]
例子:
$ hn view 1
$ hn view 8
查看帖子列表后,您可以通过引用帖子#
查看帖子的评论。
示例:
$ hn view 8 -c
$ hn view 8 --comments > comments.txt
如果使用自动完成程序运行,注释会自动分页。要在没有自动完成器的情况下获得相同的分页,请附加| less -r
:
$ hn view 8 -c | less -r
过滤评论以仅展开您尚未看到的评论。未见的注释用[!]
表示并完全展开。
已看到的评论将被 [...] 截断,并将显示以帮助为未见的评论提供上下文。
示例:
$ hn view 8 -cu
$ hn view 8 --comments_unseen | less -r
过滤评论以仅展开过去 60 分钟内发布的评论。
较早的评论将被 [...] 截断,并将显示以帮助为最近的评论提供上下文。
示例:
$ hn view 8 -cr | less -r
$ hn view 8 --comments_recent
根据给定的正则表达式查询过滤评论。
示例:
$ hn view 2 -cq "(?i)programmer" | less -r
$ hn view 2 --comments_regex_query "(?i)programmer" > programmer.txt
不区分大小写的正则表达式:( (?i)
当过滤未见过的、最近的或使用正则表达式的评论时,不匹配的评论将被折叠以提供上下文。要隐藏不匹配的注释,请传递-ch--comments_hide
标志。隐藏的评论将显示为.
。
例子:
$ hn view 8 -cu -ch | less -r
黑客新闻每月都会发布招聘帖子,雇主会在其中发布最新的职位空缺。
用法:
$ hn hiring [regex filter]
示例:
$ hn hiring ""
$ hn hiring "(?i)JavaScript|Node"
$ hn hiring "(?i)(Node|JavaScript).*(remote)" > remote_jobs.txt
不区分大小写的正则表达式:( (?i)
要搜索除最新招聘帖子以外的其他每月招聘帖子,请使用招聘帖子 ID。
用法:
$ hn hiring [regex filter] [post id]
《黑客新闻》每月都会发布一篇自由职业者帖子,雇主和自由职业者会在其中发布职位空缺信息。
用法:
$ hn freelance [regex filter]
示例:
$ hn freelance ""
$ hn freelance "(?i)JavaScript|Node"
$ hn freelance "(?i)(Node|JavaScript).*(remote)" > remote_jobs.txt
不区分大小写的正则表达式:( (?i)
要搜索除最新招聘帖子以外的其他每月招聘帖子,请使用招聘帖子 ID。
用法:
$ hn freelance [regex filter] [post id]
输出到寻呼机、写入文件、使用 cron 实现自动化等。
示例:
$ hn view 1 -c | less
$ hn freelance "(?i)(Node|JavaScript).*(remote)" > remote_jobs.txt
用法:
$ hn user [user id]
用法:
$ hn onion [limit] # post limit default: all
在默认浏览器而不是终端中查看链接的网页内容或评论。
用法:
$ hn <command> [params] [options] -b
$ hn <command> [params] [options] --browser
haxor-news
已在 Windows 10 上进行了测试。
Windows 上的寻呼机支持更加有限,如下面的票证中所述。用户可以使用| more
将输出直接输出到寻呼机。 | more
命令:
$ hn view 1 -c | more
在 Windows 上, .haxornewsconfig
文件可以在%userprofile%
中找到。例如:
C:Usersdmartin.haxornewsconfig
cmder
和conemu
尽管您可以使用标准 Windows 命令提示符,但使用 cmder 或 conemu 可能会获得更好的体验。
haxor-news
托管在 PyPI 上。以下命令将安装haxor-news
:
$ pip install haxor-news
您还可以从 GitHub 源安装最新的haxor-news
其中可能包含尚未推送到 PyPI 的更改:
$ pip install git+https://github.com/donnemartin/haxor-news.git
如果您没有在 virtualenv 中安装,请使用sudo
运行:
$ sudo pip install haxor-news
安装后,运行可选的haxor-news
自动完成程序并提供交互式帮助:
$ haxor-news
运行命令:
$ hn <command> [params] [options]
建议您在 virtualenv 中安装 Python 包,以避免潜在的依赖项或权限问题。
要查看haxor-news
virtualenv
安装说明,请单击此处。
Apple 及其包含的 python 包依赖项存在一个已知问题(更多信息请参见 pypa/pip#3165)。我们正在研究解决此问题的方法,但与此同时,要安装 haxor-news,您可以运行:
$ sudo pip install haxor-news --upgrade --ignore-installed six
如果您有兴趣为haxor-news
做出贡献,请运行以下命令:
$ git clone https://github.com/donnemartin/haxor-news.git
$ pip install -e .
$ pip install -r requirements-dev.txt
$ haxor-news
$ hn <command> [params] [options]
Travis CI 上提供了持续集成详细信息。
在活动的 Python 环境中运行单元测试:
$ python tests/run_tests.py
在多个 Python 环境中使用 tox 运行单元测试:
$ tox
源代码文档很快将在 Readthedocs.org 上提供。查看源文档字符串。
运行以下命令来构建文档:
$ scripts/update_docs.sh
欢迎贡献!
查看贡献指南,了解有关如何执行以下操作的详细信息:
请随时与我联系讨论任何问题、疑问或意见。
我的联系信息可以在我的 GitHub 页面上找到。
我根据开源许可证向您提供此存储库中的代码和资源。因为这是我的个人存储库,所以您收到的我的代码和资源的许可证来自我,而不是我的雇主 (Facebook)。
Copyright 2015 Donne Martin
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.