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