Коллега, который видит, что я смотрю на что-то в браузере: «Рад, что ты не занят; мне нужно, чтобы ты сделал то, это, это…»
Коллега, который видит, что я пристально смотрю на командную строку: Медленно отходит назад...
-Источник
Ознакомьтесь с обсуждением haxor-news
в этом посте Hacker News.
haxor-news
выводит Hacker 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]
Вы можете управлять цветами ansi, используемыми для выделения, обновив файл ~/.haxornewsconfig
.
Варианты цвета включают в себя:
'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
Hacker News ежемесячно публикует пост о приеме на работу, где работодатели публикуют последние вакансии.
Использование:
$ hn hiring [regex filter]
Примеры:
$ hn hiring ""
$ hn hiring "(?i)JavaScript|Node"
$ hn hiring "(?i)(Node|JavaScript).*(remote)" > remote_jobs.txt
Регулярное выражение без учета регистра: (?i)
Для поиска другого ежемесячного сообщения о найме, отличного от самого последнего, используйте идентификатор сообщения о найме.
Использование:
$ hn hiring [regex filter] [post id]
Hacker News ежемесячно публикует публикацию о фрилансерах, где работодатели и фрилансеры публикуют информацию о наличии свободных мест.
Использование:
$ hn freelance [regex filter]
Примеры:
$ hn freelance ""
$ hn freelance "(?i)JavaScript|Node"
$ hn freelance "(?i)(Node|JavaScript).*(remote)" > remote_jobs.txt
Регулярное выражение без учета регистра: (?i)
Для поиска другого ежемесячного сообщения о найме, отличного от самого последнего, используйте идентификатор сообщения о найме.
Использование:
$ 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
команда:
$ 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
Вы также можете установить последние haxor-news
из источника GitHub, которые могут содержать изменения, еще не отправленные в PyPI:
$ pip install git+https://github.com/donnemartin/haxor-news.git
Если вы не устанавливаете виртуальную среду, запустите с помощью sudo
:
$ sudo pip install haxor-news
После установки запустите дополнительный автозаполнитель haxor-news
с интерактивной справкой:
$ haxor-news
Запускайте команды:
$ hn <command> [params] [options]
Рекомендуется устанавливать пакеты 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
Запустите модульные тесты с tox в нескольких средах Python:
$ 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.