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