public Trending_Page()
        {
            try
            {
                InitializeComponent();

                TopLabel.Text = AppResources.Label_Trending;


                if (Settings.VimeoStyle)
                {
                    TopHeaderBAR.IsVisible = false;
                }
                StyleThemeChanger();


                if (Hamburg_Page.IsLogin)
                {
                    if (MyChannel_Page.Avatar != null)
                    {
                        AvatarImage.Source = ImageSource.FromUri(new Uri(MyChannel_Page.Avatar));
                    }
                    else
                    {
                        AvatarImage.Source = "NoProfileImage.png";
                    }
                }

                if (Classes.TrendingList.Count == 0)
                {
                    TrendingListView.BeginRefresh();
                }
                TrendingListView.ItemsSource = Classes.TrendingList;
            }
            catch (Exception ex)
            {
                var exception = ex.ToString();
            }
        }
Esempio n. 2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            int  currentUserID = 0;
            bool isLoggedIn    = false;
            Guid session       = new Guid();

            if (Request.Cookies["session"] != null && Guid.TryParse(Request.Cookies["session"].Value, out session))
            {
                currentUserID = Auth.checkSession(session);
                if (currentUserID > 0)
                {
                    isLoggedIn = true;
                }
            }

            //Hacker News Formula:
            //(p - 1) / (t + 2)^1.5
            //Description:
            //Votes divided by age factor
            //p = votes (points) from users.
            //t = time since submission in hours.
            //p is subtracted by 1 to negate submitters vote.
            //age factor is (time since submission in hours plus two) to the power of 1.5.

            DataTable dt = new DataTable();

            dt.Columns.Add(new DataColumn("Article"));
            dt.Columns.Add(new DataColumn("Points", System.Type.GetType("System.Double")));
            dt.Columns.Add(new DataColumn("Description"));
            dt.Columns.Add(new DataColumn("RatedStyle"));

            List <Tuple <string, double> > userRatings = RatingHelper.GetAllRatedArticles(currentUserID, "rated", 0, 10);

            foreach (Tuple <string, int, DateTime, double> article in RatingHelper.GetTrendingValues())
            {
                int hours = (int)DateTime.Now.Subtract(article.Item3).TotalHours;

                DataRow dr = dt.NewRow();
                if (article.Item1.Length > Settings.Default.TruncateArticleLength)
                {
                    dr["Article"] = Server.HtmlEncode(article.Item1.Substring(0, Settings.Default.TruncateArticleLength - 3)) + "...";
                }
                else
                {
                    dr["Article"] = Server.HtmlEncode(article.Item1);
                }
                //subtract one for the initial vote
                int    votes        = article.Item2 - 1;
                double averageValue = article.Item4;
                int    points       = (int)Math.Round(((double)votes) / System.Math.Pow(((double)hours + 2), 1.5) * 100 * averageValue);
                if (points == 0)
                {
                    continue;
                }

                dr["Points"] = points;
                string description = "";
                if (votes < 2)
                {
                    description += votes + " vote";
                }
                else
                {
                    description += votes + " votes";
                }

                description += GetSaneTime(hours);

                description += "<br/>Average: " + Math.Round(averageValue, 2);

                dr["Description"] = description;

                if (!isLoggedIn)
                {
                    dr["RatedStyle"] = "none";
                }
                else if (RatingHelper.Contains(userRatings, article.Item1))
                {
                    dr["RatedStyle"] = "Rated";
                }
                else
                {
                    dr["RatedStyle"] = "NotRated";
                }

                dt.Rows.Add(dr);
            }
            dt.DefaultView.Sort         = "Points DESC";
            TrendingListView.DataSource = dt.DefaultView;
            TrendingListView.DataBind();
        }
        //Get Trending Videos
        public async void Get_Trending_Videos(string offset)
        {
            try
            {
                if (!CrossConnectivity.Current.IsConnected)
                {
                    // await DisplayAlert(AppResources.Label_Error, AppResources.Label_Check_Your_Internet, AppResources.Label_OK);
                    EmptyPage.IsVisible        = true;
                    TrendingListView.IsVisible = false;
                    TitleStackLayout.IsVisible = false;

                    TrendingListView.EndRefresh();
                    Icon_page.Text     = "\uf119";
                    Lbl_Dont_have.Text = AppResources.Label_Offline_Mode;
                    Lbl_no_Videos.Text = AppResources.Label_Check_Your_Internet;
                }
                else
                {
                    var Trending_data = await API_Request.Get_Trending_Videos_Http(offset, "20");

                    if (Trending_data != null)
                    {
                        if (Trending_data.Count > 0)
                        {
                            TrendingListView.IsVisible = true;
                            TitleStackLayout.IsVisible = true;
                            EmptyPage.IsVisible        = false;

                            foreach (var All in Trending_data)
                            {
                                JObject Items = JObject.FromObject(All);

                                Classes.Video V = new Classes.Video();

                                try //featured - top - latest
                                {
                                    var id                 = Items["id"].ToString();
                                    var video_id           = Items["video_id"].ToString();
                                    var user_id            = Items["user_id"].ToString();
                                    var title              = Items["title"].ToString();
                                    var description        = Items["description"].ToString();
                                    var thumbnail          = Items["thumbnail"].ToString();
                                    var video_location     = Items["video_location"].ToString();
                                    var youtube            = Items["youtube"].ToString();
                                    var vimeo              = Items["vimeo"].ToString();
                                    var daily              = Items["daily"].ToString();
                                    var time               = Items["time"].ToString();
                                    var time_date          = Items["time_date"].ToString();
                                    var active             = Items["active"].ToString();
                                    var tags               = Items["tags"].ToString();
                                    var duration           = Items["duration"].ToString();
                                    var size               = Items["size"].ToString();
                                    var category_id        = Items["category_id"].ToString();
                                    var views              = Items["views"].ToString();
                                    var featured           = Items["featured"].ToString();
                                    var registered         = Items["registered"].ToString();
                                    var org_thumbnail      = Items["org_thumbnail"].ToString(); //Video_Image
                                    var video_type         = Items["video_type"].ToString();
                                    var video_id_          = Items["video_id_"].ToString();
                                    var source             = Items["source"].ToString();
                                    var url                = Items["url"].ToString();
                                    var edit_description   = Items["edit_description"].ToString();
                                    var markup_description = Items["markup_description"].ToString();
                                    var is_liked           = Items["is_liked"].ToString();
                                    var is_disliked        = Items["is_disliked"].ToString();
                                    var is_owner           = Items["is_owner"].ToString();
                                    var time_alpha         = Items["time_alpha"].ToString();
                                    var time_ago           = Items["time_ago"].ToString();
                                    var category_name      = Items["category_name"].ToString();

                                    //style
                                    V.SV_Type_video = "Trending";
                                    if (Settings.DarkTheme)
                                    {
                                        V.SV_BackgroundColor = "#bcbcbc";
                                        V.SV_TextColor       = "#ffff";
                                    }
                                    else
                                    {
                                        V.SV_TextColor       = "#444";
                                        V.SV_BackgroundColor = "#ffff";
                                    }

                                    //Data video
                                    V.dv_id       = id;
                                    V.dv_video_id = video_id;
                                    V.dv_user_id  = user_id;
                                    V.dv_title    =
                                        Functions.SubStringCutOf(
                                            Functions.DecodeStringWithEnter(Functions.DecodeString(title)), 30);
                                    V.dv_description =
                                        Functions.SubStringCutOf(
                                            Functions.DecodeStringWithEnter(Functions.DecodeString(description)), 60);
                                    V.dv_Long_title       = Functions.DecodeStringWithEnter(Functions.DecodeString(title));
                                    V.dv_Long_description =
                                        Functions.DecodeStringWithEnter(Functions.DecodeString(description));
                                    V.dv_thumbnail      = thumbnail;
                                    V.dv_video_location = video_location;
                                    V.dv_youtube        = youtube;
                                    V.dv_vimeo          = vimeo;
                                    V.dv_daily          = daily;
                                    V.dv_time           = time;
                                    V.dv_time_date      = time_date;
                                    V.dv_active         = active;
                                    V.dv_tags           = tags;
                                    V.dv_duration       = duration;
                                    V.dv_size           = size;
                                    V.dv_category_id    = category_id;
                                    V.dv_views          = Functions.FormatPriceValue(Convert.ToInt32(views)) + " " +
                                                          AppResources.Label_Views;
                                    V.dv_featured           = featured;
                                    V.dv_registered         = registered;
                                    V.dv_org_thumbnail      = org_thumbnail;
                                    V.dv_video_type         = video_type;
                                    V.dv_video_id_          = video_id_;
                                    V.dv_source             = source;
                                    V.dv_url                = url;
                                    V.dv_edit_description   = edit_description;
                                    V.dv_markup_description = markup_description;
                                    V.dv_is_liked           = is_liked;
                                    V.dv_is_disliked        = is_disliked;
                                    V.dv_is_owner           = is_owner;
                                    V.dv_time_alpha         = time_alpha;
                                    V.dv_time_ago           = time_ago;
                                    V.dv_category_name      = category_name;

                                    try //owner
                                    {
                                        JObject Owner = JObject.FromObject(Items["owner"]);

                                        var    O_id       = Owner["id"].ToString();
                                        var    username   = Owner["username"].ToString();
                                        var    email      = Owner["email"].ToString();
                                        var    first_name = Owner["first_name"].ToString();
                                        var    last_name  = Owner["last_name"].ToString();
                                        var    gender     = Owner["gender"].ToString();
                                        var    language   = Owner["language"].ToString();
                                        var    avatar     = Owner["avatar"].ToString();
                                        var    cover      = Owner["cover"].ToString();
                                        string about      = "";
                                        try
                                        {
                                            about =
                                                Functions.StringNullRemover(Functions.DecodeStringWithEnter(
                                                                                Functions.DecodeString(Owner["about"].ToString())));
                                        }
                                        catch (Exception ex)
                                        {
                                            var exception = ex.ToString();
                                        }
                                        var google   = Owner["google"].ToString();
                                        var facebook = Owner["facebook"].ToString();
                                        var twitter  = Owner["twitter"].ToString();
                                        var verified = Owner["verified"].ToString();
                                        var is_pro   = Owner["is_pro"].ToString();
                                        var O_url    = Owner["url"].ToString();

                                        V.Owner_id         = O_id;
                                        V.Owner_username   = username;
                                        V.Owner_email      = email;
                                        V.Owner_first_name = first_name;
                                        V.Owner_last_name  = last_name;
                                        V.Owner_gender     = gender;
                                        V.Owner_language   = language;
                                        V.Owner_avatar     = avatar;
                                        V.Owner_cover      = cover;
                                        V.Owner_about      = about;
                                        V.Owner_google     = google;
                                        V.Owner_facebook   = facebook;
                                        V.Owner_twitter    = twitter;
                                        if (verified == "0")
                                        {
                                            V.Owner_verified = "false";
                                        }
                                        else
                                        {
                                            V.Owner_verified = "true";
                                        }
                                        V.Owner_is_pro = is_pro;
                                        V.Owner_url    = O_url;
                                    }
                                    catch (Exception ex)
                                    {
                                        var exception = ex.ToString();
                                    }

                                    var dd = Classes.TrendingList.FirstOrDefault(a => a.dv_id == id);
                                    if (dd == null)
                                    {
                                        //Add list All data Video
                                        Classes.TrendingList.Add(V);
                                    }
                                }
                                catch (Exception ex)
                                {
                                    var exception = ex.ToString();
                                }
                            }

                            TrendingListView.EndRefresh();
                            //Add_Trending_video
                            TrendingListView.ItemsSource = Classes.TrendingList;
                        }
                        else
                        {
                            EmptyPage.IsVisible        = true;
                            TrendingListView.IsVisible = false;
                            TitleStackLayout.IsVisible = false;

                            TrendingListView.EndRefresh();

                            Icon_page.Text     = "\uf03d";
                            Lbl_Dont_have.Text = AppResources.Label_Empty_Videos;
                            Lbl_no_Videos.Text = AppResources.Label_no_Videos_to_view;
                        }
                    }
                    else
                    {
                        EmptyPage.IsVisible        = true;
                        TrendingListView.IsVisible = false;
                        TitleStackLayout.IsVisible = false;

                        TrendingListView.EndRefresh();

                        Icon_page.Text     = "\uf03d";
                        Lbl_Dont_have.Text = AppResources.Label_Empty_Videos;
                        Lbl_no_Videos.Text = AppResources.Label_no_Videos_to_view;
                    }
                }
            }
            catch (Exception ex)
            {
                var exception = ex.ToString();
                TrendingListView.EndRefresh();
                if (Classes.TrendingList.Count > 0)
                {
                    TrendingListView.IsVisible = true;
                    EmptyPage.IsVisible        = false;
                    TitleStackLayout.IsVisible = true;

                    //Add_Trending_video
                    TrendingListView.ItemsSource = Classes.TrendingList;
                }
                else
                {
                    Icon_page.Text             = "\uf03d";
                    Lbl_Dont_have.Text         = AppResources.Label_Empty_Videos;
                    Lbl_no_Videos.Text         = AppResources.Label_no_Videos_to_view;
                    EmptyPage.IsVisible        = true;
                    TrendingListView.IsVisible = false;
                    TitleStackLayout.IsVisible = false;
                }
            }
        }