陈嘉乐
2020-11-30 c44b10e4447e84dbdfa9105edf460ef364a8f2b3
HDL_ON/DAL/FileUtils.cs
@@ -1,13 +1,7 @@
using System;
using System.IO;
using System.Collections.Generic;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Shared;
//using HDL_ON.UI;
using HDL_ON.DAL.Net;
using HDL_ON.DAL;
using HDL_ON.Entity;
namespace HDL_ON
{
@@ -412,108 +406,108 @@
            }
        }
        /// <summary>
        /// 下载电台、音乐、DLNA等等网络图片
        /// </summary>
        /// <param name="fileName"></param>
        /// <param name="url"></param>
        public static void DownLoadImage(string fileName, string url)
        {
            #region 如果当前目录不存在,就初始化
            string directioryPath = null;
            if (Shared.Application.IsPad)
            {
                directioryPath = "Pad/" + "MusicImage";
            }
            else
            {
                directioryPath = "Phone/" + "MusicImage";
            }
            directioryPath = Path.Combine(RootPath, directioryPath);
            if (!Directory.Exists(directioryPath))
            {
                Directory.CreateDirectory(directioryPath);
            }
            #endregion
        ///// <summary>
        ///// 下载电台、音乐、DLNA等等网络图片
        ///// </summary>
        ///// <param name="fileName"></param>
        ///// <param name="url"></param>
        //public static void DownLoadImage(string fileName, string url)
        //{
        //    #region 如果当前目录不存在,就初始化
        //    string directioryPath = null;
        //    if (Shared.Application.IsPad)
        //    {
        //        directioryPath = "Pad/" + "MusicImage";
        //    }
        //    else
        //    {
        //        directioryPath = "Phone/" + "MusicImage";
        //    }
        //    directioryPath = Path.Combine(RootPath, directioryPath);
        //    if (!Directory.Exists(directioryPath))
        //    {
        //        Directory.CreateDirectory(directioryPath);
        //    }
        //    #endregion
            if (!File.Exists(fileName))
            {
                System.Threading.Tasks.Task.Run(() =>
                {
                    FileStream fs = null;
                    try
                    {
                        MyWebClient webClient = new MyWebClient();
                        byte[] recevieBytes = webClient.DownloadData(new Uri(url));
                        fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);
                        fs.Write(recevieBytes, 0, recevieBytes.Length);
                        fs.Flush();
                    }
                    catch { }
                    finally
                    {
                        if (fs != null)
                        {
                            fs.Close();
                        }
                    }
                });
            }
        }
        //    if (!File.Exists(fileName))
        //    {
        //        System.Threading.Tasks.Task.Run(() =>
        //        {
        //            FileStream fs = null;
        //            try
        //            {
        //                MyWebClient webClient = new MyWebClient();
        //                byte[] recevieBytes = webClient.DownloadData(new Uri(url));
        //                fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);
        //                fs.Write(recevieBytes, 0, recevieBytes.Length);
        //                fs.Flush();
        //            }
        //            catch { }
        //            finally
        //            {
        //                if (fs != null)
        //                {
        //                    fs.Close();
        //                }
        //            }
        //        });
        //    }
        //}
        /// <summary>
        /// 下载电台、音乐、DLNA等等网络图片
        /// </summary>
        /// <param name="fileName"></param>
        /// <param name="url"></param>
        public static string DownLoadImageFormBaidu(string album, string artist)
        {
            var url = "http://tingapi.ting.baidu.com/v1/restserver/ting?from=qianqian&version=2.1.0&method=baidu.ting.search.catalogSug&format=json&query=" + artist;
            string directioryPath = "MusicImage";
            directioryPath = Path.Combine(RootPath, directioryPath);
            if (!Directory.Exists(directioryPath))
            {
                Directory.CreateDirectory(directioryPath);
            }
            try
            {
                var song = Newtonsoft.Json.JsonConvert.DeserializeObject<Song>(new HDL_ON.DAL.Net.MyWebClient().DownloadString(new Uri(url)));
                if (song == null)
                {
                    return null;
                }
                foreach (var tempAlbum in song.album)
                {
                    if (tempAlbum.albumname == album && artist == tempAlbum.artistname)
                    {
                        var bytes = new HDL_ON.DAL.Net.MyWebClient().DownloadData(new Uri(tempAlbum.artistpic.Split('@')[0] + "@s_1,w_160,h_160"));
                        var filePath = Path.Combine(directioryPath, "AlbumArtistImage_" + album);
                        var fs = new FileStream(filePath, FileMode.Create, FileAccess.Write);
                        fs.Write(bytes, 0, bytes.Length);
                        fs.Flush();
                        fs.Close();
                        return filePath;
                    }
                }
        ///// <summary>
        ///// 下载电台、音乐、DLNA等等网络图片
        ///// </summary>
        ///// <param name="fileName"></param>
        ///// <param name="url"></param>
        //public static string DownLoadImageFormBaidu(string album, string artist)
        //{
        //    var url = "http://tingapi.ting.baidu.com/v1/restserver/ting?from=qianqian&version=2.1.0&method=baidu.ting.search.catalogSug&format=json&query=" + artist;
        //    string directioryPath = "MusicImage";
        //    directioryPath = Path.Combine(RootPath, directioryPath);
        //    if (!Directory.Exists(directioryPath))
        //    {
        //        Directory.CreateDirectory(directioryPath);
        //    }
        //    try
        //    {
        //        var song = Newtonsoft.Json.JsonConvert.DeserializeObject<Song>(new HDL_ON.DAL.Net.MyWebClient().DownloadString(new Uri(url)));
        //        if (song == null)
        //        {
        //            return null;
        //        }
        //        foreach (var tempAlbum in song.album)
        //        {
        //            if (tempAlbum.albumname == album && artist == tempAlbum.artistname)
        //            {
        //                var bytes = new HDL_ON.DAL.Net.MyWebClient().DownloadData(new Uri(tempAlbum.artistpic.Split('@')[0] + "@s_1,w_160,h_160"));
        //                var filePath = Path.Combine(directioryPath, "AlbumArtistImage_" + album);
        //                var fs = new FileStream(filePath, FileMode.Create, FileAccess.Write);
        //                fs.Write(bytes, 0, bytes.Length);
        //                fs.Flush();
        //                fs.Close();
        //                return filePath;
        //            }
        //        }
                foreach (var tempArtist in song.artist)
                {
                    if (artist == tempArtist.artistname)
                    {
                        var bytes = new HDL_ON.DAL.Net.MyWebClient().DownloadData(new Uri(tempArtist.artistpic.Split('@')[0] + "@s_1,w_160,h_160"));
                        var filePath = Path.Combine(directioryPath, "AlbumArtistImage_" + artist);
                        var fs = new FileStream(filePath, FileMode.Create, FileAccess.Write);
                        fs.Write(bytes, 0, bytes.Length);
                        fs.Flush();
                        fs.Close();
                        return filePath;
                    }
                }
        //        foreach (var tempArtist in song.artist)
        //        {
        //            if (artist == tempArtist.artistname)
        //            {
        //                var bytes = new HDL_ON.DAL.Net.MyWebClient().DownloadData(new Uri(tempArtist.artistpic.Split('@')[0] + "@s_1,w_160,h_160"));
        //                var filePath = Path.Combine(directioryPath, "AlbumArtistImage_" + artist);
        //                var fs = new FileStream(filePath, FileMode.Create, FileAccess.Write);
        //                fs.Write(bytes, 0, bytes.Length);
        //                fs.Flush();
        //                fs.Close();
        //                return filePath;
        //            }
        //        }
            }
            catch { }
            return null;
        }
        //    }
        //    catch { }
        //    return null;
        //}
    }
    [System.Serializable]