pocket-octopress para analisar links de bolso para postagens

Pocket API Parser para Octopress Blogs baseado em joia de rubi de bolso

Para adicionar uma funcionalidade para postagem de Pocket Link em Octopress Blogs, usei a joia pocket-ruby . Eu modifiquei o Gem- e Rakefile para adicionar uma tarefa para gerar listas de links do Pocket a partir de meus links pessoais do Pocket.

Mais informações e informações aqui

Uso

rake new_pocket['DAYS']

Para DAYSdefinir o número de dias a partir de agora no passado. Para o meu blog pessoal, uso 7 dias para obter links de 1 semana do Pocket.

Instalação

Adicione as seguintes alterações ao seu Octopress Gemfile

--- a/Gemfile
+++ b/Gemfile
@@ -17,3 +17,6 @@ group :development do
end

gem
'sinatra', '~> 1.4.2'
+gem 'pocket-ruby'
+gem 'active_support'
+gem 'i18n'

Crie um aplicativo de bolso em http://getpocket.com/developer/apps/

Mudança yourconsumerkeyna à sua chave do consumidor a partir do aplicativo de bolso criado.generate_token.rb

Gerar um token de acesso

gerar token.rb para gerar um token de acesso . No Terminal, você deve executar o script com . Ele inicia uma sessão do servidor web em . Acesse-o em seu navegador e conecte-se ao pocket. Então você receberá seu access_token.ruby generate_token.rblocalhost:4567

require "rubygems"
require
"sinatra"
require
"pocket"

enable
:sessions

CALLBACK_URL
= "http://localhost:4567/oauth/callback"

Pocket.configure do |config|
config
.consumer_key = 'yourconsumerkey'
end

get
'/reset' do
puts
"GET /reset"
session
.clear
redirect
"/"
end

get
"/" do
puts
"GET /"
puts
"session: #{session}"

if session[:access_token]
'Access token: ' + session[:access_token] +
'<br /><a href="/reset">Reset session</a>'
else
'<a href="/oauth/connect">Connect with Pocket</a>'
end
end

get
"/oauth/connect" do
puts
"OAUTH CONNECT"
session
[:code] = Pocket.get_code(:redirect_uri => CALLBACK_URL)
new_url
= Pocket.authorize_url(:code => session[:code], :redirect_uri => CALLBACK_URL)
puts
"new_url: #{new_url}"
puts
"session: #{session}"
redirect new_url

end

get
"/oauth/callback" do
puts
"OAUTH CALLBACK"
puts
"request.url: #{request.url}"
puts
"request.body: #{request.body.read}"
access_token
= Pocket.get_access_token(session[:code], :redirect_uri => CALLBACK_URL)
session
[:access_token] = access_token
puts
"#{access_token}"
puts
"session: #{session}"
redirect
"/"
end

Mude seu Rakefile com o seguinte diff. Certifique-se de inserir a chave do consumidor correta e o token de acesso recebido .generate_token.rb

--- a/Rakefile
+++ b/Rakefile
@@ -1,6 +1,8 @@
require "rubygems"
require "bundler/setup"
require "stringex"
+require "active_support/all"
+require "pocket"

## -- Rsync Deploy config -- ##
# Be sure your public key is listed in your server's ~/.ssh/authorized_keys file
@@ -27,6 +29,10 @@ new_post_ext = "markdown" # default new post file extension when using the n
new_page_ext
= "markdown" # default new page file extension when using the new_page task
server_port
= "4000" # port for preview server eg. localhost:4000

+## Pocket Configuration
+consumer_key = 'yourconsumerkey'
+access_token = 'youraccesstoken'
+

desc
"Initial setup for Octopress: copies the default theme into the path of Jekyll's generator. Rake install defaults to rake install[classic] to install a different theme run rake install[some_theme_name]"
task
:install, :theme do |t, args|
@@ -115,6 +121,50 @@ task :new_post, :title do |t, args|
end
end

+desc "Generate blogpost with Pocket links for your blog. e.g. weekly, monthly linklists"
+task :new_pocket, :timerange do |t, args|
+ if args.timerange
+ timerange = args.timerange
+ else
+ timerange = get_stdin("Enter timerange in days: ")
+ end
+ raise "### You haven't set anything up yet. First run `rake install` to set up an Octopress theme." unless File.directory?(source_dir)
+ mkdir_p "#{source_dir}/#{posts_dir}"
+ title = "Pocket links from #{timerange.to_i.days.ago.strftime('%Y-%m-%d')} to #{Time.now.strftime('%Y-%m-%d')}"
+ filename = "#{source_dir}/#{posts_dir}/#{Time.now.strftime('%Y-%m-%d')}-#{title.to_url}.#{new_post_ext}"
+ if File.exist?(filename)
+ abort("rake aborted!") if ask("#{filename} already exists. Do you want to overwrite?", ['y', 'n']) == 'n'
+ end
+
+ Pocket.configure do |config|
+ config.consumer_key = consumer_key
+ end
+
+ client = Pocket.client(:access_token => access_token)
+ info = client.retrieve :detailType => :article
+
+ puts "Creating new post: #{filename}"
+ open(filename, 'w') do |post|
+ post.puts "---"
+ post.puts "layout: post"
+ post.puts "title: "#{title.gsub(/&/