public static string GetImageUrl(string hash, IdolImageDataType type) { string s; switch (type) { case IdolImageDataType.Framed: s = "l"; break; case IdolImageDataType.Frameless: s = "l_noframe"; break; case IdolImageDataType.Quest: s = "quest"; break; case IdolImageDataType.LS: s = "ls"; break; case IdolImageDataType.XS: s = "xs"; break; default: return(null); } return($"http://imas.gamedbs.jp/cg/image_sp/card/{s}/{hash}.jpg"); }
public void SetUrl(IdolImageDataType type, string value) { switch (type) { case IdolImageDataType.Framed: ImageUrl = value; break; case IdolImageDataType.Frameless: FramelessImageUrl = value; break; case IdolImageDataType.Quest: QuestImageUrl = value; break; case IdolImageDataType.LS: BannerImageUrl = value; break; case IdolImageDataType.XS: IconImageUrl = value; break; } }
private async Task <bool> AnyImageDataAsync(string hash, IdolImageDataType type) { using (var db = new ImasCDDbContext(_ConnectionString)) { db.Database.CommandTimeout = _Timeout; return(await db.IdolImageData.AnyAsync(_ => _.Hash == hash && _.Type == type)); } }
private async Task <byte[]> GetImageDataAsync(string hash, IdolImageDataType type) { var u = IdolImageData.GetImageUrl(hash, type); using (var wc = new WebClient()) { try { wc.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:52.0) Gecko/20100101 Firefox/52.0"; return(await wc.DownloadDataTaskAsync(u)); } catch { return(null); } } }
public async Task <HttpResponseMessage> GetImageAsync(string hash, IdolImageDataType type) { using (var db = new ImasCDDbContext()) { var d = await db.IdolImageData.FirstOrDefaultAsync(_ => _.Hash == hash && _.Type == type); if (d != null) { if (d.Data == null) { throw new HttpResponseException(HttpStatusCode.NotFound); } return(CreateFileResult(d.Data, "image/jpeg")); } var u = IdolImageData.GetImageUrl(hash, type); byte[] data; using (var wc = new WebClient()) { try { data = await wc.DownloadDataTaskAsync(u); } catch { data = null; } } db.IdolImageData.Add(new IdolImageData() { Hash = hash, Type = type, Data = data }); await db.SaveChangesAsync(); if (data == null) { throw new HttpResponseException(HttpStatusCode.NotFound); } return(CreateFileResult(data, "image/jpeg")); } }
private async Task InsertImageDataAsync(string hash, IdolImageDataType type, byte[] data) { using (var db = new ImasCDDbContext(_ConnectionString)) { db.Database.CommandTimeout = _Timeout; var d = await db.IdolImageData.FirstOrDefaultAsync(_ => _.Hash == hash && _.Type == type); if (d == null) { d = new IdolImageData(); d.Hash = hash; d.Type = type; db.IdolImageData.Add(d); } d.Data = data; await db.SaveChangesAsync(); } }
public string GetUrl(IdolImageDataType type) { switch (type) { case IdolImageDataType.Framed: return(ImageUrl); case IdolImageDataType.Frameless: return(FramelessImageUrl); case IdolImageDataType.Quest: return(QuestImageUrl); case IdolImageDataType.LS: return(BannerImageUrl); case IdolImageDataType.XS: return(IconImageUrl); } return(null); }