lib/enop.rb in enop-0.1.3 vs lib/enop.rb in enop-0.1.4
- old
+ new
@@ -1,144 +1,10 @@
# -*- coding: utf-8 -*-
-
+require "arxutils"
require "enop/version"
+require "enop/enop"
+require "enop/dbutil"
+#require "enop/dbutil/dbmgr"
+#require "enop/dbutil/enopmgr"
-require 'evernote-thrift'
-require 'csv'
-require 'pp'
-
-require 'forwardable'
-require 'dbutil_base'
-require 'dbutil_enop'
-
module Enop
- class Enop
- extend Forwardable
-
- def_delegator( :@dbmgr , :add , :db_add)
-
- def initialize( db_dir , migrate_dir , config_dir, dbconfig , log_fname , authToken)
-
- @stack_hs = {}
- @nbinfos = {}
- @notebookinfo = Struct.new("NotebookInfo", :name, :stack, :defaultNotebook, :count , :tags )
-
- @authToken = authToken
-
- register_time = Arxutils::Dbutil::DbMgr.init( db_dir , migrate_dir , config_dir, dbconfig , log_fname )
-
- @dbmgr = Dbutil::DbMgr.new( register_time )
-
- evernoteHost = "www.evernote.com"
- userStoreUrl = "https://#{evernoteHost}/edam/user"
- userStoreTransport = Thrift::HTTPClientTransport.new(userStoreUrl)
- userStoreProtocol = Thrift::BinaryProtocol.new(userStoreTransport)
- @userStore = Evernote::EDAM::UserStore::UserStore::Client.new(userStoreProtocol)
-
- versionOK = @userStore.checkVersion("Evernote EDAMTest (Ruby)",
- Evernote::EDAM::UserStore::EDAM_VERSION_MAJOR,
- Evernote::EDAM::UserStore::EDAM_VERSION_MINOR)
- puts "Is my Evernote API version up to date? #{versionOK}"
- puts
- exit(1) unless versionOK
-
- set_output_dest( get_output_filename_base )
- end
-
- def set_output_dest( fname )
- if fname
- fname_txt = fname + ".txt"
- fname_csv = fname + ".csv"
- @output = File.open( fname_txt , "w" , { :encoding => 'UTF-8' } )
- @output_csv = CSV.open( fname_csv , "w" , { :encoding => 'UTF-8' } )
- else
- @output = STDOUT
- end
- end
-
- def get_output_filename_base
- Time.now.strftime("ennblist-%Y-%m-%d-%H-%M-%S")
- end
-
- def putsx( str )
- @output.puts( str )
- end
-
- def connect
- # Get the URL used to interact with the contents of the user's account
- # When your application authenticates using OAuth, the NoteStore URL will
- # be returned along with the auth token in the final OAuth request.
- # In that case, you don't need to make this call.
- #noteStoreUrl = userStore.getNoteStoreUrl(authToken)
- noteStoreUrl = "https://www.evernote.com/shard/s18/notestore"
-
- noteStoreTransport = Thrift::HTTPClientTransport.new(noteStoreUrl)
- noteStoreProtocol = Thrift::BinaryProtocol.new(noteStoreTransport)
- @noteStore = Evernote::EDAM::NoteStore::NoteStore::Client.new(noteStoreProtocol)
- end
-
- def list_notebooks
- # List all of the notebooks in the user's account
- filter = Evernote::EDAM::NoteStore::NoteFilter.new
-
- begin
- notebooks = @noteStore.listNotebooks(@authToken)
- rescue => ex
- puts "Can't call listNotebooks"
- exit
- end
-
- puts "Found #{notebooks.size} notebooks:"
- memo = notebooks.inject({:defaultNotebook => nil , :nbinfo => []}) do |memo , notebook|
- notebook_name = ( notebook.name == nil ? "" : notebook.name )
- stack_name = ( notebook.stack == nil ? "" : notebook.stack )
-
- filter.notebookGuid = notebook.guid
-
- ret = nil
- begin
- ret = @noteStore.findNoteCounts(@authToken , filter , false )
- rescue => ex
- puts "Can't call findNoteCounts with #{notebook_name}"
- end
-
- if ret
- if ret.notebookCounts
- notebookCounts = ret.notebookCounts[notebook.guid]
- else
- notebookCounts = 0
- end
- tagcount = 0
- if ret.tagCounts
- tagcount = ret.tagCounts.size
- end
- nbinfo = @notebookinfo.new( notebook_name , stack_name , notebook.defaultNotebook , notebookCounts , tagcount )
- # CSVファイルへ追加(自動的に出力)
- register_notebook( nbinfo.stack , nbinfo )
- # dbへの登録
- db_add( nbinfo.stack , nbinfo.name , nbinfo.count , nbinfo.tags.size )
-
- # p notebook
- memo[:defaultNotebook] = nbinfo if nbinfo.defaultNotebook
- memo[:nbinfo] << nbinfo
- end
-
- memo
- end
-
- @stack_hs.keys.sort.each do |k|
- # TXTファイルに出力
- putsx "#{k},#{@stack_hs[k]}"
- end
-
- pp memo[:defaultNotebook]
- end
-
- def register_notebook( stack , nbinfo )
- @stack_hs[stack] ||= []
- @stack_hs[stack] << nbinfo
- @nbinfos[nbinfo.name] = nbinfo
-
- @output_csv << [ stack , nbinfo.name , nbinfo.count ]
- end
- end
end