aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/v0/db_import.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sisu/v0/db_import.rb')
-rw-r--r--lib/sisu/v0/db_import.rb55
1 files changed, 32 insertions, 23 deletions
diff --git a/lib/sisu/v0/db_import.rb b/lib/sisu/v0/db_import.rb
index 646ea176..cb68ffd6 100644
--- a/lib/sisu/v0/db_import.rb
+++ b/lib/sisu/v0/db_import.rb
@@ -70,8 +70,8 @@ module SiSU_DB_import
@@dl=nil
@@hname=nil
attr_accessor :tp
- def initialize(opt,conn='',sql_type='pg')
- @opt,@conn,@sql_type=opt,conn,sql_type
+ def initialize(opt,conn,file,sql_type='pg')
+ @opt,@conn,@file,@sql_type=opt,conn,file,sql_type
@cX=SiSU_Screen::Ansi.new(@opt.cmd).cX
@env=SiSU_Env::Info_env.new(@opt.fns)
@dal="#{@env.path.dal}"
@@ -113,17 +113,22 @@ module SiSU_DB_import
tell.print_grey if @opt.cmd =~/v/
case @sql_type
when /sqlite/ #fix logic for sqlite !
- import_db_metadata(@dal_array)
- import_documents(@dal_array)
- import_db_urls(@dal_array,@fnm) #import OID on/off
- #@conn.commit #sqlite watch
+ #pf_db_import_transaction_open if @opt =~/M/
+ db_import_metadata
+ db_import_documents(@dal_array)
+ db_import_urls(@dal_array,@fnm) #import OID on/off
+ #pf_db_import_transaction_close if @opt =~/M/
+ #@conn.commit
+ #@conn.close
+ #@conn.disconnect
+#sqlite watch
else
file_exist=@conn.select_one(%{ SELECT metadata.tid FROM metadata WHERE metadata.filename ~ '#{@opt.fns}'; })
unless file_exist
@conn.execute('BEGIN')
- import_db_metadata(@dal_array)
- import_documents(@dal_array)
- import_db_urls(@dal_array,@fnm) #import OID on/off
+ db_import_metadata
+ db_import_documents(@dal_array)
+ db_import_urls(@dal_array,@fnm) #import OID on/off
@conn.execute('COMMIT')
else
@db=SiSU_Env::Info_db.new
@@ -153,7 +158,11 @@ module SiSU_DB_import
string.strip!
end
#% import into database tables
- def import_db_metadata(dbi_unit) #% import documents - populate database
+ def pf_db_import_transaction_open
+ end
+ def pf_db_import_transaction_close
+ end
+ def db_import_metadata #% import documents - populate database
print %{ #{@cX.grey}import documents dbi_unit #{@cX.off} } unless @opt.cmd =~/q/
@tp={}
@md=SiSU_Param::Parameters.new(@opt).get
@@ -354,17 +363,17 @@ module SiSU_DB_import
#end
#if @md.ruby_version; special_character_escape(@md.ruby_version)
SiSU_DB_DBI::Test.new(self,@opt).verify #% import title names, filenames (tuple)
- t=SiSU_DB_tuple::Load_metadata.new(@conn,@tp,@@id_t)
+ t=SiSU_DB_tuple::Load_metadata.new(@conn,@tp,@@id_t,@opt,@file)
t.tuple
end
- def import_documents(dbi_unit) #% import documents - populate main database table
+ def db_import_documents(dal_array) #% import documents - populate main database table
#% import into substantive database tables (tuple)
begin
@col[:tid]=@@id_t
@en,@en_ast,@en_pls=[],[],[]
@col[:en_a]=nil
@col[:en_z]=nil
- dbi_unit.each do |data|
+ dal_array.each do |data|
#data.gsub!(/<[biu]>(.+?)<\/[biu]>/,'\1') # remove bold, italics, underscore
data.gsub!(/<b>(.+?)<\/b>/,'\1') # remove bold, italics, underscore
data.gsub!(/<i>(.+?)<\/i>/,'\1') # remove bold, italics, underscore
@@ -396,7 +405,7 @@ module SiSU_DB_import
end
if @en_pls[0]; @en_a_plus,@en_z_plus=@en_pls[0].first,@en_pls[0].last
end
- t=SiSU_DB_tuple::Load_documents.new(@conn,@col,@opt)
+ t=SiSU_DB_tuple::Load_documents.new(@conn,@col,@opt,@file)
t.tuple
case @col[:lev]
when /1/; @col[:lv1]+=1
@@ -437,7 +446,7 @@ module SiSU_DB_import
end
if @en_pls[0]; @en_a_plus,@en_z_plus=@en_pls[0].first,@en_pls[0].last
end
- t=SiSU_DB_tuple::Load_documents.new(@conn,@col,@opt)
+ t=SiSU_DB_tuple::Load_documents.new(@conn,@col,@opt,@file)
t.tuple
@col[:lev]=@col[:plaintext]=@col[:body]=''
elsif data[/^5~(?:~\S+)?(.+?)<~(\d+);((?:\w|[0-6]:)\d+);(\w\d+)><([0-9a-f]{#{@@dl}}):([0-9a-f]{#{@@dl}})>/] # header lev5 seg level
@@ -476,7 +485,7 @@ module SiSU_DB_import
end
if @en_pls[0]; @en_a_plus,@en_z_plus=@en_pls[0].first,@en_pls[0].last
end
- t=SiSU_DB_tuple::Load_documents.new(@conn,@col,@opt)
+ t=SiSU_DB_tuple::Load_documents.new(@conn,@col,@opt,@file)
t.tuple
@col[:lev]=@col[:plaintext]=@col[:body]=''
elsif data[/^6~(?:~\S+)?(.+?)<~(\d+);((?:\w|[0-6]:)\d+);(\w\d+)><([0-9a-f]{#{@@dl}}):([0-9a-f]{#{@@dl}})>/] # header lev6 seg level
@@ -515,7 +524,7 @@ module SiSU_DB_import
end
if @en_pls[0]; @en_a_plus,@en_z_plus=@en_pls[0].first,@en_pls[0].last
end
- t=SiSU_DB_tuple::Load_documents.new(@conn,@col,@opt)
+ t=SiSU_DB_tuple::Load_documents.new(@conn,@col,@opt,@file)
t.tuple
@col[:lev]=@col[:plaintext]=@col[:body]=''
else #% regular text
@@ -565,7 +574,7 @@ module SiSU_DB_import
special_character_escape(@col[:body])
@col[:plaintext]=@col[:body].dup
strip_markup(@col[:plaintext])
- t=SiSU_DB_tuple::Load_documents.new(@conn,@col,@opt)
+ t=SiSU_DB_tuple::Load_documents.new(@conn,@col,@opt,@file)
t.tuple
@en,@en_ast,@en_pls=[],[],[]
@col[:en_a]=@col[:en_z]=nil
@@ -604,7 +613,7 @@ module SiSU_DB_import
:id_t => @@id_t,
:hash => digest_clean
}
- t=SiSU_DB_tuple::Load_endnotes.new(@conn,en)
+ t=SiSU_DB_tuple::Load_endnotes.new(@conn,en,@opt,@file)
t.tuple
end
end
@@ -645,7 +654,7 @@ module SiSU_DB_import
:id_t => @@id_t,
:hash => digest_clean
}
- t=SiSU_DB_tuple::Load_endnotes.new(@conn,en)
+ t=SiSU_DB_tuple::Load_endnotes.new(@conn,en,@opt,@file)
t.tuple
end
end
@@ -685,7 +694,7 @@ module SiSU_DB_import
:id_t => @@id_t,
:hash => digest_clean
}
- t=SiSU_DB_tuple::Load_endnotes.new(@conn,en)
+ t=SiSU_DB_tuple::Load_endnotes.new(@conn,en,@opt,@file)
t.tuple
end
end
@@ -743,7 +752,7 @@ module SiSU_DB_import
end
self
end
- def import_db_urls(dbi_unit,meta) #% import documents OID - populate database
+ def db_import_urls(dbi_unit,meta) #% import documents OID - populate database
begin
@fnm=meta
@env=SiSU_Env::Info_env.new(@opt.fns)
@@ -818,7 +827,7 @@ module SiSU_DB_import
or (@opt.cmd=~/e/ and FileTest.file?("#{out}/#@fnb/#{@opt.fns}.tgz")==true)
f[:sisupod],u[:sisupod]='sisupod,', "'#{base}/#@fnb/#{@opt.fns}.tgz',"
end
- t=SiSU_DB_tuple::Load_urls.new(@conn,f,u,@@id_t)
+ t=SiSU_DB_tuple::Load_urls.new(@conn,f,u,@@id_t,@opt,@file)
t.tuple
rescue; SiSU_Errors::Info_error.new($!,$@,@opt.cmd,@opt.fns).error
ensure