Example #1
0
        public VideoListModel Search(string token, int lang, int ini, int max, [FromBody] SearchVideoModel search)
        {
            string userId = null;

            if (lang < 3 || lang > 4)
            {
                lang = 2;
            }

            RacMsg msgs = RacMsg.cache.GetMessage((RacMsg.Language)lang);

            if (token != "" && token != null)
            {
                string machine = HttpContext.Features.Get <IHttpConnectionFeature>()?.RemoteIpAddress.ToString();
                userId = SessionCode.ValidateSessionCode(token, machine);
            }

            VideoListModel m = new VideoListModel();

            if (!LibVisLib.Verify.AcceptFreeText(search.SearchString))
            {
                m.Result            = (int)RacLib.RacMsg.Id.Error;
                m.ResultComplement += msgs.Get(RacMsg.Id.InvalidCharactersInSearchString);
                RacLib.BaseLog.log.Log(RacLib.BaseLog.LogType.Error, "errSearchString: Invalid chars");
            }

            string srch = LibVisLib.Verify.VerifyFreeText(search.SearchString);

            m.Ini    = ini;
            m.Total  = LibVisLib.Video.GetTotalLastVideos(lang, "", srch);
            m.Videos = ControllerBase.LatestVideosByCategory(lang, "", ini, max, srch);

            return(m);
        }
Example #2
0
        public VideoCategoryModel ByCategory(string token, int lang, string categ, int ini, int max)
        {
            string userId = "";

            if (token != "" && token != null)
            {
                string machine = HttpContext.Features.Get <IHttpConnectionFeature>()?.RemoteIpAddress.ToString();
                userId = SessionCode.ValidateSessionCode(token, machine);
            }

            lang = LibVisLib.Verify.ValidLanguage(lang);
            RacMsg msgs = RacMsg.cache.GetMessage((RacMsg.Language)lang);

            VideoCategoryModel m = new VideoCategoryModel();

            LibVisLib.Category c = LibVisLib.Category.LoadCategory(categ);
            if (c != null)
            {
                m.Title       = msgs.Get(c.nameMsg);
                m.Description = msgs.Get(c.descriptionMsg);
                m.Ini         = ini;
                m.Total       = Video.GetTotalLastVideos(lang, categ);
                m.Videos      = ControllerBase.LatestVideosByCategory(lang, categ, ini, max);
            }

            return(m);
        }
Example #3
0
        public LoginResultModel Get(string token, int lang)
        {
            LoginResultModel lrm = new LoginResultModel();

            lang = LibVisLib.Verify.ValidLanguage(lang);
            RacMsg msgs = RacMsg.cache.GetMessage((RacMsg.Language)lang);

            if (token == "" || token == null)
            {
                lrm.Result           = (int)RacMsg.Id.InvalidToken;
                lrm.ResultComplement = msgs.Get(RacMsg.Id.InvalidToken);
            }
            else
            {
                // Verifica o token de autenticação

                string machine = HttpContext.Features.Get <IHttpConnectionFeature>()?.RemoteIpAddress.ToString();

                string userId = SessionCode.ValidateSessionCode(token, machine);
                if (userId == null)
                {
                    lrm.Result           = (int)RacMsg.Id.InvalidToken;
                    lrm.ResultComplement = msgs.Get(RacMsg.Id.InvalidToken);
                }

                if (lrm.Result == 0)
                {
                    lrm.ResultComplement = SessionCode.ValidateSessionCode(token, machine, false);

                    RacWebUser        man  = RacWebUserSource.racWebUserSource.LoadRacWebUser(userId);
                    LibVisLib.Profile prof = LibVisLib.Profile.LoadProfile(userId);

                    // Pega todas as infos do usuário

                    lrm = new LoginResultModel(prof);

                    // Coloca os resultados do login

                    lrm.Result           = 0;
                    lrm.ResultComplement = "";

                    // Informações de últimos logins

                    lrm.LastLoginDate      = man.lastLogon;
                    lrm.NumberOfTentatives = man.numberPasswordFails;

                    // Cria o token de sessão

                    string code = SessionCode.Generate(userId, machine, 30).code;
                    lrm.Token = code;

                    // Ok, fim

                    RacWebLog.log.Log(RacWebLog.LogType.Informative, man.email, "Successfull verification: " + userId + ", code = " + code);
                }
            }

            return(lrm);
        }
