Split out TorrentMetadata
This commit is contained in:
parent
e440f03970
commit
100b7116df
20 changed files with 411 additions and 225 deletions
|
|
@ -150,7 +150,14 @@ impl JsonSessionPersistenceStore {
|
|||
output_folder: torrent.shared().options.output_folder.clone(),
|
||||
};
|
||||
|
||||
if write_torrent_file && !torrent.shared().torrent_bytes.is_empty() {
|
||||
let torrent_bytes = torrent
|
||||
.metadata
|
||||
.load()
|
||||
.as_ref()
|
||||
.map(|i| i.torrent_bytes.clone())
|
||||
.unwrap_or_default();
|
||||
|
||||
if write_torrent_file && !torrent_bytes.is_empty() {
|
||||
let torrent_bytes_file = self.torrent_bytes_filename(&torrent.info_hash());
|
||||
match tokio::fs::OpenOptions::new()
|
||||
.create(true)
|
||||
|
|
@ -160,7 +167,7 @@ impl JsonSessionPersistenceStore {
|
|||
.await
|
||||
{
|
||||
Ok(mut f) => {
|
||||
if let Err(e) = f.write_all(&torrent.shared().torrent_bytes).await {
|
||||
if let Err(e) = f.write_all(&torrent_bytes).await {
|
||||
warn!(error=?e, file=?torrent_bytes_file, "error writing torrent bytes")
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -96,14 +96,19 @@ impl SessionPersistenceStore for PostgresSessionStorage {
|
|||
}
|
||||
|
||||
async fn store(&self, id: TorrentId, torrent: &ManagedTorrentHandle) -> anyhow::Result<()> {
|
||||
let torrent_bytes: &[u8] = &torrent.shared().torrent_bytes;
|
||||
let torrent_bytes = torrent
|
||||
.metadata
|
||||
.load()
|
||||
.as_ref()
|
||||
.map(|i| i.torrent_bytes.clone())
|
||||
.unwrap_or_default();
|
||||
let q = "INSERT INTO torrents (id, info_hash, torrent_bytes, trackers, output_folder, only_files, is_paused)
|
||||
VALUES($1, $2, $3, $4, $5, $6, $7)
|
||||
ON CONFLICT(id) DO NOTHING";
|
||||
sqlx::query(q)
|
||||
.bind::<i32>(id.try_into()?)
|
||||
.bind(&torrent.info_hash().0[..])
|
||||
.bind(torrent_bytes)
|
||||
.bind(torrent_bytes.as_ref())
|
||||
.bind(
|
||||
torrent
|
||||
.shared()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue