A story downvote is considered a flag, just meaning the story has
problems and not necessarily that the user wants to ignore it. By
moving hiding out of Vote and into a new HiddenStory model, a user
can now both downvote/flag and hide separately, or just one or the
other.
This drops storing twitter:last_story_id in Keystore and stores each
story's tweet id, so we can query which stories meet the threshold
and haven't been posted to twitter yet.
Apply quoted-printable to body text to allow utf-8 characters in
comments and story caches.
Subjects could use this too with quoted_printable(true) but there's
some weird wrapping problem with it so disable that for now.
Ignore the title presented by the user unless we couldn't find
anything, but start out by fetching the URL and trying some <meta>
tags first, then <title>, then use the title the user brought.
Initial story hotness was zero, which excluded stories with no other
upvotes from the homepage. Before creating, define initial hotness
to something.
Since this now makes very new stories show up on the homepage right
away, expand the window back to 48 hours.
This requires a Story.recalculate_all_hotnesses! to properly sort
things.
My default background colour for textareas is inherited from my OS
colours, which is a dark grey. Thus setting a foreground colour
without setting a background colour makes it impossible for me to type
in textareas. This patch should fix that.
Instead of hard-coding the scheme and host everywhere, use _path
methods to show relative URLs.
Except that our previous setting of
Rails.application.routes.default_url_options in
config.after_initialize made this moot because Rails inserts that
host into all _path helpers for some reason. So revert that
setting.
But then anything that wants an absolute URL doesn't know the
hostname and the root_url helper throws an exception. So make a
Rails.application.root_url shortcut to pass the per-app settings in
Rails.application to root_url.
Now we can just use _path helpers most places but still use _url
ones where we need them, such as in RSS views and e-mail templates.