/////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////离线拷贝/////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
using LitJson;
using System.Collections;
using System.IO;
using System.Text;
using UnityEngine;
using UnityEngine.Networking;
public class OfflineCopy : MonoBehaviour
{
float timers;
void Start()
{
Invoke("GetVideoInfo", 1f);
}
//每十分钟获取一次资源信息
private void Update()
{
timers += Time.deltaTime;
if (timers >= 600f)
{
timers = 0f;
GetVideoInfo();
}
}
///
/// 获取资源信息,并记录到本地
///
public void GetVideoInfo()
{
if (Directory.Exists(Config.AllAssetsInfoPath))
{
Directory.Delete(Config.AllAssetsInfoPath, true);
}
GameTools.CreateDirectory(Config.AllAssetsInfoPath);
StartCoroutine(GetJsonData());
}
//获取资源信息
IEnumerator GetJsonData()
{
//检查网络是否可以访问
using (UnityWebRequest request = UnityWebRequest.Get("http://www.baidu.com"))
{
yield return request.SendWebRequest();
if (request.result != UnityWebRequest.Result.Success)
{
//ClientManager._Instance.ShowLog("网络无法访问");
yield break;
}
else
{
////ClientManager._Instance.ShowLog("网络可用");
}
}
WWWForm form = new WWWForm();
WebNet.Encrypt(Config.SN);
//Debug.Log(WebNet.s);//加密前字符串
//Debug.Log(WebNet.Authorization);//加密后token
form.AddField("deviceSN", Config.SN);
form.AddField("password", WebNet.password);
using (UnityWebRequest req = UnityWebRequest.Post(WebNet.assetsUrl, form))
{
yield return req.SendWebRequest();
JsonData jsonData = JsonMapper.ToObject(req.downloadHandler.text);
//Debug.Log(jsonData["code"]);
//Debug.Log(jsonData["msg"]);
if (jsonData["code"].ToString() == "200")
{
JsonData data = jsonData["data"];
JsonData video = data["video"];
for (int i = 0; i < video.Count; i++)
{
Assets videoData = new Assets();
videoData.resource_id = int.Parse(video[i]["resource_id"].ToString());
videoData.resource_name = video[i]["resource_name"].ToString();
videoData.url = video[i]["url"].ToString();
videoData.brief = video[i]["brief"].ToString();
videoData.icon = video[i]["icon"].ToString();
videoData.file_size = int.Parse(video[i]["file_size"].ToString());
videoData.group_id = int.Parse(video[i]["group_id"].ToString());
videoData.group_name = video[i]["group_name"].ToString();
videoData.device_id = int.Parse(video[i]["device_id"].ToString());
videoData.play_time = int.Parse(video[i]["play_time"].ToString());
videoData.province = video[i]["province"].ToString();
videoData.city = video[i]["city"].ToString();
videoData.updated_at = video[i]["updated_at"].ToString();
//Debug.Log("资源id:" + videoData.resource_id);
//Debug.Log("资源名字:" + videoData.resource_name);
//Debug.Log("资源地址:" + videoData.url);
//Debug.Log("资源简介:" + videoData.brief);
//Debug.Log("资源缩略图:" + videoData.icon);
//Debug.Log("资源大小:" + videoData.file_size);
//Debug.Log("资源分组id:" + videoData.group_id);
//Debug.Log("资源名称:" + videoData.group_name);
//Debug.Log("设备id:" + videoData.device_id);
//Debug.Log("播放次数:" + videoData.play_time);
//Debug.Log("分组所属省份:" + videoData.province);
//Debug.Log("分组所属城市:" + videoData.city);
//Debug.Log("更新日期:" + videoData.updated_at);
RecordInfo(videoData);
}
}
}
}
///
/// 记录资源信息
///
void RecordInfo(Assets videoData)
{
string json = JsonUtility.ToJson(videoData);
byte[] bytes = Encoding.UTF8.GetBytes(json);
string path = Path.Combine(Config.AllAssetsInfoPath, $"{videoData.resource_name}.json");
GameTools.WriteFile(path, bytes);
}
}