Letractively / dotnetkicks

Automatically exported from code.google.com/p/dotnetkicks
1 stars 0 forks source link

View top kicked upcoming stories #32

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
It could be great to be able to view the top kicked upcoming stories.
Sometimes a lot of users post new stories, and upcoming stories that have
received maybe 3-5 kicks gets buried beneath all the new posts. And because
of this, some great new posts never make it to the front page.

Implementing such a feature could be pleasant addition to dotnetkicks to
help all those users like myself, which are too lazy to click the next page
of upcoming stories :-).

Original issue reported on code.google.com by pedic...@gmail.com on 20 Jul 2007 at 8:57

GoogleCodeExporter commented 9 years ago
I agree, this is a priority.

Original comment by gavinjo...@gmail.com on 21 Jul 2007 at 3:51

GoogleCodeExporter commented 9 years ago
Ok implementing this was a mouthfull for me. I need more time to examine the
architecture of DNK before implementing it, hopefully it want take a long time 
:-)

Original comment by pedic...@gmail.com on 25 Aug 2007 at 7:26

GoogleCodeExporter commented 9 years ago
If one just filters on the number of kicks, then stories that are 200+ days old 
could
pop up , so there should be some thought into that .
So I guess what would be good is : multiple dropdownlists so one can refine the
filtering. 

I don't know if i'm just stating the obvious , but i don't see any discussion 
on the
implementation .. or maybe that happens elsewhere :).

Original comment by xavier...@gmail.com on 5 Sep 2007 at 4:41

GoogleCodeExporter commented 9 years ago
There is a setting in the hosts table which specifies the maximum age in days an
unpublished story can be before it looses the chance for publication. The 
unpublished
sorted view should restrict to this set of stories. 

Original comment by gavinjo...@gmail.com on 5 Sep 2007 at 7:41

GoogleCodeExporter commented 9 years ago
The setting is 'Publish_MaximumStoryAgeInHours' and is set to 300 in DNK.com.

Original comment by gavinjo...@gmail.com on 5 Sep 2007 at 9:20

GoogleCodeExporter commented 9 years ago
the problem is not so much about how to extract the stories but more on how the 
url rewriting functions. I have 
implemented most of the functions, but i keep getting exceptions on the 
urlrewriting and querystrings. And i 
totally agree that it does not make sense to show top kicked upcoming stories 
for that are more that 10 days 
old, so i have made it an option to view top kicked upcoming stories for the 
current day, and one for top kicked 
stories for the past 10 days. 

Original comment by pedic...@gmail.com on 5 Sep 2007 at 5:04

GoogleCodeExporter commented 9 years ago
If you let me have a list of the pages and querystrings you want to use, I will
create and check whats needed to get Url Rewriting working.

Original comment by gavinjo...@gmail.com on 5 Sep 2007 at 5:08

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Ok thanks. I got inspired by the same way the front page filters stories. In
UrlParameters i have request query string for "upcomingStoryListSortBy" that is 
of
type StoryListSortBy enum. I have added additional values "LatestUpcoming" and
"TopTenUpcoming" and reuse the "Today" to sort the upcoming stories list. 

When the site for upcoming stories loads the header links points to the 
following:

Latest upcoming --> no change
Top today : --> /upcoming/popular/today
Top Ten : --> /upcoming/popular/toptenupcoming

For paging

Top today : --> /upcoming/popular/today/page/x where x is the pageindex 
Top Ten : --> /upcoming/popular/toptenupcoming/page/x where x is the pageindex 

I have problems to get the querystring to work properly the sort and paging(i 
guess i
lack proper regex experience :-) )

I thought it would be a good idea to implement this feature more or less 
precisely as
the front page does.

Hopefully i have provided enough information for you to help me out. Thanks 
again

Original comment by pedic...@gmail.com on 5 Sep 2007 at 6:19

GoogleCodeExporter commented 9 years ago
I have checked in some changes which allow for urls such as:

http://localhost:8080/upcoming/popular
http://localhost:8080/upcoming/popular/page/2
http://localhost:8080/upcoming/popular/today
http://localhost:8080/upcoming/popular/today/page/2
http://localhost:8080/upcoming/popular/toptenupcoming
http://localhost:8080/upcoming/popular/toptenupcoming/page/2

The UrlRewriting rules can be tricky, the order of them is important.

Note that I am using the 'StoryListSortBy' instead of the 
'UpcomingStoryListSortBy'
url param. We can reuse this param to make things a little more simple.

Let me know if you need anything else.

