Colega de trabalho que me vê olhando algo em um navegador: "Que bom que você não está ocupado; preciso que você faça isso, isso, isso..."
Colega de trabalho que me vê olhando atentamente para um prompt de comando: Afasta-se, lentamente...
-Fonte
Confira a discussão haxor-news
nesta postagem do Hacker News.
haxor-news
traz o Hacker News para o terminal, permitindo que você visualize / filtre o seguinte sem sair da linha de comando:
haxor-news
ajuda a filtrar o grande número de comentários gerados por postagens populares .
-cu/--comments_unseen
-cr/--comments_recent
-cq/--comments_query [query]
Procurando emprego ou apenas curioso para saber o que há por aí? Filtre a postagem mensal de quem está contratando e freelancers :
$ hn hiring "(?i)(Node|JavaScript).*(remote)" > remote_web_jobs.txt
Combine haxor-news
com pipes, redirecionamentos e outros utilitários de linha de comando. Saída para pagers, gravação em arquivos, automatização com cron, etc.
haxor-news
vem com um prático preenchimento automático opcional com ajuda interativa :
Uso:
$ hn <command> [params] [options]
Opcionalmente, você pode ativar preenchimentos em estilo peixe e um menu de preenchimento automático com ajuda interativa:
$ haxor-news
Se disponível, o preenchimento automático também exibe comentários automaticamente por meio de um pager.
Dentro do preenchimento automático, a mesma sintaxe se aplica:
haxor> hn <command> [params] [options]
Você pode controlar as cores ansi usadas para realce atualizando seu arquivo ~/.haxornewsconfig
.
As opções de cores incluem:
'black', 'red', 'green', 'yellow',
'blue', 'magenta', 'cyan', 'white'
Para nenhuma cor, defina os valores como None
.
Veja as postagens principais, melhores, mostrar, perguntar, empregos, novas e cebolas.
Uso:
$ hn [command] [limit] # post limit default: 10
Exemplos:
$ hn top
$ hn show 20
Depois de visualizar uma lista de postagens, você pode visualizar o conteúdo da web vinculado a uma postagem referenciando o post #
.
O conteúdo HTML do link da postagem é formatado para facilitar a visualização em seu terminal . Se disponível, a saída formatada é enviada para um pager.
Consulte a seção Visualizar em um navegador para visualizar o conteúdo em um navegador.
Uso:
$ hn view [#]
Exemplo:
$ hn view 1
$ hn view 8
Depois de visualizar uma lista de postagens, você pode ver os comentários de uma postagem referenciando o #
da postagem.
Exemplos:
$ hn view 8 -c
$ hn view 8 --comments > comments.txt
Se estiver executando com o preenchimento automático, os comentários serão paginados automaticamente. Para obter a mesma paginação sem o preenchimento automático, acrescente | less -r
:
$ hn view 8 -c | less -r
Filtre os comentários para expandir apenas aqueles que você ainda não viu. Comentários não vistos são indicados com [!]
e são totalmente expandidos.
Os comentários vistos serão truncados com [...] e serão mostrados para ajudar a fornecer contexto para comentários não vistos.
Exemplos:
$ hn view 8 -cu
$ hn view 8 --comments_unseen | less -r
Filtre os comentários para expandir apenas aqueles postados nos últimos 60 minutos .
Comentários mais antigos serão truncados com [...] e serão mostrados para ajudar a fornecer contexto aos comentários recentes.
Exemplos:
$ hn view 8 -cr | less -r
$ hn view 8 --comments_recent
Filtre comentários com base em uma determinada consulta de expressão regular.
Exemplos:
$ hn view 2 -cq "(?i)programmer" | less -r
$ hn view 2 --comments_regex_query "(?i)programmer" > programmer.txt
Regex sem distinção entre maiúsculas e minúsculas: (?i)
Ao filtrar comentários por não vistos, recentes ou com regex, os comentários não correspondentes são recolhidos para fornecer contexto. Para ocultar comentários não correspondentes, passe o sinalizador -ch--comments_hide
. Comentários ocultos serão exibidos como arquivos .
.
Exemplo:
$ hn view 8 -cu -ch | less -r
O Hacker News hospeda um posto de contratação mensal onde os empregadores publicam as últimas vagas de emprego.
Uso:
$ hn hiring [regex filter]
Exemplos:
$ hn hiring ""
$ hn hiring "(?i)JavaScript|Node"
$ hn hiring "(?i)(Node|JavaScript).*(remote)" > remote_jobs.txt
Regex sem distinção entre maiúsculas e minúsculas: (?i)
Para pesquisar um posto de contratação mensal diferente do mais recente, use o ID do posto de contratação.
Uso:
$ hn hiring [regex filter] [post id]
O Hacker News hospeda uma postagem mensal para freelancers, onde empregadores e freelancers publicam disponibilidades.
Uso:
$ hn freelance [regex filter]
Exemplos:
$ hn freelance ""
$ hn freelance "(?i)JavaScript|Node"
$ hn freelance "(?i)(Node|JavaScript).*(remote)" > remote_jobs.txt
Regex sem distinção entre maiúsculas e minúsculas: (?i)
Para pesquisar um posto de contratação mensal diferente do mais recente, use o ID do posto de contratação.
Uso:
$ hn freelance [regex filter] [post id]
Saída para pagers, gravação em arquivos, automatização com cron, etc.
Exemplos:
$ hn view 1 -c | less
$ hn freelance "(?i)(Node|JavaScript).*(remote)" > remote_jobs.txt
Uso:
$ hn user [user id]
Uso:
$ hn onion [limit] # post limit default: all
Visualize o conteúdo da web vinculado ou comentários em seu navegador padrão, em vez de em seu terminal.
Uso:
$ hn <command> [params] [options] -b
$ hn <command> [params] [options] --browser
haxor-news
foi testado no Windows 10.
O suporte a pager no Windows é mais limitado, conforme discutido no ticket a seguir. Os usuários podem direcionar a saída para um pager com o | more
comando:
$ hn view 1 -c | more
No Windows, o arquivo .haxornewsconfig
pode ser encontrado em %userprofile%
. Por exemplo:
C:Usersdmartin.haxornewsconfig
cmder
e conemu
Embora você possa usar o prompt de comando padrão do Windows, provavelmente terá uma experiência melhor com cmder ou conemu.
haxor-news
está hospedado no PyPI. O seguinte comando instalará haxor-news
:
$ pip install haxor-news
Você também pode instalar as últimas haxor-news
da fonte GitHub, que pode conter alterações ainda não enviadas ao PyPI:
$ pip install git+https://github.com/donnemartin/haxor-news.git
Se você não estiver instalando em um virtualenv, execute com sudo
:
$ sudo pip install haxor-news
Depois de instalado, execute o preenchimento automático opcional haxor-news
com ajuda interativa:
$ haxor-news
Execute comandos:
$ hn <command> [params] [options]
É recomendado que você instale pacotes Python em um virtualenv para evitar possíveis problemas com dependências ou permissões.
Para ver as instruções de instalação haxor-news
virtualenv
, clique aqui.
Há um problema conhecido com a Apple e suas dependências de pacote python incluídas (mais informações em pypa/pip#3165). Estamos investigando maneiras de corrigir esse problema, mas enquanto isso, para instalar o haxor-news, você pode executar:
$ sudo pip install haxor-news --upgrade --ignore-installed six
Se você estiver interessado em contribuir com haxor-news
, execute os seguintes comandos:
$ git clone https://github.com/donnemartin/haxor-news.git
$ pip install -e .
$ pip install -r requirements-dev.txt
$ haxor-news
$ hn <command> [params] [options]
Detalhes de integração contínua estão disponíveis no Travis CI.
Execute testes de unidade em seu ambiente Python ativo:
$ python tests/run_tests.py
Execute testes de unidade com tox em vários ambientes Python:
$ tox
A documentação do código-fonte estará disponível em breve em Readthedocs.org. Confira os documentos de origem.
Execute o seguinte para criar os documentos:
$ scripts/update_docs.sh
Contribuições são bem-vindas!
Revise as Diretrizes de Contribuição para obter detalhes sobre como:
Sinta-se à vontade para entrar em contato comigo para discutir quaisquer questões, perguntas ou comentários.
Minhas informações de contato podem ser encontradas na minha página do GitHub.
Estou fornecendo código e recursos neste repositório para você sob uma licença de código aberto. Como este é meu repositório pessoal, a licença que você recebe para meu código e recursos é minha e não de meu empregador (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.