Return continuation even if no chat data

This commit is contained in:
taizan-hokuto
2020-02-16 23:31:25 +09:00
parent d8c1c4491d
commit eae485b914
4 changed files with 34 additions and 30 deletions

View File

@@ -1,4 +1,3 @@
import aiohttp
import asyncio
import json
@@ -105,7 +104,7 @@ def download_patch(callback, blocks, video_id):
if callback:
callback(actions, last - first)
return Patch(actions, continuation, first, last)
return Patch()
return Patch(continuation = continuation)
"""
allocate workers and assign blocks.
"""

View File

@@ -22,7 +22,6 @@ def fill(block:Block, patch:Patch):
if line_offset < block_end:
break
patch.chats.pop()
set_patch(block, patch._replace(
continuation = None,
last = line_offset
@@ -34,8 +33,9 @@ def fill(block:Block, patch:Patch):
def split(parent_block:Block, child_block:Block, patch:Patch):
parent_block.during_split = False
"""patch overlaps with parent_block"""
if patch.first <= parent_block.last:
''' When patch overlaps with parent_block,
discard this block. '''
child_block.continuation = None
''' Leave child_block.during_split == True
to exclude from during_split sequence. '''

View File

@@ -66,7 +66,7 @@ def test_duplicate_head():
[4] , [5] -> append [4]
append [5]
result : [0] , [3] , [5]
result : [2] , [4] , [5]
"""
#chat data offsets are ignored.

View File

@@ -23,6 +23,8 @@ def test_split_0():
"""
Normal case
~~~~~~ before ~~~~~~
@parent_block (# = already downloaded)
first last end
@@ -31,8 +33,8 @@ def test_split_0():
@child_block
first = last = 0 end=parent_end
---------------------------------------------------|
first = last = 0 end (=parent_end)
| |
@fetched patch
@@ -43,6 +45,9 @@ def test_split_0():
|
V
~~~~~~ after ~~~~~~
@parent_block
first last end (after split)
@@ -87,8 +92,8 @@ def test_split_1():
|####################|#####|---------------------|
^
@child_block
first = last = 0 end=parent_end
---------------------------------------------------|
first = last = 0 end (=parent_end)
| |
@fetched patch
|-- patch --|
@@ -135,8 +140,8 @@ def test_split_2():
|########------------------------------|
@child_block
first = last = 0 end=parent_end
-----------------------------------------|
first = last = 0 end (=parent_end)
| |
continuation:succeed from patch
@@ -196,8 +201,8 @@ def test_split_none():
|####################|###################|-------|
^
@child_block
first = last = 0 end=parent_end
---------------------------------------------------|
first = last = 0 end (=parent_end)
| |
@fetched patch
|-- patch --|
@@ -212,7 +217,7 @@ def test_split_none():
@parent_block
first last end (before split)
|########################################|-------|
.
@child_block
............ -> discard all data.