class HatebloMixedContentsFinder::HatenaClient
Public Instance Methods
update_entry(entry_url, config_file: nil)
click to toggle source
# File lib/hateblo_mixed_contents_finder/hatena_client.rb, line 6 def update_entry(entry_url, config_file: nil) entry_id = fetch_id(entry_url) params = config_file ? [config_file] : [] Hatenablog::Client.create(*params) do |blog_client| posted_entry = blog_client.get_entry(entry_id) puts "[#{Time.now.strftime("%H:%M:%S")}] Updating #{entry_url} #{posted_entry.title}" updated_entry = blog_client.update_entry( posted_entry.id, posted_entry.title, posted_entry.content, posted_entry.categories, posted_entry.draft, posted_entry.updated.strftime('%Y-%m-%dT%T%:z') ) assert_same(posted_entry, updated_entry) end end
Private Instance Methods
assert_same(posted_entry, updated_entry)
click to toggle source
# File lib/hateblo_mixed_contents_finder/hatena_client.rb, line 28 def assert_same(posted_entry, updated_entry) %w(title content categories updated draft).each do |attr| original = posted_entry.send(attr) updated = updated_entry.send(attr) if original != updated raise "#{attr} is changed: #{original} => #{updated} / #{posted_entry.id} / #{posted_entry.title}" end end end
fetch_id(url)
click to toggle source
# File lib/hateblo_mixed_contents_finder/hatena_client.rb, line 38 def fetch_id(url) agent = Mechanize.new page = agent.get(url) page.search('article.entry')[0]['data-uuid'] end