public VideoModel VideoInfo(string id, int lang) { VideoModel m = new VideoModel(); lang = LibVisLib.Verify.ValidLanguage(lang); RacMsg msgs = RacMsg.cache.GetMessage((RacMsg.Language)lang); LibVisLib.Video n = LibVisLib.Video.LoadVideo(id); if (n != null) { m = new VideoModel(msgs, n, true, true, true, true); } return(m); }
public FileContentResult Image(string id) { byte[] res = null; try { id = LibVisLib.Verify.VerifyGuid(id); if (id != null) { LibVisLib.Video video = LibVisLib.Video.LoadVideo(id); if (video != null) { try { string path = Base.conf.tempImageFilePath + "\\v-" + id + ".jpg"; System.Drawing.Image img = System.Drawing.Image.FromFile(path); System.IO.MemoryStream stream = new System.IO.MemoryStream(); img.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg); res = stream.ToArray(); } catch { } } } } catch { } if (res == null) { string imagePath = Base.conf.applicationPath.TrimEnd('\\') + "/wwwroot/dist/img/no-image.jpg"; byte[] fileBytes = System.IO.File.ReadAllBytes(imagePath); res = fileBytes; } return(File(res, "image/jpeg")); }
public GenericIdModel Change(string token, [FromBody] ChangeVideoModel video) { GenericIdModel gsm = new GenericIdModel(); gsm.Result = 0; gsm.ResultComplement = ""; gsm.Id = ""; int lang = video.Lang; if (lang < 3 || lang > 4) { lang = 2; } RacLib.RacMsg msgs = RacLib.RacMsg.cache.GetMessage((RacLib.RacMsg.Language)lang); // Verifica o token de autenticação string machine = HttpContext.Features.Get <IHttpConnectionFeature>()?.RemoteIpAddress.ToString(); string userId = SessionCode.ValidateSessionCode(token, machine); if (userId == null) { gsm.Result = (int)RacMsg.Id.InvalidToken; gsm.ResultComplement = msgs.Get(RacMsg.Id.InvalidToken); } LibVisLib.Profile prf = LibVisLib.Profile.LoadProfile(userId); if (prf == null) { gsm.Result = (int)RacMsg.Id.UserNotFound; gsm.ResultComplement = msgs.Get(RacMsg.Id.UserNotFound); } if (gsm.Result == 0) { if (prf.user.profile < BaseUser.InternalSystemProfile.InternalStaff) { gsm.Result = (int)RacMsg.Id.Number; gsm.ResultComplement = "Você não tem direitos para cadastrar vídeos; "; } try { if (!LibVisLib.Verify.AcceptGuid(video.Id)) { gsm.Result = (int)RacLib.RacMsg.Id.Error; gsm.ResultComplement += "Caracteres inválidos no Id do vídeo; "; RacLib.BaseLog.log.Log(RacLib.BaseLog.LogType.Error, "errId: Invalid chars"); } if (!LibVisLib.Verify.AcceptInteger(video.Categ)) { gsm.Result = (int)RacLib.RacMsg.Id.Error; gsm.ResultComplement += "Caracteres inválidos nas categorias; "; RacLib.BaseLog.log.Log(RacLib.BaseLog.LogType.Error, "errCateg: Invalid chars"); } string r0 = ""; if (!LibVisLib.Verify.AcceptFreeText(video.Title, ref r0)) { gsm.Result = (int)RacLib.RacMsg.Id.Error; gsm.ResultComplement += "Caracteres inválidos no título (" + r0 + "); "; RacLib.BaseLog.log.Log(RacLib.BaseLog.LogType.Error, "errTitle: Invalid chars"); } string r1 = ""; if (!LibVisLib.Verify.AcceptMultilineFreeText(video.Description, ref r1)) { gsm.Result = (int)RacLib.RacMsg.Id.Error; gsm.ResultComplement += "Caracteres inválidos na descrição (" + r1 + "); "; RacLib.BaseLog.log.Log(RacLib.BaseLog.LogType.Error, "errDescription: Invalid chars (" + r1 + "); "); } string r2 = ""; if (!LibVisLib.Verify.AcceptFreeText(video.Tags, ref r2)) { gsm.Result = (int)RacLib.RacMsg.Id.Error; gsm.ResultComplement += "Caracteres inválidos na tag (" + r2 + "); "; RacLib.BaseLog.log.Log(RacLib.BaseLog.LogType.Error, "errTags: Invalid chars"); } r1 = ""; if (!LibVisLib.Verify.AcceptFreeText(video.Image, ref r1)) { gsm.Result = (int)RacLib.RacMsg.Id.Error; gsm.ResultComplement += "Caracteres inválidos nos dados da imagem (" + r1 + "); "; RacLib.BaseLog.log.Log(RacLib.BaseLog.LogType.Error, "errImage: Invalid chars (imagem base64) (" + r1 + "); "); } if (!LibVisLib.Verify.AcceptUrl(video.YoutubeLink)) { gsm.Result = (int)RacLib.RacMsg.Id.Error; gsm.ResultComplement += "Caracteres inválidos no link do youtube; "; RacLib.BaseLog.log.Log(RacLib.BaseLog.LogType.Error, "errYoutubeLink: Invalid chars"); } if (!LibVisLib.Verify.AcceptUrl(video.BitchuteLink)) { gsm.Result = (int)RacLib.RacMsg.Id.Error; gsm.ResultComplement += "Caracteres inválidos no link do bitchute; "; RacLib.BaseLog.log.Log(RacLib.BaseLog.LogType.Error, "errBitchuteLink: Invalid chars"); } r1 = ""; if (!LibVisLib.Verify.AcceptMultilineFreeText(video.Script, ref r1)) { gsm.Result = (int)RacLib.RacMsg.Id.Error; gsm.ResultComplement += "Caracteres inválidos na descrição (" + r1 + "); "; RacLib.BaseLog.log.Log(RacLib.BaseLog.LogType.Error, "errDescription: Invalid chars (" + r1 + "); "); } string imagem = video.Image; string[] imagempart = imagem.Split(','); if (imagempart.Length > 0) { imagem = imagempart[imagempart.Length - 1]; } string videoId = LibVisLib.Verify.VerifyGuid(video.Id); string title = LibVisLib.Verify.VerifyFreeText(video.Title); string tags = LibVisLib.Verify.VerifyFreeText(video.Tags); string description = LibVisLib.Verify.VerifyMultilineFreeText(video.Description); string categ = LibVisLib.Verify.VerifyInteger(video.Categ); string youtubelink = LibVisLib.Verify.VerifyUrl(video.YoutubeLink); string bitchutelink = LibVisLib.Verify.VerifyUrl(video.BitchuteLink); string script = LibVisLib.Verify.VerifyMultilineFreeText(video.Script); if (videoId == null || videoId.Length < 36) { gsm.Result = (int)RacLib.RacMsg.Id.Error; gsm.ResultComplement += "Id do vídeo inválido; "; RacLib.BaseLog.log.Log(RacLib.BaseLog.LogType.Error, "errId: Id inválido"); } if (title.Length < 10) { gsm.Result = (int)RacLib.RacMsg.Id.Error; gsm.ResultComplement += "Titulo muito pequeno (mínimo 10 caracteres); "; RacLib.BaseLog.log.Log(RacLib.BaseLog.LogType.Error, "errTitle: required at least 10 chars"); } if (title.Length > 150) { gsm.Result = (int)RacLib.RacMsg.Id.Error; gsm.ResultComplement += "Titulo muito grande (máximo 150 caracteres); "; RacLib.BaseLog.log.Log(RacLib.BaseLog.LogType.Error, "errTitle: Content too big"); } if (description.Length < 10) { gsm.Result = (int)RacLib.RacMsg.Id.Error; gsm.ResultComplement += "Texto muito pequeno (mínimo 10 caracteres); "; RacLib.BaseLog.log.Log(RacLib.BaseLog.LogType.Error, "errTexto: required at least 10 chars"); } if (description.Length > 5000) { gsm.Result = (int)RacLib.RacMsg.Id.Error; gsm.ResultComplement += "Descrição muito grande (máximo 5k caracteres); "; RacLib.BaseLog.log.Log(RacLib.BaseLog.LogType.Error, "errDescription: Content too big"); } if (script.Length > 100000) { gsm.Result = (int)RacLib.RacMsg.Id.Error; gsm.ResultComplement += "Script muito grande (máximo 100k caracteres); "; RacLib.BaseLog.log.Log(RacLib.BaseLog.LogType.Error, "errScript: Content too big"); } if (imagem.Length > 5000000) { gsm.Result = (int)RacLib.RacMsg.Id.Error; gsm.ResultComplement += "Imagem muito grande (máximo 500k caracteres); "; RacLib.BaseLog.log.Log(RacLib.BaseLog.LogType.Error, "errImage: Content too big"); } if (gsm.Result == 0) { LibVisLib.Video vid = Video.LoadVideo(videoId); vid.title = title; vid.description = description; vid.released = DateTime.Now; vid.script = script; vid.linkBitchute = bitchutelink; vid.linkYoutube = youtubelink; vid.tags = tags; vid.language = (RacMsg.Language)lang; vid.categories = new List <string>(); int ic = 0; for (int i = 0; i < LibVisLib.Category.categories.Count; i++) { if (!LibVisLib.Category.categories[i].main) { if (ic < categ.Length && categ[ic++] == '1') { vid.categories.Add(Category.categories[i].label); } } } vid.NormalizeMain(); vid.Save(); byte[] str = Convert.FromBase64String(imagem); MemoryStream ms = new MemoryStream(str, 0, str.Length); ms.Write(str, 0, str.Length); System.Drawing.Image img = System.Drawing.Image.FromStream(ms, true); string path = Base.conf.tempImageFilePath + "\\v-" + vid.id + ".jpg"; img.Save(path, System.Drawing.Imaging.ImageFormat.Jpeg); VideoAction act = new VideoAction(vid); act.date = vid.released; act.type = VideoAction.ActionType.Created; act.userId = userId; act.show = true; act.observation = ""; act.Save(); gsm.Id = vid.id; } } catch (Exception ex) { if (!ex.Message.StartsWith("Thread was being aborted")) { gsm.Result = (int)RacLib.RacMsg.Id.InternalError; gsm.ResultComplement += ex.Message; RacLib.BaseLog.log.Log(RacLib.BaseLog.LogType.InternalError, "Exception in form"); RacLib.BaseLog.log.Log(ex); } } } return(gsm); }