let options = {
    SDKAppID: 1400435767 // 接入时需要将0替换为您的即时通信 IM 应用的 SDKAppID
};
window.tim = TIM.create(options);
tim.setLogLevel(0);
function getname(id){
  return new Promise((res, rej)=>{
    let promise = tim.getGroupMemberProfile({
      groupID:window.roomid,
      userIDList:[id],
      memberCustomFieldFilter:["nick"]
    })
    promise.then(function(imResponse) {
      console.log(imResponse.data.memberList); // 群成员列表
      res(imResponse.data.memberList[0].nick)
    }).catch(function(imError) {
      console.warn('getGroupMemberProfile error:', imError);
      setTimeout(()=>{
        getname(id).then((e)=>{
          res(e)
        })
      },1000)
    });
  })
  
}
function getgrouplist(){
    let promise = tim.getGroupOnlineMemberCount(window.roomid);
    promise.then(function(imResponse) {
      console.log(imResponse.data.memberCount);
      if(imResponse.data.memberCount < 3){
        $(".video-box").eq(0).css("grid-area","1/1/3/5")
        $(".liaotian").css("grid-area","3/1/4/5")
      }else{
        $(".video-box").eq(0).css("grid-area","1/1/3/4")
        $(".liaotian").css("grid-area","3/1/4/4")
      }
    }).catch(function(imError) {
      console.warn('getGroupOnlineMemberCount error:', imError); // 获取直播群在线人数失败的相关信息
    });
}

