Sha256: ba287eacb7ecec849c7b18e0d298695de66c7a59b625b8bb743b53874d04a0ba
Contents?: true
Size: 1.57 KB
Versions: 1
Compression:
Stored size: 1.57 KB
Contents
module Memot class Client def initialize(dropbox, evernote, logger) @dropbox = dropbox @evernote = evernote @logger = logger end def update(notes) logger.info("Updating...") need_update = [] notes.each_pair do |notebook, dropbox_path| need_update << { notebook: notebook, updates: dropbox.parse_dir_tree!(dropbox_path) } end need_update.each do |update| notebook = update[:notebook].to_s update[:updates].each { |u| save_to_evernote(u[:dropbox_path], notebook, u[:revision]) } end logger.info("Finish") end def save_to_evernote(dropbox_path, notebook, revision) note_body = Memot::Markdown.parse_markdown(dropbox.file_body_of(dropbox_path)) note_title = File.basename(dropbox_path) begin if (note_guid = evernote.get_note_guid(note_title, notebook)) == "" evernote.create_note(note_title, note_body, notebook) logger.info "Created: #{notebook}/#{note_title} (rev. #{revision})" else evernote.update_note(note_title, note_body, notebook, note_guid) logger.info "Updated: #{notebook}/#{note_title} (rev. #{revision})" end rescue Memot::EvernoteRateLimitReachedError => e sleep_interval = e.message.to_i + 60 logger.warn "Evernote rate limit exceeded, retry after #{sleep_interval} seconds." sleep sleep_interval retry end end private def dropbox @dropbox end def evernote @evernote end def logger @logger end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
memot-0.1.0 | lib/memot/client.rb |