É claro que poderia fazer manualmente a importação dos feeds pro Opera, pois o arquivo OPML nada mais é do que um arquivo XML, e o arquivo do Opera que guarda a configuração nada mais é do que um arquivo de configuração do windows (.ini) que está normalmente no arquivo:
%userprofile%/Dados de aplicativos/Opera/Mail/incoming11.txt
Mas não seria tão elegante, mais prático e interessante do que usar um script para isso.
Esse é o script (script.rb):
require "rexml/document"
include REXML
doc = Document.new File.new( "caminho_pro_arquivo_opml" )
myCount = 0
outlines = XPath.match( doc, "opml/body/outline" )
puts "Opera Preferences version 2.0\n\n"
puts "[Feeds]\nNext Feed ID=" + outlines.size.to_s + "\n\n"
outlines.each do |element|
puts "[Feed "+ myCount.to_s + "]\n"
puts "Name=" + element.attributes["text"] + "\n"
puts "URL=" + element.attributes["xmlUrl"]+"\n"
puts "Update Frequency=1800\n"
puts "Subscribed=1\n\n"
myCount+=1
end
Troque o que está em vermelho pelo caminho do seu arquivo opml.
É só rodar o script ( tomando a atenção de trocar as barras invertidas do Windows no nome do caminho para barras diretas do Unix: ex: escrever d:/temp/a.opml ao invés de d:\temp\a.opml ) e redirecionar a saída para o arquivo incoming11.txt:
ruby script.rb > incoming11.txt
Foi o meu primeiro contato com a linguagem, e um bom primeiro encontro...
Primeiramente precisava de um interpretador Ruby para Windows, o que não foi difícil, outra rápida procurada e vapt-vupt: www.ruby-lang.org
A instalação já vem com bibliotecas padrão para você incluir nos seus scripts, entre eles a biblioteca para fazer o parsing de arquivos XML que esse script precisa.
A linguagem em uma primeira vista me pareceu simples e o melhor sintaxe simples sem os rebuscamentos do Perl, por exemplo. E além disso, parece ser mais veloz que o perl.
Depois de uma pesquisada pude ver que é:
- completamente orientada a objetos.
- tem a habilidade de adicionar métodos a uma classe ou até mesmo à uma instância em tempo de execução
- pode carregar bibliotecas dinamicamente
Nenhum comentário:
Postar um comentário