mirror of https://github.com/logseq/logseq
enhance(sync): replace <get-remote-graph by <get-remote-txid
parent
b5494f33cc
commit
e27ea05298
|
@ -724,6 +724,7 @@
|
|||
(<get-remote-all-files-meta [this graph-uuid] "get all remote files' metadata")
|
||||
(<get-remote-files-meta [this graph-uuid filepaths] "get remote files' metadata")
|
||||
(<get-remote-graph [this graph-name-opt graph-uuid-opt] "get graph info by GRAPH-NAME-OPT or GRAPH-UUID-OPT")
|
||||
(<get-remote-txid [this graph-uuid] "get remote graph's txid")
|
||||
(<get-remote-file-versions [this graph-uuid filepath] "get file's version list")
|
||||
(<list-remote-graphs [this] "list all remote graphs")
|
||||
(<get-deletion-logs [this graph-uuid from-txid] "get deletion logs from FROM-TXID")
|
||||
|
@ -1267,6 +1268,10 @@
|
|||
(seq graph-uuid-opt)
|
||||
(assoc :GraphUUID graph-uuid-opt))))))
|
||||
|
||||
(<get-remote-txid [this graph-uuid]
|
||||
(user/<wrap-ensure-id&access-token
|
||||
(<! (.<request this "get_txid" {:GraphUUID graph-uuid}))))
|
||||
|
||||
(<get-remote-file-versions [this graph-uuid filepath]
|
||||
(user/<wrap-ensure-id&access-token
|
||||
(let [encrypted-path (first (<! (<encrypt-fnames rsapi graph-uuid [filepath])))]
|
||||
|
@ -1377,7 +1382,7 @@
|
|||
(let [partitioned-files (partition-all 20 (<! (<encrypt-fnames rsapi graph-uuid filepaths)))]
|
||||
(loop [[files & others] partitioned-files]
|
||||
(when files
|
||||
(let [current-txid (:TXId (<! (<get-remote-graph this nil graph-uuid)))]
|
||||
(let [current-txid (:TXId (<! (<get-remote-txid this graph-uuid)))]
|
||||
(<! (.<request this "delete_files" {:GraphUUID graph-uuid :TXId current-txid :Files files}))
|
||||
(recur others))))))))
|
||||
|
||||
|
@ -1468,7 +1473,7 @@
|
|||
(defn- assert-local-txid<=remote-txid
|
||||
[]
|
||||
(when-let [local-txid (last @graphs-txid)]
|
||||
(go (let [remote-txid (:TXId (<! (<get-remote-graph remoteapi nil (second @graphs-txid))))]
|
||||
(go (let [remote-txid (:TXId (<! (<get-remote-txid remoteapi (second @graphs-txid))))]
|
||||
(assert (<= local-txid remote-txid)
|
||||
[@graphs-txid local-txid remote-txid])))))
|
||||
|
||||
|
@ -2323,12 +2328,12 @@
|
|||
sorted-diff-remote-files
|
||||
(sort-by
|
||||
(sort-file-metadata-fn :recent-days-range recent-10-days-range) > diff-remote-files)
|
||||
remote-graph-info-or-ex (<! (<get-remote-graph remoteapi nil graph-uuid))
|
||||
latest-txid (:TXId remote-graph-info-or-ex)]
|
||||
(if (or (instance? ExceptionInfo remote-graph-info-or-ex) (nil? latest-txid))
|
||||
remote-txid-or-ex (<! (<get-remote-txid remoteapi graph-uuid))
|
||||
latest-txid (:TXId remote-txid-or-ex)]
|
||||
(if (or (instance? ExceptionInfo remote-txid-or-ex) (nil? latest-txid))
|
||||
(do (put-sync-event! {:event :get-remote-graph-failed
|
||||
:data {:graph-uuid graph-uuid
|
||||
:exp remote-graph-info-or-ex
|
||||
:exp remote-txid-or-ex
|
||||
:epoch (tc/to-epoch (t/now))}})
|
||||
{:stop true})
|
||||
(do (println "[full-sync(remote->local)]" (count sorted-diff-remote-files) "files need to sync")
|
||||
|
@ -2562,12 +2567,12 @@
|
|||
|
||||
(need-reset-local-txid? r*) ;; TODO: this cond shouldn't be true,
|
||||
;; but some potential bugs cause local-txid > remote-txid
|
||||
(let [remote-graph-info-or-ex (<! (<get-remote-graph remoteapi nil graph-uuid))
|
||||
remote-txid (:TXId remote-graph-info-or-ex)]
|
||||
(if (or (instance? ExceptionInfo remote-graph-info-or-ex) (nil? remote-txid))
|
||||
(let [remote-txid-or-ex (<! (<get-remote-txid remoteapi graph-uuid))
|
||||
remote-txid (:TXId remote-txid-or-ex)]
|
||||
(if (or (instance? ExceptionInfo remote-txid-or-ex) (nil? remote-txid))
|
||||
(do (put-sync-event! {:event :get-remote-graph-failed
|
||||
:data {:graph-uuid graph-uuid
|
||||
:exp remote-graph-info-or-ex
|
||||
:exp remote-txid-or-ex
|
||||
:epoch (tc/to-epoch (t/now))}})
|
||||
{:stop true})
|
||||
(do (<! (<update-graphs-txid! remote-txid graph-uuid user-uuid repo))
|
||||
|
@ -2766,7 +2771,7 @@
|
|||
remote->local
|
||||
(let [txid
|
||||
(if (true? remote->local)
|
||||
{:txid (:TXId (<! (<get-remote-graph remoteapi nil graph-uuid)))}
|
||||
{:txid (:TXId (<! (<get-remote-txid remoteapi graph-uuid)))}
|
||||
remote->local)]
|
||||
(when (some? txid)
|
||||
(>! ops-chan {:remote->local txid}))
|
||||
|
|
Loading…
Reference in New Issue