Example #4
0
        /// <summary>
        /// Nome da medalha de qualificação de reporter
        /// </summary>
        public string GetReporterQualification(RacMsg msgs)
        {
            Medal m = reporterQualification;

            if (m != null)
            {
                return(msgs.Get(m.nameMsg));
            }

            return("");
        }
Example #5
0
        /// <summary>
        /// Nome da medalha de qualificação total
        /// </summary>
        public string GetTotalQualification(RacMsg msgs)
        {
            Medal m = totalQualification;

            if (m != null)
            {
                return(msgs.Get(m.nameMsg));
            }

            return("");
        }
Example #6
0
        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);
        }
Example #7
0
        public VideoListModel List(string token, int lang, int ini, int max)
        {
            string userId = "";

            if (token != "" && token != null)
            {
                string machine = HttpContext.Features.Get <IHttpConnectionFeature>()?.RemoteIpAddress.ToString();
                userId = SessionCode.ValidateSessionCode(token, machine);
            }

            lang = LibVisLib.Verify.ValidLanguage(lang);
            RacMsg msgs = RacMsg.cache.GetMessage((RacMsg.Language)lang);

            VideoListModel m = new VideoListModel();

            m.Ini    = ini;
            m.Total  = LibVisLib.Video.GetTotalLastVideos(lang, "");
            m.Videos = ControllerBase.LatestVideosByCategory(lang, "", ini, max);

            return(m);
        }
Example #8
0
        public GenericStatusModel NewsLetterRegister([FromBody] NewsLetterRegister request)
        {
            GenericStatusModel gsm = new GenericStatusModel();

            int lang = 2;

            if (request.Lang >= 2 && request.Lang <= 4)
            {
                lang = request.Lang;
            }

            RacMsg msgs = RacMsg.cache.GetMessage((RacMsg.Language)lang);

            if (request.Type == 1)
            {
                if (!LibVisLib.Verify.AcceptEmail(request.Data))
                {
                    gsm.Result           = (int)RacMsg.Id.Error;
                    gsm.ResultComplement = msgs.Get(RacMsg.Id.InvalidCharactersInTheEmail);
                    RacWebLog.log.Log(RacWebLog.LogType.Error, "Invalid email format: " + request.Data);
                }
                else
                {
                    RacWebLog.log.Log(RacWebLog.LogType.Informative, "Registro de email para newsletter: " + request.Data);
                    NewsLetter.AddNewsLetterEmail(request.Data);

                    gsm.Result           = 0;
                    gsm.ResultComplement = "";
                }
            }
            else
            {
                gsm.Result           = (int)RacMsg.Id.Error;
                gsm.ResultComplement = msgs.Get(RacMsg.Id.InvalidType);
                RacWebLog.log.Log(RacWebLog.LogType.Error, "Tipo de registro inválido: " + request.Type.ToString());
            }

            return(gsm);
        }
Example #9
0
        /// <summary>
        /// Monta a string
        /// </summary>
        public static string FormatDurationInHours(RacMsg msgs, double duration)
        {
            string str = "";

            int h = (int)duration;
            int m = (int)(60.0 * (duration - (double)h));

            if (h > 1)
            {
                str = h.ToString() + " " + msgs.Get(RacMsg.Id.hours);
            }

            if (h == 1)
            {
                str = "1 " + msgs.Get(RacMsg.Id.hour);
            }

            if (m > 0)
            {
                if (str != "")
                {
                    str += " " + msgs.Get(RacMsg.Id.and) + " ";
                }

                if (m == 1)
                {
                    str += "1 " + msgs.Get(RacMsg.Id.minute);
                }
                else
                {
                    str += m.ToString() + " " + msgs.Get(RacMsg.Id.minutes);
                }
            }

            return(str);
        }
