bug filewrite
This commit is contained in:
@@ -45,6 +45,7 @@ class Ffmpeg_controller:
|
||||
self.object_filename = None
|
||||
self.concat = True
|
||||
self.pause = False
|
||||
self.autostart = False
|
||||
self.tasklist = []
|
||||
|
||||
self.convert_task_thread = threading.Thread(target=self.convert_task_func, args=())
|
||||
@@ -57,6 +58,7 @@ class Ffmpeg_controller:
|
||||
_create_floder('res/ffmpeg_tmp')
|
||||
_create_floder('res/ffmpeg_finished')
|
||||
_create_floder('res/ffmpeg_task')
|
||||
_create_floder('res/ffmpeg_old')
|
||||
_create_floder('res/ffmpeg_complet')
|
||||
|
||||
while True:
|
||||
@@ -79,6 +81,7 @@ class Ffmpeg_controller:
|
||||
dp.app = 'ffmpeg'
|
||||
dp.body = b'start'
|
||||
dp.head['filename'] = self.tasklist.pop(0)
|
||||
self.autostart = dp.head['filename']
|
||||
send_queue.put(dp)
|
||||
|
||||
if dp.method == 'post' and dp.body == b'start': # config ffmpeg is server or client
|
||||
@@ -160,6 +163,10 @@ class Ffmpeg_controller:
|
||||
pass
|
||||
os.remove('res/ffmpeg_finished/filelist.txt')
|
||||
|
||||
if self.autostart:
|
||||
os.rename(self.autostart, self.autostart.replace('ffmpeg_task', 'ffmpeg_old'))
|
||||
self.autostart = None
|
||||
|
||||
|
||||
def run_as_server(self):
|
||||
_padding_to_convert = os.listdir('res/ffmpeg_tmp')
|
||||
@@ -183,6 +190,10 @@ class Ffmpeg_controller:
|
||||
ndp.body = result.encode()
|
||||
send_queue.put(ndp)
|
||||
|
||||
elif dp.method == 'post' and dp.body == b'reset':
|
||||
padding_to_convert = already_in_convert
|
||||
already_in_convert = []
|
||||
|
||||
elif dp.method == 'post' and dp.body == b'stop':
|
||||
break
|
||||
|
||||
|
||||
@@ -356,6 +356,7 @@ class Connection:
|
||||
self.netowrk_controller = netowrk_controller
|
||||
self.id = None
|
||||
self.flag = None
|
||||
self.f = None
|
||||
self.buff = b''
|
||||
self.padding_queue = queue.Queue()
|
||||
self.thread_send = None
|
||||
@@ -414,6 +415,7 @@ class Connection:
|
||||
if dp.method == 'file':
|
||||
create_floder(dp.head['filename'])
|
||||
create_floder('tmp/' + dp.head['filename'])
|
||||
self.f = open('tmp/' + dp.head['filename'], 'ab')
|
||||
if dp.method == 'file' and os.path.exists(dp.head['filename']):
|
||||
os.remove(dp.head['filename'])
|
||||
|
||||
@@ -428,8 +430,7 @@ class Connection:
|
||||
if still_need > len(self.buff):
|
||||
# writing tmp data
|
||||
if dp.method == 'file':
|
||||
with open('tmp/' + dp.head['filename'], 'ab') as f:
|
||||
still_need -= f.write(self.buff)
|
||||
still_need -= self.f.write(self.buff)
|
||||
else:
|
||||
dp.body += self.buff
|
||||
still_need -= len(self.buff)
|
||||
@@ -437,8 +438,9 @@ class Connection:
|
||||
|
||||
else: # download complete setuation
|
||||
if dp.method == 'file':
|
||||
with open('tmp/' + dp.head['filename'], 'ab') as f:
|
||||
f.write(self.buff[:still_need])
|
||||
self.f.write(self.buff[:still_need])
|
||||
self.f.close()
|
||||
self.f = None
|
||||
else:
|
||||
dp.body = self.buff[:still_need]
|
||||
self.buff = self.buff[still_need:]
|
||||
@@ -452,6 +454,9 @@ class Connection:
|
||||
|
||||
|
||||
# below code are using to closed connection
|
||||
if self.f:
|
||||
self.f.close()
|
||||
self.f = None
|
||||
self.conn.close()
|
||||
self.netowrk_controller.del_connection(self)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user