function formatDateTime (inputTime) {
  inputTime = inputTime * 1000
  var date = new Date(inputTime);
  var y = date.getFullYear();
  var m = date.getMonth() + 1;
  m = m < 10 ? ('0' + m) : m;
  var d = date.getDate();
  d = d < 10 ? ('0' + d) : d;
  var h = date.getHours();
  h = h < 10 ? ('0' + h) : h;
  var minute = date.getMinutes();
  var second = date.getSeconds();
  minute = minute < 10 ? ('0' + minute) : minute;
  second = second < 10 ? ('0' + second) : second;
  return  h + ':' + minute + ':' + second;
}
  
  tim.on(TIM.EVENT.MESSAGE_RECEIVED, function(event) {
    // 收到推送的单聊、群聊、群提示、群系统通知的新消息，可通过遍历 event.data 获取消息列表数据并渲染到页面
    // event.name - TIM.EVENT.MESSAGE_RECEIVED
    // event.data - 存储 Message 对象的数组 - [Message]
    console.log(event.data)
    for(let i in event.data){
      if(!event.data[i].payload.text){
        break;
      }
      if(event.data[i].payload.text.includes("beelinkMuteUserId") || event.data[i].payload.text.includes("inkTurnOffTheCameraUserId")){
        break;
      }
      const list = $("#liaotianliebiao")
      const html = ` <div>
      <p>${formatDateTime(event.data[i].time)}</p>
          <p><span>${event.data[i].nick}:</span>${event.data[i].payload.text}</p>
      </div>`
      
      list.append(html)
    }
  });
  
  tim.on(TIM.EVENT.MESSAGE_REVOKED, function(event) {
    // 收到消息被撤回的通知
    // event.name - TIM.EVENT.MESSAGE_REVOKED
    // event.data - 存储 Message 对象的数组 - [Message] - 每个 Message 对象的 isRevoked 属性值为 true
  });
  
  tim.on(TIM.EVENT.MESSAGE_READ_BY_PEER, function(event) {
    // SDK 收到对端已读消息的通知，即已读回执。使用前需要将 SDK 版本升级至 v2.7.0 或以上。仅支持单聊会话。
    // event.name - TIM.EVENT.MESSAGE_READ_BY_PEER
    // event.data - event.data - 存储 Message 对象的数组 - [Message] - 每个 Message 对象的 isPeerRead 属性值为 true
  });
  
  tim.on(TIM.EVENT.CONVERSATION_LIST_UPDATED, function(event) {
    // 收到会话列表更新通知，可通过遍历 event.data 获取会话列表数据并渲染到页面
    // event.name - TIM.EVENT.CONVERSATION_LIST_UPDATED
    // event.data - 存储 Conversation 对象的数组 - [Conversation]
  });
  
  tim.on(TIM.EVENT.GROUP_LIST_UPDATED, function(event) {
    console.log(event.data)
    // 收到群组列表更新通知，可通过遍历 event.data 获取群组列表数据并渲染到页面
    // event.name - TIM.EVENT.GROUP_LIST_UPDATED
    // event.data - 存储 Group 对象的数组 - [Group]
  });
  
  tim.on(TIM.EVENT.PROFILE_UPDATED, function(event) {
    // 收到自己或好友的资料变更通知
    // event.name - TIM.EVENT.PROFILE_UPDATED
    // event.data - 存储 Profile 对象的数组 - [Profile]
  });
  
  tim.on(TIM.EVENT.BLACKLIST_UPDATED, function(event) {
    // 收到黑名单列表更新通知
    // event.name - TIM.EVENT.BLACKLIST_UPDATED
    // event.data - 存储 userID 的数组 - [userID]
  });
  
  tim.on(TIM.EVENT.ERROR, function(event) {
    // 收到 SDK 发生错误通知，可以获取错误码和错误信息
    // event.name - TIM.EVENT.ERROR
    // event.data.code - 错误码
    // event.data.message - 错误信息
  });
  
  tim.on(TIM.EVENT.SDK_NOT_READY, function(event) {
    // 收到 SDK 进入 not ready 状态通知，此时 SDK 无法正常工作
    // event.name - TIM.EVENT.SDK_NOT_READY
  });
  
  tim.on(TIM.EVENT.KICKED_OUT, function(event) {
    console.log("用户下线")
    // 收到被踢下线通知
    // event.name - TIM.EVENT.KICKED_OUT
    // event.data.type - 被踢下线的原因，例如:
    //    - TIM.TYPES.KICKED_OUT_MULT_ACCOUNT 多实例登录被踢
    //    - TIM.TYPES.KICKED_OUT_MULT_DEVICE 多终端登录被踢
    //    - TIM.TYPES.KICKED_OUT_USERSIG_EXPIRED 签名过期被踢 （v2.4.0起支持）。 
  });
  
   tim.on(TIM.EVENT.NET_STATE_CHANGE, function(event) { 
    //  网络状态发生改变（v2.5.0 起支持）。 
    // event.name - TIM.EVENT.NET_STATE_CHANGE 
    // event.data.state 当前网络状态，枚举值及说明如下： 
    //     \- TIM.TYPES.NET_STATE_CONNECTED - 已接入网络 
    //     \- TIM.TYPES.NET_STATE_CONNECTING - 连接中。很可能遇到网络抖动，SDK 在重试。接入侧可根据此状态提示“当前网络不稳定”或“连接中” 
    //    \- TIM.TYPES.NET_STATE_DISCONNECTED - 未接入网络。接入侧可根据此状态提示“当前网络不可用”。SDK 仍会继续重试，若用户网络恢复，SDK 会自动同步消息  
  });
  genTestUserSig(window.mid).then((res)=>{
    tim.login({userID: window.mid, userSig: res.data}).then(function(imResponse) {
      console.log(imResponse.data); // 登录成功
      if (imResponse.data.repeatLogin === true) {
        // 标识账号已登录，本次登录操作为重复登录。v2.5.1 起支持
        console.log(imResponse.data.errorInfo);
      }
    }).catch(function(imError) {
      console.warn('login error:', imError); // 登录失败的相关信息
    });

  })
  tim.on(TIM.EVENT.SDK_READY, function (){
    tim.updateMyProfile({
      nick: window.uname
    });
    const promise = tim.createGroup({
        type: TIM.TYPES.GRP_AVCHATROOM,
        name: 'live',
        groupID: window.roomid
    });

    promise.then(function(imResponse) { // 创建成功
        console.log(imResponse.data.group); // 创建的群的资料
        tim.joinGroup({
            groupID:  window.roomid,
            type: TIM.TYPES.GRP_AVCHATROOM
        }).then((res)=>{
            switch (res.data.status) {
                case TIM.TYPES.JOIN_STATUS_WAIT_APPROVAL: // 等待管理员同意
                break;
                case TIM.TYPES.JOIN_STATUS_SUCCESS: // 加群成功
                console.log(res.data.group); // 加入的群组资料
                break;
                case TIM.TYPES.JOIN_STATUS_ALREADY_IN_GROUP: // 已经在群中
                break;
                default:
                break;
            }
            setInterval(() => {
              getgrouplist()
            }, 2000);
        }).catch((err)=>{
            console.log(err)
        })
    }).catch(function(imError) {
        console.warn('createGroup error:', imError); // 创建群组失败的相关信息
        tim.joinGroup({
            groupID:  window.roomid,
            type: TIM.TYPES.GRP_AVCHATROOM
        }).then((res)=>{
            switch (res.data.status) {
                case TIM.TYPES.JOIN_STATUS_WAIT_APPROVAL: // 等待管理员同意
                break;
                case TIM.TYPES.JOIN_STATUS_SUCCESS: // 加群成功
                console.log(res.data.group); // 加入的群组资料
                break;
                case TIM.TYPES.JOIN_STATUS_ALREADY_IN_GROUP: // 已经在群中
                break;
                default:
                break;
            }
            setInterval(() => {
              getgrouplist()
            }, 2000);
        }).catch((err)=>{
            console.log(err)
        })
    });
    function sendtext(text){
      const m = tim.createTextMessage({
          to: window.roomid,
          conversationType: TIM.TYPES.CONV_GROUP,
          payload: {
              text: text
          }
      })
      const promise = tim.sendMessage(m);
      promise.then(function(imResponse) {
          // 发送成功
          console.log(imResponse);
           
            const list = $("#liaotianliebiao")
            const html = ` <div>
            <p>${formatDateTime(imResponse.data.message.time)}</p>
                <p><span>${window.uname}:</span>${imResponse.data.message.payload.text}</p>
            </div>`
            console.log(html)
            list.append(html)
      }).catch(function(imError) {
          // 发送失败
          console.warn('sendMessage error:', imError);
      });
    }
    $(()=>{
      $("#fasongxiaoxi").click(()=>{
        const text = $("#shurukuang").val()
        console.log(text)
        sendtext(text)
        $("#shurukuang").val("")
      })
      $("#shurukuang").keyup(function(event){  
        if(event.keyCode ==13){  
          //这里填写你要做的事件
         //TODO
         const text = $("#shurukuang").val()
        console.log(text)
        sendtext(text)
        $("#shurukuang").val("")
        }  
      }); 
    })
    

  
  });

    
function sendjinyan(id,type){
  const m = tim.createTextMessage({
      to: window.roomid,
      conversationType: TIM.TYPES.CONV_GROUP,
      payload: {
          text: `beelinkMuteUserId:${id},isClose:${type}`
      }
  })
  const promise = tim.sendMessage(m);
  promise.then(function(imResponse) {
      // 发送成功
      console.log(imResponse);
      
  }).catch(function(imError) {
      // 发送失败
      console.warn('sendMessage error:', imError);
  });
}

function sendsx(id,type){
  const m = tim.createTextMessage({
      to: window.roomid,
      conversationType: TIM.TYPES.CONV_GROUP,
      payload: {
          text: `beelinkTurnOffTheCameraUserId:${id},isClose:${type}`
      }
  })
  const promise = tim.sendMessage(m);
  promise.then(function(imResponse) {
      // 发送成功
      console.log(imResponse);
      
  }).catch(function(imError) {
      // 发送失败
      console.warn('sendMessage error:', imError);
  });
}

  // 开始登录 