@gen.coroutine
def Unshare(client, obj_store, user_id, device_id, request):
 (yield Activity.VerifyActivityId(client, user_id, device_id, request['activity']['activity_id']))
 (yield gen.Task(Operation.CreateAndExecute, client, user_id, device_id, 'UnshareOperation.Execute', request))
 logging.info(('UNSHARE: user: %d, device: %d, viewpoint: %s, %d episodes, %d photos' % (user_id, device_id, request['viewpoint_id'], len(request['episodes']), sum([len(ep_dict['photo_ids']) for ep_dict in request['episodes']]))))
 raise gen.Return({})

@ gen . coroutine def Unshare ( client , obj_store , user_id , device_id , request ) : ( yield Activity . VerifyActivityId ( client , user_id , device_id , request [ 'activity' ] [ 'activity_id' ] ) ) ( yield gen . Task ( Operation . CreateAndExecute , client , user_id , device_id , 'UnshareOperation.Execute' , request ) ) logging . info ( ( 'UNSHARE: user: %d, device: %d, viewpoint: %s, %d episodes, %d photos' % ( user_id , device_id , request [ 'viewpoint_id' ] , len ( request [ 'episodes' ] ) , sum ( [ len ( ep_dict [ 'photo_ids' ] ) for ep_dict in request [ 'episodes' ] ] ) ) ) ) raise gen . Return ( { } )
unshares photos from the episodes in the specified viewpoint .