Example #10
0
        public VideoModel Get(string token, int lang, string id)
        {
            string userId = null;

            if (token != "" && token != null)
            {
                string machine = HttpContext.Features.Get <IHttpConnectionFeature>()?.RemoteIpAddress.ToString();
                userId = SessionCode.ValidateSessionCode(token, machine);
            }

            lang = LibVisLib.Verify.ValidLanguage(lang);
            RacMsg msgs = RacMsg.cache.GetMessage((RacMsg.Language)lang);

            Video vid = Video.LoadVideo(id);

            VideoModel m = new VideoModel();

            if (vid != null)
            {
                m = new VideoModel(msgs, vid, true, true, true, true);
            }

            return(m);
        }
Example #11
0
        public LoginResultModel Post([FromBody] LoginRequestModel request)
        {
            string machine = HttpContext.Features.Get <IHttpConnectionFeature>()?.RemoteIpAddress.ToString();

            int    lang = LibVisLib.Verify.ValidLanguage(request.Lang);
            RacMsg msgs = RacMsg.cache.GetMessage((RacMsg.Language)lang);

            LoginResultModel lrm = new LoginResultModel();

            if (!LibVisLib.Verify.AcceptLogin(request.Login))
            {
                lrm.Result           = (int)RacMsg.Id.Error;
                lrm.ResultComplement = msgs.Get(RacMsg.Id.InvalidCharactersInTheEmail) + "; ";
                RacWebLog.log.Log(RacWebLog.LogType.Error, "Invalid email format: " + request.Login);
            }
            else if (!LibVisLib.Verify.AcceptPassword(request.Password))
            {
                lrm.Result           = (int)RacMsg.Id.Error;
                lrm.ResultComplement = msgs.Get(RacMsg.Id.InvalidCharactersInThePassword) + "; ";
                RacWebLog.log.Log(RacWebLog.LogType.Error, "Invalid password format: " + request.Password);
            }
            else
            {
                try
                {
                    string login    = LibVisLib.Verify.VerifyLogin(request.Login).ToLower();
                    string password = LibVisLib.Verify.VerifyPassword(request.Password);

                    if (login.Length > 200)
                    {
                        lrm.Result            = (int)RacLib.RacMsg.Id.Error;
                        lrm.ResultComplement += msgs.Get(RacMsg.Id.EmailTooBig200CharsMax) + "; ";
                        RacLib.BaseLog.log.Log(RacLib.BaseLog.LogType.Error, "errLogin: Content too big");
                    }

                    if (password.Length > 20)
                    {
                        lrm.Result            = (int)RacLib.RacMsg.Id.Error;
                        lrm.ResultComplement += msgs.Get(RacMsg.Id.PasswordTooBig20CharsMax) + "; ";
                        RacLib.BaseLog.log.Log(RacLib.BaseLog.LogType.Error, "errPass: Content too big");
                    }

                    if (lrm.Result == 0)
                    {
                        RacWebUserSource.LogonFailure reason;
                        BaseUser usr = RacWebUserSource.racWebUserSource.Logon(login, password, out reason);
                        if (usr == null)
                        {
                            lrm.Result = (int)RacMsg.Id.LoginFailure;
                            RacWebLog.log.Log(RacWebLog.LogType.Error, "Login failure");

                            if (reason == RacWebUserSource.LogonFailure.InvalidLogin)
                            {
                                RacWebLog.log.Log(RacWebLog.LogType.Error, login, "Invalid login");
                            }
                            else if (reason == RacWebUserSource.LogonFailure.Disabled)
                            {
                                RacWebLog.log.Log(RacWebLog.LogType.Error, login, "User disabled");
                            }
                            else if (reason == RacWebUserSource.LogonFailure.Blocked)
                            {
                                RacWebLog.log.Log(RacWebLog.LogType.Error, login, "User blocked");
                            }
                            else if (reason == RacWebUserSource.LogonFailure.InvalidPassword)
                            {
                                RacWebLog.log.Log(RacWebLog.LogType.Error, login, "Invalid password");
                            }
                            else if (reason == RacWebUserSource.LogonFailure.Other)
                            {
                                RacWebLog.log.Log(RacWebLog.LogType.Error, login, "Other");
                            }
                            else
                            {
                                RacWebLog.log.Log(RacWebLog.LogType.Error, login, "Other unexpected");
                            }
                        }
                        else
                        {
                            if (usr.status != BaseUser.Status.Confirmed)
                            {
                                RacWebLog.log.Log(RacWebLog.LogType.Error, login, "User not confirmed");
                                lrm.Result = (int)RacMsg.Id.UserNotConfirmed;
                            }
                            else
                            {
                                RacWebUser        man  = RacWebUserSource.racWebUserSource.LoadRacWebUser(usr.id);
                                LibVisLib.Profile prof = LibVisLib.Profile.LoadProfile(usr.id);

                                // Pega todas as infos do usuário

                                lrm = new LoginResultModel(prof);

                                // Coloca os resultados do login

                                lrm.Result           = 0;
                                lrm.ResultComplement = "";

                                // Informações de últimos logins

                                lrm.LastLoginDate      = man.lastLogon;
                                lrm.NumberOfTentatives = man.numberPasswordFails;

                                // Cria o token de sessão

                                string code = SessionCode.Generate(usr.id, machine, 30).code;
                                lrm.Token = code;

                                // Ok, fim

                                RacWebLog.log.Log(RacWebLog.LogType.Informative, login, "Successfull login: "******", code = " + code);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    RacWebLog.log.Log(RacWebLog.LogType.InternalError, "Failed (Exception)");
                    RacWebLog.log.Log(ex);

                    lrm.Result           = (int)RacMsg.Id.InternalError;
                    lrm.ResultComplement = ex.Message;
                }
            }

            return(lrm);
        }
Example #12
0
        public GenericIdModel Register(string token, [FromBody] NewVideoModel video)
        {
            GenericIdModel gsm = new GenericIdModel();

            gsm.Result           = 0;
            gsm.ResultComplement = "";
            gsm.Id = "";

            int    lang = LibVisLib.Verify.ValidLanguage(video.Lang);
            RacMsg msgs = RacMsg.cache.GetMessage((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.UserHasNoRightToThisItem;
                    gsm.ResultComplement = msgs.Get(RacMsg.Id.UserHasNoRightToThisItem);
                }

                try
                {
                    if (!LibVisLib.Verify.AcceptInteger(video.Categ))
                    {
                        gsm.Result            = (int)RacLib.RacMsg.Id.Error;
                        gsm.ResultComplement += msgs.Get(RacMsg.Id.InvalidCharsInCategories) + "; ";
                        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 += msgs.Get(RacMsg.Id.InvalidCharactersInTitle) + " (" + 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 += msgs.Get(RacMsg.Id.InvalidCharactersInText) + " (" + 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 += msgs.Get(RacMsg.Id.InvalidCharactersInTags) + " (" + 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 += msgs.Get(RacMsg.Id.InvalidCharactersInImageData) + " (" + 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 += msgs.Get(RacMsg.Id.InvalidCharactersInYoutubeUrl) + "; ";
                        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 += msgs.Get(RacMsg.Id.InvalidCharactersInBitchuteUrl) + "; ";
                        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 += msgs.Get(RacMsg.Id.InvalidCharactersInTheVideoScript) + "; ";
                        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 title        = LibVisLib.Verify.VerifyFreeText(video.Title);
                    string description  = LibVisLib.Verify.VerifyMultilineFreeText(video.Description);
                    string tags         = LibVisLib.Verify.VerifyFreeText(video.Tags);
                    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 (title.Length < 10)
                    {
                        gsm.Result            = (int)RacLib.RacMsg.Id.Error;
                        gsm.ResultComplement += msgs.Get(RacMsg.Id.TitleTooShort) + "; ";
                        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 += msgs.Get(RacMsg.Id.TitleTooLong) + "; ";
                        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 += msgs.Get(RacMsg.Id.TextTooShort) + "; ";
                        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 += msgs.Get(RacMsg.Id.TextTooLong) + "; ";
                        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 += msgs.Get(RacMsg.Id.ScriptTooLong) + "; ";
                        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 += msgs.Get(RacMsg.Id.ImageTooLarge) + "; ";
                        RacLib.BaseLog.log.Log(RacLib.BaseLog.LogType.Error, "errImage: Content too big");
                    }

                    if (gsm.Result == 0)
                    {
                        LibVisLib.Video vid = new Video();

                        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();

                        //prf.RegisterAction(Profile.ProfileAction.Reg);

                        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);
        }