本文整理汇总了Python中xmodule.video_module.transcripts_utils.remove_subs_from_store函数的典型用法代码示例。如果您正苦于以下问题:Python remove_subs_from_store函数的具体用法?Python remove_subs_from_store怎么用?Python remove_subs_from_store使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了remove_subs_from_store函数的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: choose_transcripts
def choose_transcripts(request):
"""
Replaces html5 subtitles, presented for both html5 sources, with chosen one.
Code removes rejected html5 subtitles and updates sub attribute with chosen html5_id.
It does nothing with youtube id's.
Returns: status `Success` and resulted item.sub value or status `Error` and HTTP 400.
"""
response = {
'status': 'Error',
'subs': '',
}
try:
data, videos, item = _validate_transcripts_data(request)
except TranscriptsRequestValidationException as e:
return error_response(response, e.message)
html5_id = data.get('html5_id') # html5_id chosen by user
# find rejected html5_id and remove appropriate subs from store
html5_id_to_remove = [x for x in videos['html5'] if x != html5_id]
if html5_id_to_remove:
remove_subs_from_store(html5_id_to_remove, item)
if item.sub != html5_id: # update sub value
item.sub = html5_id
item.save_with_metadata(request.user)
response = {'status': 'Success', 'subs': item.sub}
return JsonResponse(response)
开发者ID:BeiLuoShiMen,项目名称:edx-platform,代码行数:32,代码来源:transcripts_ajax.py
示例2: test_success_download_nonyoutube
def test_success_download_nonyoutube(self):
subs_id = str(uuid4())
self.item.data = textwrap.dedent("""
<video youtube="" sub="{}">
<source src="http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4"/>
<source src="http://www.quirksmode.org/html5/videos/big_buck_bunny.webm"/>
<source src="http://www.quirksmode.org/html5/videos/big_buck_bunny.ogv"/>
</video>
""".format(subs_id))
modulestore().update_item(self.item, self.user.id)
subs = {
'start': [100, 200, 240],
'end': [200, 240, 380],
'text': [
'subs #1',
'subs #2',
'subs #3'
]
}
self.save_subs_to_store(subs, subs_id)
link = reverse('download_transcripts')
resp = self.client.get(link, {'locator': self.video_usage_key, 'subs_id': subs_id})
self.assertEqual(resp.status_code, 200)
self.assertEqual(
resp.content,
'0\n00:00:00,100 --> 00:00:00,200\nsubs #1\n\n1\n00:00:00,200 --> '
'00:00:00,240\nsubs #2\n\n2\n00:00:00,240 --> 00:00:00,380\nsubs #3\n\n'
)
transcripts_utils.remove_subs_from_store(subs_id, self.item)
开发者ID:Colin-Fredericks,项目名称:edx-platform,代码行数:31,代码来源:test_transcripts.py
示例3: test_successful_download_youtube
def test_successful_download_youtube(self):
""" Tests downloading and saving transcripts from youtube """
subs_id = 'JMD_ifUUfsU'
self.item.data = '<video youtube="1:' + subs_id + '" />'
modulestore().update_item(self.item, self.user.id)
subs = {
'start': [100, 200, 240],
'end': [200, 240, 380],
'text': [
'subs #1',
'subs #2',
'subs #3'
]
}
def mock_youtube_download(youtube_id, video_descriptor, settings):
# Mocks downloading from youtube by saving straight into modulestore
self.save_subs_to_store(subs, youtube_id)
with patch('contentstore.views.utilities.captions.download_youtube_subs') as youtube_download:
youtube_download.side_effect = mock_youtube_download
link = self.captions_url
data = {
'update_array': json.dumps([self.item_location_string]),
}
resp = self.client.post(link, data, HTTP_ACCEPT='application/json')
self.assertEqual(resp.status_code, 200)
video_response_status = json.loads(resp.content)[0]
self.assertDictEqual(
video_response_status,
{
u'status': u'Success',
u'html5_equal': False,
u'youtube_local': True,
u'is_youtube_mode': True,
u'youtube_server': False,
u'command': u'found',
u'location': unicode(self.item_location_string),
u'current_item_subs': subs_id,
u'youtube_diff': True,
u'html5_local': [],
u'subs': subs_id,
}
)
# Ensure subs for video properly set
item = modulestore().get_item(self.item_location)
self.assertEqual(item.sub, subs_id)
transcripts_utils.remove_subs_from_store(subs_id, self.item)
开发者ID:caesar2164,项目名称:edx-platform,代码行数:52,代码来源:test_captions.py
示例4: test_success_download_nonyoutube
def test_success_download_nonyoutube(self):
subs_id = str(uuid4())
self.item.data = textwrap.dedent("""
<video youtube="" sub="{}">
<source src="http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4"/>
<source src="http://www.quirksmode.org/html5/videos/big_buck_bunny.webm"/>
<source src="http://www.quirksmode.org/html5/videos/big_buck_bunny.ogv"/>
</video>
""".format(subs_id))
modulestore().update_item(self.item, self.user.id)
subs = {
'start': [100, 200, 240],
'end': [200, 240, 380],
'text': [
'subs #1',
'subs #2',
'subs #3'
]
}
self.save_subs_to_store(subs, subs_id)
link = self.captions_url
data = {
'video': json.dumps({'location': self.item_location_string}),
}
resp = self.client.get(link, data, HTTP_ACCEPT='application/json')
self.assertEqual(resp.status_code, 200)
self.assertDictEqual(
json.loads(resp.content),
{
u'status': True,
u'location': self.item_location_string,
u'command': u'use_existing',
u'current_item_subs': subs_id,
u'html5_equal': False,
u'html5_local': [],
u'is_youtube_mode': False,
u'status': u'Success',
u'subs': u'',
u'youtube_diff': True,
u'youtube_local': False,
u'youtube_server': False
}
)
transcripts_utils.remove_subs_from_store(subs_id, self.item)
开发者ID:caesar2164,项目名称:edx-platform,代码行数:47,代码来源:test_captions.py
示例5: test_success_download_nonyoutube
def test_success_download_nonyoutube(self):
subs_id = str(uuid4())
self.item.data = textwrap.dedent(
"""
<video youtube="" sub="{}">
<source src="http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4"/>
<source src="http://www.quirksmode.org/html5/videos/big_buck_bunny.webm"/>
<source src="http://www.quirksmode.org/html5/videos/big_buck_bunny.ogv"/>
</video>
""".format(
subs_id
)
)
modulestore().update_item(self.item, self.user.id)
subs = {"start": [100, 200, 240], "end": [200, 240, 380], "text": ["subs #1", "subs #2", "subs #3"]}
self.save_subs_to_store(subs, subs_id)
data = {
"locator": unicode(self.video_usage_key),
"videos": [{"type": "html5", "video": subs_id, "mode": "mp4"}],
}
link = reverse("check_transcripts")
resp = self.client.get(link, {"data": json.dumps(data)})
self.assertEqual(resp.status_code, 200)
self.assertDictEqual(
json.loads(resp.content),
{
u"status": u"Success",
u"subs": unicode(subs_id),
u"youtube_local": False,
u"is_youtube_mode": False,
u"youtube_server": False,
u"command": u"found",
u"current_item_subs": unicode(subs_id),
u"youtube_diff": True,
u"html5_local": [unicode(subs_id)],
u"html5_equal": False,
},
)
transcripts_utils.remove_subs_from_store(subs_id, self.item)
开发者ID:AdityaKashyap,项目名称:edx-platform,代码行数:42,代码来源:test_transcripts.py
示例6: save_transcripts
def save_transcripts(request):
"""
Saves video module with updated values of fields.
Returns: status `Success` or status `Error` and HTTP 400.
"""
response = {'status': 'Error'}
data = json.loads(request.GET.get('data', '{}'))
if not data:
return error_response(response, 'Incoming video data is empty.')
try:
item = _get_item(request, data)
except (ItemNotFoundError, InvalidLocationError, InsufficientSpecificationError):
return error_response(response, "Can't find item by locator.")
metadata = data.get('metadata')
if metadata is not None:
new_sub = metadata.get('sub')
for metadata_key, value in metadata.items():
setattr(item, metadata_key, value)
item.save_with_metadata(request.user) # item becomes updated with new values
if new_sub:
manage_video_subtitles_save(item, request.user)
else:
# If `new_sub` is empty, it means that user explicitly does not want to use
# transcripts for current video ids and we remove all transcripts from storage.
current_subs = data.get('current_subs')
if current_subs is not None:
for sub in current_subs:
remove_subs_from_store(sub, item)
response['status'] = 'Success'
return JsonResponse(response)
开发者ID:BeiLuoShiMen,项目名称:edx-platform,代码行数:39,代码来源:transcripts_ajax.py
示例7: save_transcripts
def save_transcripts(request):
"""
Saves video module with updated values of fields.
Returns: status `Success` or status `Error` and HTTP 400.
"""
response = {"status": "Error"}
data = json.loads(request.GET.get("data", "{}"))
if not data:
return error_response(response, "Incoming video data is empty.")
try:
item = _get_item(request, data)
except (InvalidKeyError, ItemNotFoundError):
return error_response(response, "Can't find item by locator.")
metadata = data.get("metadata")
if metadata is not None:
new_sub = metadata.get("sub")
for metadata_key, value in metadata.items():
setattr(item, metadata_key, value)
item.save_with_metadata(request.user) # item becomes updated with new values
if new_sub:
manage_video_subtitles_save(item, request.user)
else:
# If `new_sub` is empty, it means that user explicitly does not want to use
# transcripts for current video ids and we remove all transcripts from storage.
current_subs = data.get("current_subs")
if current_subs is not None:
for sub in current_subs:
remove_subs_from_store(sub, item)
response["status"] = "Success"
return JsonResponse(response)
开发者ID:Bvic,项目名称:edx-platform,代码行数:39,代码来源:transcripts_ajax.py
注:本文中的xmodule.video_module.transcripts_utils.remove_subs_from_store函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论