mirror of
https://github.com/hkalexling/Mango.git
synced 2025-08-03 03:15:31 -04:00
Separate insert_id
into titles and entries
This commit is contained in:
parent
667d390be4
commit
c7be0e0e7c
@ -14,11 +14,10 @@ class Entry
|
|||||||
id = storage.get_entry_id @zip_path, File.signature(@zip_path)
|
id = storage.get_entry_id @zip_path, File.signature(@zip_path)
|
||||||
if id.nil?
|
if id.nil?
|
||||||
id = random_str
|
id = random_str
|
||||||
storage.insert_id({
|
storage.insert_entry_id({
|
||||||
path: @zip_path,
|
path: @zip_path,
|
||||||
id: id,
|
id: id,
|
||||||
title_signature: nil,
|
signature: File.signature(@zip_path).to_s,
|
||||||
entry_signature: File.signature(@zip_path).to_s,
|
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
@id = id
|
@id = id
|
||||||
|
@ -13,11 +13,10 @@ class Title
|
|||||||
id = storage.get_title_id dir, signature
|
id = storage.get_title_id dir, signature
|
||||||
if id.nil?
|
if id.nil?
|
||||||
id = random_str
|
id = random_str
|
||||||
storage.insert_id({
|
storage.insert_title_id({
|
||||||
path: dir,
|
path: dir,
|
||||||
id: id,
|
id: id,
|
||||||
title_signature: signature.to_s,
|
signature: signature.to_s,
|
||||||
entry_signature: nil,
|
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
@id = id
|
@id = id
|
||||||
|
@ -15,16 +15,21 @@ def verify_password(hash, pw)
|
|||||||
end
|
end
|
||||||
|
|
||||||
class Storage
|
class Storage
|
||||||
@@insert_ids = [] of IDTuple
|
@@insert_entry_ids = [] of EntryID
|
||||||
|
@@insert_title_ids = [] of TitleID
|
||||||
|
|
||||||
@path : String
|
@path : String
|
||||||
@db : DB::Database?
|
@db : DB::Database?
|
||||||
|
|
||||||
alias IDTuple = NamedTuple(
|
alias EntryID = NamedTuple(
|
||||||
path: String,
|
path: String,
|
||||||
id: String,
|
id: String,
|
||||||
entry_signature: String?,
|
signature: String?)
|
||||||
title_signature: String?)
|
|
||||||
|
alias TitleID = NamedTuple(
|
||||||
|
path: String,
|
||||||
|
id: String,
|
||||||
|
signature: String?)
|
||||||
|
|
||||||
use_default
|
use_default
|
||||||
|
|
||||||
@ -314,8 +319,12 @@ class Storage
|
|||||||
id
|
id
|
||||||
end
|
end
|
||||||
|
|
||||||
def insert_id(tp : IDTuple)
|
def insert_entry_id(tp)
|
||||||
@@insert_ids << tp
|
@@insert_entry_ids << tp
|
||||||
|
end
|
||||||
|
|
||||||
|
def insert_title_id(tp)
|
||||||
|
@@insert_title_ids << tp
|
||||||
end
|
end
|
||||||
|
|
||||||
def bulk_insert_ids
|
def bulk_insert_ids
|
||||||
@ -323,20 +332,22 @@ class Storage
|
|||||||
get_db do |db|
|
get_db do |db|
|
||||||
db.transaction do |tran|
|
db.transaction do |tran|
|
||||||
conn = tran.connection
|
conn = tran.connection
|
||||||
@@insert_ids.each do |tp|
|
@@insert_title_ids.each do |tp|
|
||||||
path = Path.new(tp[:path])
|
path = Path.new(tp[:path])
|
||||||
.relative_to(Config.current.library_path).to_s
|
.relative_to(Config.current.library_path).to_s
|
||||||
if tp[:title_signature]
|
conn.exec "insert into titles values (?, ?, ?)", tp[:id],
|
||||||
conn.exec "insert into titles values (?, ?, ?)", tp[:id],
|
path, tp[:signature].to_s
|
||||||
path, tp[:title_signature].to_s
|
end
|
||||||
else
|
@@insert_entry_ids.each do |tp|
|
||||||
conn.exec "insert into ids values (?, ?, ?)", path, tp[:id],
|
path = Path.new(tp[:path])
|
||||||
tp[:entry_signature].to_s
|
.relative_to(Config.current.library_path).to_s
|
||||||
end
|
conn.exec "insert into ids values (?, ?, ?)", path, tp[:id],
|
||||||
|
tp[:signature].to_s
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@insert_ids.clear
|
@@insert_entry_ids.clear
|
||||||
|
@@insert_title_ids.clear
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user