icloudに格納したメモ帳をテキストファイルとしてダウンロードする
# -*- coding: utf-8 -*- | |
# icloudに格納したメモ帳をテキストファイルとしてダウンロードする | |
# ファイル名は、[更新日付-タイトル.txt] | |
require 'mail' | |
require 'cgi' | |
account = '(ユーザ名)@me.com' | |
pass = '(パスワード)' | |
Mail.defaults do | |
retriever_method :imap, :address => "imap.mail.me.com", | |
:port => 993, | |
:user_name => account, | |
:password => pass, | |
:enable_ssl => true | |
end | |
c_before = "\\/:*?\"<>|" | |
c_after = "\/:*?"<>|" | |
Mail.find(:mailbox => 'Notes', :keys => 'undeleted', :count => 500) { |email| | |
file_name = "#{email.date.strftime("%Y%m%d")}-#{email.subject}.txt" | |
file_name.gsub!(/([#{c_before}])/) { c_after[c_before.index($1)] } | |
file_name.encode!("windows-31j", :undef => :replace, :replace => '#') | |
open(file_name, "w:utf-8") do |f| | |
body = email.body.decoded.encode("utf-8", email.charset) | |
body.gsub!('</div>', "\n") | |
body.gsub!(/<[^>]*>/, "") | |
f << CGI.unescapeHTML(body).gsub(" ", "") | |
end | |
} |
This comment has been minimized.
This comment has been minimized.
現時点でのメモの保存のされ方。 ~で囲まれている。空行は、
・ 行先頭の場合、半角スペース1個は" "と出力されている → 変換時は「 」をスペースにすると位置づれをおこすため、単純な削除 IMAPについて |
This comment has been minimized.
This comment has been minimized.
上記2, 3行目うまく書けてないので、修正 |
This comment has been minimized.
This comment has been minimized.
実行する際のメモ
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
変更
→ keys指定を追加して削除済みメモは取得しないように変更
(自分のマシンでsanitaizeを利用すると、core dumpするため自前処理で対処)