/// <summary> /// 下载图片 /// </summary> /// <param name="url"></param> /// <returns></returns> private string DownloadImage(string url) { string localFile = Path.GetTempPath() + Guid.NewGuid().ToString("N"); // 下载 bool isSuccessed = StorageUtils.DownloadImage(url, localFile); if (isSuccessed) { try { string md5 = Hash.GetMD5HashFromFile(localFile); if (File.Exists(localFile)) { string destFile = $"{StorageManager.GetCover()}/{md5}"; try { File.Delete(destFile); } catch { } // 移动到指定位置 File.Move(localFile, destFile); return(md5); } else { return(null); } } catch (Exception e) { Utils.Debugging.Console.PrintLine("DownloadImage()发生异常: {0}", e); LogManager.Error("StorageCover", e); return(null); } } return(null); }
/// <summary> /// 获取封面 /// </summary> /// <param name="aid"></param> /// <param name="bvid"></param> /// <param name="cid"></param> /// <param name="url"></param> /// <returns></returns> public string GetCover(long avid, string bvid, long cid, string url) { CoverDb coverDb = new CoverDb(); Cover cover = coverDb.QueryByUrl(url); // 如果存在,直接返回 // 如果不存在,则先下载 if (cover != null) { string coverPath = $"{StorageManager.GetCover()}/{cover.Md5}"; if (File.Exists(coverPath)) { Cover newCover = new Cover { Avid = avid, Bvid = bvid, Cid = cid, Url = url, Md5 = cover.Md5 }; coverDb.Update(newCover); //coverDb.Close(); return($"{StorageManager.GetCover()}/{cover.Md5}"); } else { string md5 = DownloadImage(url); if (md5 != null) { Cover newCover = new Cover { Avid = avid, Bvid = bvid, Cid = cid, Url = url, Md5 = md5 }; coverDb.Update(newCover); //coverDb.Close(); return($"{StorageManager.GetCover()}/{md5}"); } else { //coverDb.Close(); return(null); } } } else { string md5 = DownloadImage(url); if (md5 != null) { Cover newCover = new Cover { Avid = avid, Bvid = bvid, Cid = cid, Url = url, Md5 = md5 }; coverDb.Insert(newCover); //coverDb.Close(); return($"{StorageManager.GetCover()}/{md5}"); } else { //coverDb.Close(); return(null); } } }