From fc0c949187573d730a87b5527b3eab6ad02c0ca1 Mon Sep 17 00:00:00 2001
From: Victor Shyba <victor1984@riseup.net>
Date: Wed, 13 Feb 2019 20:41:01 -0300
Subject: [PATCH] properly update file name on downloader/assembler

---
 lbrynet/stream/assembler.py  | 11 +++++++----
 lbrynet/stream/downloader.py |  2 +-
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/lbrynet/stream/assembler.py b/lbrynet/stream/assembler.py
index 913d538ba..ab0572e21 100644
--- a/lbrynet/stream/assembler.py
+++ b/lbrynet/stream/assembler.py
@@ -21,7 +21,7 @@ def _get_next_available_file_name(download_directory: str, file_name: str) -> st
         i += 1
         file_name = "%s_%i%s" % (base_name, i, ext)
 
-    return os.path.join(download_directory, file_name)
+    return file_name
 
 
 async def get_next_available_file_name(loop: asyncio.BaseEventLoop, download_directory: str, file_name: str) -> str:
@@ -29,7 +29,9 @@ async def get_next_available_file_name(loop: asyncio.BaseEventLoop, download_dir
 
 
 class StreamAssembler:
-    def __init__(self, loop: asyncio.BaseEventLoop, blob_manager: 'BlobFileManager', sd_hash: str):
+    def __init__(self, loop: asyncio.BaseEventLoop, blob_manager: 'BlobFileManager', sd_hash: str,
+                 output_file_name: typing.Optional[str]):
+        self.output_file_name = output_file_name
         self.loop = loop
         self.blob_manager = blob_manager
         self.sd_hash = sd_hash
@@ -77,8 +79,9 @@ class StreamAssembler:
         self.descriptor = await StreamDescriptor.from_stream_descriptor_blob(self.loop, self.blob_manager.blob_dir,
                                                                              self.sd_blob)
         await self.after_got_descriptor()
-        self.output_path = await get_next_available_file_name(self.loop, output_dir,
-                                                              output_file_name or self.descriptor.suggested_file_name)
+        self.output_file_name = output_file_name or self.descriptor.suggested_file_name
+        self.output_file_name = await get_next_available_file_name(self.loop, output_dir, self.output_file_name)
+        self.output_path = os.path.join(output_dir, self.output_file_name)
         if not self.got_descriptor.is_set():
             self.got_descriptor.set()
         await self.blob_manager.storage.store_stream(
diff --git a/lbrynet/stream/downloader.py b/lbrynet/stream/downloader.py
index c0408f0ce..45c82d838 100644
--- a/lbrynet/stream/downloader.py
+++ b/lbrynet/stream/downloader.py
@@ -23,7 +23,7 @@ def drain_into(a: list, b: list):
 class StreamDownloader(StreamAssembler):
     def __init__(self, loop: asyncio.BaseEventLoop, config: 'Config', blob_manager: 'BlobFileManager', sd_hash: str,
                  output_dir: typing.Optional[str] = None, output_file_name: typing.Optional[str] = None):
-        super().__init__(loop, blob_manager, sd_hash)
+        super().__init__(loop, blob_manager, sd_hash, output_file_name)
         self.config = config
         self.output_dir = output_dir or self.config.download_dir
         self.output_file_name = output_file_name