classin.client.api.broadcast 源代码

# encoding: utf-8
from __future__ import absolute_import, unicode_literals

import json
from optionaldict import optionaldict

from .base import BaseAPI


[文档]class Broadcast(BaseAPI): """ 直播相关接口 https://docs.eeo.cn/api/zh-hans/broadcast/ """
[文档] def set_class_video_multiple( self, course_id, class_info=() ): """ 课节设置录课、直播、回放(多个) https://docs.eeo.cn/api/zh-hans/broadcast/setClassVideoMultiple.html :param course_id: 课程 ID :param class_info: 课节信息数组 """ assert isinstance(class_info, (list, tuple)) return self._post( params={'action': 'setClassVideoMultiple'}, data=optionaldict({ 'courseId': course_id, 'classJson': json.dumps(class_info), }), )
[文档] def delete_class_video( self, class_id, file_id=None ): """ 删除单个课节视频 https://docs.eeo.cn/api/zh-hans/broadcast/deleteClassVideo.html :param class_id: 课节 ID :param file_id: 课节下某个视频片段文件的ID """ return self._post( params={'action': 'deleteClassVideo'}, data=optionaldict({ 'classId': class_id, 'fileId': file_id, }), )
[文档] def update_class_lock_status( self, class_id, is_lock ): """ 修改课节锁定状态 https://docs.eeo.cn/api/zh-hans/broadcast/updateClassLockStatus.html :param course_id: 课程 ID :param is_lock: 是否锁定 """ return self._post( params={'action': 'updateClassLockStatus'}, data=optionaldict({ 'classId': class_id, 'isLock': 1 if is_lock else 0, }), )
[文档] def get_webcast_url( self, course_id, class_id=None ): """ 获取课程直播/回放播放器地址 https://docs.eeo.cn/api/zh-hans/broadcast/getWebcastUrl.html :param course_id: 课程 ID :param class_id: 课节 ID """ return self._post( params={'action': 'getWebcastUrl'}, data=optionaldict({ 'courseId': course_id, 'classId': class_id, }), )
[文档] def get_webcast_partner_url( self, account, nick_name, course_id, class_id=None, partner_url='https://www.eeo.cn/webcast_partner.html' ): """ 获取课程直播/回放播放器免二次登陆地址 https://docs.eeo.cn/api/zh-hans/broadcast/getWebcastUrl.html :param account: 账户 :param nick_name: 昵称 :param course_id: 课程 ID :param class_id: 课节 ID :param partner_url: url前缀 """ url = self.get_webcast_url(course_id, class_id) return self.get_webcast_partner_url_by_url(account, nick_name, url, partner_url)
[文档] def get_webcast_partner_url_by_url( self, account, nick_name, url, partner_url='https://www.eeo.cn/webcast_partner.html' ): """ 获取课程直播/回放播放器免二次登陆地址 https://docs.eeo.cn/api/zh-hans/broadcast/getWebcastUrl.html :param account: 账户 :param nick_name: 昵称 :param url: 接口获取到的url :param partner_url: url前缀 """ return self._client.get_partner_url(account, nick_name, url, 'courseKey', partner_url)
[文档] def get_login_linked( self, uid, class_id, course_id, life_time=86400, device_type=1 ): """ 获取唤醒客户端并进入教室链接 https://docs.eeo.cn/api/zh-hans/getLoginLinked.html :param uid: 用户 UID :param class_id: 课节 ID :param course_id: 课程 ID :param life_time: 密钥有效时长(单位:秒) :param device_type: 1代表 Windows/Mac OS 端;2代表 iOS 移动端;3代表 Android """ return self._post( params={'action': 'getLoginLinked'}, data=optionaldict({ 'uid': uid, 'lifeTime': life_time, 'courseId': course_id, 'classId': class_id, 'deviceType': device_type, }), )