Original comment by gavinjo...@gmail.com on 5 Sep 2007 at 7:04

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
BTW, if you grant yourself the debugger role (set 
'administrator|debugger|moderator'
for Roles in your user row) you will see some url param output at the bottom of 
each
page.

Original comment by gavinjo...@gmail.com on 5 Sep 2007 at 7:11

GoogleCodeExporter commented 9 years ago
Also, the UpcomingStoryListHeader.cs file is missing. Can you please check it 
in?

Original comment by gavinjo...@gmail.com on 5 Sep 2007 at 7:15

GoogleCodeExporter commented 9 years ago
Sorry for the missing file. Thanks for the help :-) appreciated it. 

Original comment by pedic...@gmail.com on 5 Sep 2007 at 7:38

GoogleCodeExporter commented 9 years ago
No problem. BTW, what is the 'Top Ten Upcoming' page for?

Original comment by gavinjo...@gmail.com on 5 Sep 2007 at 7:49

GoogleCodeExporter commented 9 years ago
the top ten is actually meant to show top kicked upcoming stories for the past 
10
days. I thought that some may find it useful.

Original comment by pedic...@gmail.com on 5 Sep 2007 at 8:13

GoogleCodeExporter commented 9 years ago
I see. How about using 'thisweek' instead? It is a little more self explanatory.

http://localhost:8080/upcoming/popular
http://localhost:8080/upcoming/popular/page/2
http://localhost:8080/upcoming/popular/today
http://localhost:8080/upcoming/popular/today/page/2
http://localhost:8080/upcoming/popular/thisweek
http://localhost:8080/upcoming/popular/thisweek/page/2

What do you think?

Original comment by gavinjo...@gmail.com on 5 Sep 2007 at 8:25

GoogleCodeExporter commented 9 years ago
yeah that sounds nice too. Lets give that i try instead. 

Original comment by pedic...@gmail.com on 5 Sep 2007 at 9:05

GoogleCodeExporter commented 9 years ago
I have finished coding an early version of this issue. I will put the finishing 
touch
sometime tonight.

Original comment by pedic...@gmail.com on 6 Sep 2007 at 7:37

GoogleCodeExporter commented 9 years ago
It seems that there is an error in sorting. I fix it tonight.

Original comment by pedic...@gmail.com on 6 Sep 2007 at 9:24

GoogleCodeExporter commented 9 years ago
Thanks. 

Notice that in homepage I pass the 'UrlParameters.StoryListSortBy' into the
StoryCache methods - this is used to construct the cache key and to calculate 
the
data ranges (see GetStartDate(StoryListSortBy sortBy) in Story.cs).

This allows us to be a little more generic and to add new ranges easily in the
future. There is only one StoryCache.GetPopularStories method and one
StoryCache.GetPopularStoriesCountmethod. If you follow this pattern, you can 
replace
the GetAllStoriesToday and GetAllStoriesThisWeek methods with one 
GetUpcomingStories
method.

Let me know if I am not being clear

Original comment by gavinjo...@gmail.com on 6 Sep 2007 at 9:39

GoogleCodeExporter commented 9 years ago
I see that the feature made it to "production" and is still buggy . 
Maybe a beta.dotnetkicks.com that would be linked to a back-up of the current
database( so tests would be easy to perform) - would be better. 

So the user never sees that you have bugs :)

Original comment by xavier...@gmail.com on 6 Sep 2007 at 10:02

GoogleCodeExporter commented 9 years ago
Also when you click "Top Kicked Today" should it still say : Page 1 of 147  ?

Original comment by xavier...@gmail.com on 6 Sep 2007 at 10:05

GoogleCodeExporter commented 9 years ago
Sorry, it's my fault that it made it to production. I forgot that these changes 
were
made.

Original comment by gavinjo...@gmail.com on 6 Sep 2007 at 10:09

GoogleCodeExporter commented 9 years ago
Because this was published to the live site, I have fixed some of the issues 
with
upcoming stories. The StoryCache.GetPopularStories method now take an 
isPublished arg
- this allows us to reuse all the preexisting logic.

I hope you don't mind that I did this, it was my mistake to publish your 
unfinished
work to the live site

Original comment by gavinjo...@gmail.com on 6 Sep 2007 at 10:31

GoogleCodeExporter commented 9 years ago
No problem at all. In the end it all comes down to create a great site :-). I 
did
actually wanted to reuse as much code as possible, but last night i just wanted 
to
have something ready to see if it worked.

Original comment by pedic...@gmail.com on 6 Sep 2007 at 11:15

GoogleCodeExporter commented 9 years ago

Original comment by gavinjo...@gmail.com on 8 Sep 2007 at 12:06