hamn.git
8 years agoNicer handling of images and smileys
Magnus Hagander [Fri, 31 Mar 2017 12:08:19 +0000 (14:08 +0200)]
Nicer handling of images and smileys

Allow images to go up to 300px, and explicitly make wordpress smileys
(since we have lot of wordpress blogs) normal size and inline instead of
overriding them.

Petr Jelinek

8 years agoPlanet postgresql is now https
Magnus Hagander [Tue, 22 Nov 2016 20:16:10 +0000 (21:16 +0100)]
Planet postgresql is now https

8 years agoWiki and twitter links should be https
Magnus Hagander [Mon, 21 Nov 2016 20:58:24 +0000 (21:58 +0100)]
Wiki and twitter links should be https

8 years agoUse https for postgr.es
Magnus Hagander [Sun, 20 Nov 2016 16:35:30 +0000 (17:35 +0100)]
Use https for postgr.es

8 years agoDon't re-approve a blog that was already approved
Magnus Hagander [Tue, 16 Aug 2016 14:03:54 +0000 (16:03 +0200)]
Don't re-approve a blog that was already approved

This will cause extra emails to be sent, which isn't very user-friendly.

9 years agoServe planet layout images from the local webserver
Magnus Hagander [Sat, 21 May 2016 16:50:20 +0000 (12:50 -0400)]
Serve planet layout images from the local webserver

It's kind of silly to pull them down from www.postgresql.org each time.
And with the switch to https-only there, it will also lead to a bunch of
extra redirects which will slow things down.

9 years agoSet a default socket timeout of 10 seconds
Magnus Hagander [Mon, 11 Apr 2016 08:45:36 +0000 (10:45 +0200)]
Set a default socket timeout of 10 seconds

Any feed that doesn't complete the socket operation in 10 seconds
will fail - we'll still retry it on the next run of course.

9 years agoCap blog entries at todays date
Magnus Hagander [Tue, 29 Mar 2016 08:41:12 +0000 (10:41 +0200)]
Cap blog entries at todays date

This avoids cases where a blog entry might be unintentionally (or intentionally)
set with a date in the future in the incoming RSS feed and as such stays at the
frontpage of planet until that date is reached.

Instead, whenever something is parsed to be in the future, set the post date to
the time of the parsing (because it clearly exists at this time).

9 years agoFix indentation that caused logic error
Magnus Hagander [Tue, 29 Mar 2016 08:37:17 +0000 (10:37 +0200)]
Fix indentation that caused logic error

We updatet he newest entry date in other ways as well, but this code
clearly didn't run.

9 years agoFix typo
Magnus Hagander [Mon, 21 Mar 2016 16:10:13 +0000 (17:10 +0100)]
Fix typo

Reported by David Rowley, though Alvaro

9 years agoDon't put a space before P in shortlinks
Magnus Hagander [Mon, 21 Mar 2016 14:16:34 +0000 (15:16 +0100)]
Don't put a space before P in shortlinks

Sideeffect of some re-indenting, any short URL that had a P
in it would get %20P instead, making it not work. Oops.

9 years agoDon't synchronize twitter users for unapproved feeds
Magnus Hagander [Tue, 8 Mar 2016 16:53:42 +0000 (17:53 +0100)]
Don't synchronize twitter users for unapproved feeds

9 years agoSource header images locally
Magnus Hagander [Thu, 3 Mar 2016 09:51:47 +0000 (10:51 +0100)]
Source header images locally

Previously these were loaded from www.postgresql.org, which caused a mixed-content
warning when using the registration interface.

9 years agoReference correct variable in error msg
Magnus Hagander [Thu, 18 Feb 2016 01:06:36 +0000 (20:06 -0500)]
Reference correct variable in error msg

9 years agoRemove templates no longer used
Magnus Hagander [Tue, 16 Feb 2016 16:21:24 +0000 (17:21 +0100)]
Remove templates no longer used

9 years agoLog is not a separate page anymore, so fix links
Magnus Hagander [Tue, 16 Feb 2016 16:20:22 +0000 (17:20 +0100)]
Log is not a separate page anymore, so fix links

Also add an anchor on the edit page to deal with it

9 years agoSet title fields for forms and pages
Magnus Hagander [Mon, 15 Feb 2016 16:58:10 +0000 (17:58 +0100)]
Set title fields for forms and pages

9 years agoLink to moderation admin view
Magnus Hagander [Mon, 15 Feb 2016 16:55:41 +0000 (17:55 +0100)]
Link to moderation admin view

Don't encourage using the django admin view.

9 years agoDon't synchronize users who only have archived blogs
Magnus Hagander [Mon, 15 Feb 2016 16:23:56 +0000 (17:23 +0100)]
Don't synchronize users who only have archived blogs

9 years agoFix accidentaly reversed condition
Magnus Hagander [Fri, 12 Feb 2016 12:17:31 +0000 (13:17 +0100)]
Fix accidentaly reversed condition

Blogs would display as error in list and warning on the details page,
and the other way around. Oops.

9 years agoAdd specific team admin to list more details in admin view
Magnus Hagander [Thu, 11 Feb 2016 14:22:58 +0000 (15:22 +0100)]
Add specific team admin to list more details in admin view

9 years agoRemove leftover debugging code
Magnus Hagander [Thu, 11 Feb 2016 14:19:36 +0000 (15:19 +0100)]
Remove leftover debugging code

9 years agoAdd managers to teams
Magnus Hagander [Thu, 11 Feb 2016 14:18:59 +0000 (15:18 +0100)]
Add managers to teams

This is a single user that's in charge of a team. The manager will get an
email whenever somebody tries to join a team. The team will also show up
on the managers /register/ page with the ability to remove people from it.

9 years agoDon't try to store status updates for fake blog entries
Magnus Hagander [Thu, 11 Feb 2016 14:17:01 +0000 (15:17 +0100)]
Don't try to store status updates for fake blog entries

We create fake entries when scanning for saved blogs, and they should
never be saved to the db.

This was broken by baefbd4de052774e75c52e7830ba396b4c8b3664 which pushed
the save into the aggregator. Now, make it optional.

9 years agoAdd search fields to admin
Magnus Hagander [Thu, 11 Feb 2016 13:30:53 +0000 (14:30 +0100)]
Add search fields to admin

9 years agoBetter admin for aggregator log
Magnus Hagander [Thu, 11 Feb 2016 13:28:13 +0000 (14:28 +0100)]
Better admin for aggregator log

9 years agoImplement log sender for new planet admin
Magnus Hagander [Thu, 11 Feb 2016 13:27:19 +0000 (14:27 +0100)]
Implement log sender for new planet admin

Instead of sending an email to the planet list, send individual emails to the
blog authors and ask them to fix their  blogs if more than a certain number
of fetches have failed. Now that we can archive blogs, this makes more sense,
and as the planet team doesn't actually do anything with the emails there anyway,
there is no point to keep sending them.

9 years agoFix query for list sync
Magnus Hagander [Thu, 11 Feb 2016 08:30:56 +0000 (09:30 +0100)]
Fix query for list sync

9 years agoOops, include the name of the feed in the title on outgoing RSS
Magnus Hagander [Wed, 10 Feb 2016 22:09:37 +0000 (23:09 +0100)]
Oops, include the name of the feed in the title on outgoing RSS

9 years agoFix accidentally broken error pages
Magnus Hagander [Wed, 10 Feb 2016 22:01:53 +0000 (23:01 +0100)]
Fix accidentally broken error pages

9 years agoSave feed status directly instead of at end of processing
Magnus Hagander [Wed, 10 Feb 2016 21:09:53 +0000 (22:09 +0100)]
Save feed status directly instead of at end of processing

Since processing can take a long time with slow blogs, store the
date before that happens.

This will prevent from conflicting with the web UI and overwriting
the settings from that one.

9 years agoNot used any more
Magnus Hagander [Wed, 10 Feb 2016 21:08:57 +0000 (22:08 +0100)]
Not used any more

9 years agoDon't crash in feed for items with no existing shortlink
Magnus Hagander [Wed, 10 Feb 2016 20:14:13 +0000 (21:14 +0100)]
Don't crash in feed for items with no existing shortlink

This can happen on old items (but not new)

9 years agoDon't crash hard when there are no visible items
Magnus Hagander [Wed, 10 Feb 2016 20:10:28 +0000 (21:10 +0100)]
Don't crash hard when there are no visible items

9 years agoOops in purge header
Magnus Hagander [Wed, 10 Feb 2016 19:45:37 +0000 (20:45 +0100)]
Oops in purge header

9 years agoAdd support for archiving blogs
Magnus Hagander [Wed, 10 Feb 2016 18:34:08 +0000 (19:34 +0100)]
Add support for archiving blogs

An archived blog is one that is no longer polled for new data, but we
keep the posts around. Sometime in the future we might want to do statistics
or searches across them...

9 years agoSend email to feed owner when entries are aggregated
Magnus Hagander [Wed, 10 Feb 2016 18:19:17 +0000 (19:19 +0100)]
Send email to feed owner when entries are aggregated

9 years agoRemove redundant code
Magnus Hagander [Wed, 10 Feb 2016 18:05:01 +0000 (19:05 +0100)]
Remove redundant code

This is now handled in the "proper" moderation interface, so no need
to send extra moderation notices.

9 years agoMake the user a proper Foreign Key in the database
Magnus Hagander [Wed, 10 Feb 2016 18:00:13 +0000 (19:00 +0100)]
Make the user a proper Foreign Key in the database

Instead of storing the username as a string and doing lookups all the time when it
goes out of sync.

The database has to be cleaned before running this one, by simply moving all blogs
with invalid users to some "collector account".

9 years agoThese shorterners haven't been supported for years
Magnus Hagander [Wed, 10 Feb 2016 17:35:48 +0000 (18:35 +0100)]
These shorterners haven't been supported for years

9 years agoA brand new planet manager and runtime
Magnus Hagander [Wed, 10 Feb 2016 17:33:19 +0000 (18:33 +0100)]
A brand new planet manager and runtime

Completely restructure the planet postgresql code -- it was definitely
getting old.

A new registration interface makes it much more friendly, and gives the
user a chance to see what's going on.

A new moderation interface allows for a better view of what's happening
with the feeds that are pending, as well as the ability to give a message
to the subscriber when rejecting a blog.

Aggregation uses the same framework, but now runs as a django management
command, and also supports async parallelism when fetching the blogs to
make it much faster (since most of them time out on http).

Planet itself is now rendered in django, and expects a Varnish sitting in
front of it, to which it will generate purges properly. Makes any changes
made in the interface more or less instant, instead of having to wait for
15 minutes.

9 years agoImport bootstrap CSS
Magnus Hagander [Wed, 10 Feb 2016 17:37:23 +0000 (18:37 +0100)]
Import bootstrap CSS

To be used by the new moderation interface

9 years agoList more info about posts in admin display
Magnus Hagander [Wed, 10 Feb 2016 16:29:35 +0000 (17:29 +0100)]
List more info about posts in admin display

9 years agoImport mailqueue app from pgeu
Magnus Hagander [Tue, 9 Feb 2016 15:28:21 +0000 (16:28 +0100)]
Import mailqueue app from pgeu

9 years agoDon't crash on NULL team information
Magnus Hagander [Fri, 1 Jan 2016 16:47:18 +0000 (17:47 +0100)]
Don't crash on NULL team information

9 years agoScript requires bash
Magnus Hagander [Fri, 1 Jan 2016 16:43:01 +0000 (17:43 +0100)]
Script requires bash

9 years agoSupport for automatically activating virtualenv for cronjob
Magnus Hagander [Fri, 1 Jan 2016 16:41:08 +0000 (17:41 +0100)]
Support for automatically activating virtualenv for cronjob

9 years agoNo need to set path in script
Magnus Hagander [Fri, 1 Jan 2016 16:38:02 +0000 (17:38 +0100)]
No need to set path in script

The /usr/local part was for old FreeBSD system.

9 years agoUse REQUEST_URI to get the URL for redirector
Magnus Hagander [Fri, 1 Jan 2016 16:18:26 +0000 (17:18 +0100)]
Use REQUEST_URI to get the URL for redirector

This one works  both under a local dev webserver and importantly also
on the production server...

9 years agoAdd initial schema migration for django 1.8
Magnus Hagander [Thu, 31 Dec 2015 15:16:12 +0000 (16:16 +0100)]
Add initial schema migration for django 1.8

9 years agoUpdate sample local_settings.py for new settings format
Magnus Hagander [Thu, 31 Dec 2015 14:23:24 +0000 (15:23 +0100)]
Update sample local_settings.py for new settings format

9 years agoRemove horribly out-of-date documentation
Magnus Hagander [Thu, 31 Dec 2015 14:21:58 +0000 (15:21 +0100)]
Remove horribly out-of-date documentation

9 years agoMove all tables to public schema
Magnus Hagander [Thu, 31 Dec 2015 14:04:10 +0000 (15:04 +0100)]
Move all tables to public schema

Since django still does not properly support multiple schemas, it creates a
lot of pain to maintain the tables in different schemas. And the planet database
has a very simple schema with few tables anyway, so there is arguably no actual
gain from keeping them separate.

When deploying, run SQL manually to move existing tables over:
ALTER TABLE admin.auditlog SET SCHEMA public;
ALTER TABLE admin.auth_group SET SCHEMA public;
ALTER TABLE admin.auth_group_permissions SET SCHEMA public;
ALTER TABLE admin.auth_message SET SCHEMA public;
ALTER TABLE admin.auth_permission SET SCHEMA public;
ALTER TABLE admin.auth_user SET SCHEMA public;
ALTER TABLE admin.auth_user_groups SET SCHEMA public;
ALTER TABLE admin.auth_user_user_permissions SET SCHEMA public;
ALTER TABLE admin.django_admin_log SET SCHEMA public;
ALTER TABLE admin.django_content_type SET SCHEMA public;
ALTER TABLE admin.django_session SET SCHEMA public;
ALTER TABLE admin.django_site SET SCHEMA public;
ALTER TABLE planet.aggregatorlog SET SCHEMA public;
ALTER TABLE planet.feeds SET SCHEMA public;
ALTER TABLE planet.posts SET SCHEMA public;
ALTER TABLE planet.teams SET SCHEMA public;
DROP SCHEMA admin;
DROP SCHEMA planet;

and if there is a planetadmin user, also run
ALTER USER planetadmin RESET search_path;

9 years agoUpdate redirector to run as uwsgi app
Magnus Hagander [Thu, 31 Dec 2015 14:03:23 +0000 (15:03 +0100)]
Update redirector to run as uwsgi app

Since we use uwsgi for the django interfaces as of 1.8, doing the same
for the redirector just makes things easier.

9 years agoCode updates for django 1.8
Magnus Hagander [Thu, 31 Dec 2015 13:55:31 +0000 (14:55 +0100)]
Code updates for django 1.8

9 years agoMove files to new django 1.8 structure
Magnus Hagander [Thu, 31 Dec 2015 13:23:26 +0000 (14:23 +0100)]
Move files to new django 1.8 structure

Need another subdirectory. Also update manage.py and wsgi.py for
the django 1.8 formats.

10 years agoReturn proper errorcodes from auth plugin
Magnus Hagander [Tue, 21 Apr 2015 12:48:51 +0000 (14:48 +0200)]
Return proper errorcodes from auth plugin

Instead of raising an exception which will cause both a server log
and an email to be sent, return a proper http 400 message when the
incoming authentication request is bad. This will also show the
proper error message to the client, instead of a generic internal
server error.

10 years agosort top posters by time of last post
Tomas Vondra [Sat, 28 Feb 2015 18:11:50 +0000 (19:11 +0100)]
sort top posters by time of last post

10 years agoAvoid crashing when truncating empty URLs
Magnus Hagander [Sun, 15 Mar 2015 10:56:57 +0000 (11:56 +0100)]
Avoid crashing when truncating empty URLs

11 years agoUpdate to use twitter API v1.1
Magnus Hagander [Thu, 13 Jun 2013 11:51:30 +0000 (13:51 +0200)]
Update to use twitter API v1.1

11 years agoAdd more info when JSON return is not in JSON format
Magnus Hagander [Thu, 13 Jun 2013 11:51:04 +0000 (13:51 +0200)]
Add more info when JSON return is not in JSON format

11 years agoAvoid using global variable that wasn't intended to be global
Magnus Hagander [Thu, 13 Jun 2013 11:50:31 +0000 (13:50 +0200)]
Avoid using global variable that wasn't intended to be global

12 years agoFixes for new verson of feedparser in wheezy
Magnus Hagander [Sun, 26 May 2013 17:16:06 +0000 (13:16 -0400)]
Fixes for new verson of feedparser in wheezy

12 years agoUpdate for django 1.4
Magnus Hagander [Sat, 25 May 2013 19:02:57 +0000 (15:02 -0400)]
Update for django 1.4

12 years agoFix link to signup page
Magnus Hagander [Tue, 12 Feb 2013 20:28:48 +0000 (21:28 +0100)]
Fix link to signup page

Noted by Quinn Weaver

12 years agoOops, fix SQL query properly
Magnus Hagander [Tue, 11 Sep 2012 08:16:44 +0000 (10:16 +0200)]
Oops, fix SQL query properly

12 years agoTurn all twitter handles to lowercase when comparing
Magnus Hagander [Tue, 11 Sep 2012 08:15:32 +0000 (10:15 +0200)]
Turn all twitter handles to lowercase when comparing

You can't have different users with twitter handles only differing in
case anyway.

12 years agoSynchronize mailinglist subscriptions using https instead of http
Magnus Hagander [Mon, 13 Aug 2012 11:25:07 +0000 (13:25 +0200)]
Synchronize mailinglist subscriptions using https instead of http

13 years agoSet full user name
Magnus Hagander [Fri, 20 Jan 2012 12:27:14 +0000 (13:27 +0100)]
Set full user name

This probably got broken when we switched to the new community auth system

13 years agoFix typo
Magnus Hagander [Wed, 28 Dec 2011 13:58:13 +0000 (14:58 +0100)]
Fix typo

13 years agoImplement single sign-out with community auth 2.0
Magnus Hagander [Tue, 27 Dec 2011 18:36:49 +0000 (19:36 +0100)]
Implement single sign-out with community auth 2.0

13 years agoSwitch to postgresql.org community auth 2.0
Magnus Hagander [Fri, 23 Dec 2011 09:50:03 +0000 (10:50 +0100)]
Switch to postgresql.org community auth 2.0

This makes logins through redirects to the www.postgresql.org site instead
of a local password prompt. Hopefully this will provide both better security
and a better user experience...

13 years agoRetabbed (ugh)
Selena Deckelmann [Wed, 23 Nov 2011 23:49:01 +0000 (15:49 -0800)]
Retabbed (ugh)

13 years agoAllow https URLs
Selena Deckelmann [Wed, 23 Nov 2011 23:02:16 +0000 (15:02 -0800)]
Allow https URLs

13 years agoMove policy page to the wiki
Magnus Hagander [Fri, 11 Nov 2011 16:47:00 +0000 (17:47 +0100)]
Move policy page to the wiki

13 years agoDon't throw exception when approving a blog with no name
Magnus Hagander [Sat, 24 Sep 2011 11:04:08 +0000 (13:04 +0200)]
Don't throw exception when approving a blog with no name

13 years agoRemove @ signs from twitter names
Magnus Hagander [Thu, 18 Aug 2011 16:16:55 +0000 (18:16 +0200)]
Remove @ signs from twitter names

14 years agoAdd script to generate the short URLs on the commandline, for old posts
Magnus Hagander [Mon, 11 Apr 2011 12:02:16 +0000 (14:02 +0200)]
Add script to generate the short URLs on the commandline, for old posts

14 years agoClearly in need of more testing... Need id, not title
Magnus Hagander [Mon, 28 Mar 2011 18:00:48 +0000 (20:00 +0200)]
Clearly in need of more testing... Need id, not title

14 years agoFix completely messed up copy/paste
Magnus Hagander [Mon, 28 Mar 2011 17:57:46 +0000 (19:57 +0200)]
Fix completely messed up copy/paste

14 years agoGenerate twitter links using postgr.es instead of bit.ly
Magnus Hagander [Mon, 28 Mar 2011 15:17:28 +0000 (17:17 +0200)]
Generate twitter links using postgr.es instead of bit.ly

14 years agoAdd support for generating local shortnames for twitter posts
Magnus Hagander [Mon, 28 Mar 2011 13:48:58 +0000 (15:48 +0200)]
Add support for generating local shortnames for twitter posts

Do a simple base64 encoding of the id value, and pass this to
http://postgr.es/p/<id>.

14 years agoForgot to make redirector.py executable..
Magnus Hagander [Mon, 28 Mar 2011 13:36:51 +0000 (15:36 +0200)]
Forgot to make redirector.py executable..

14 years agoAdd URL redirector for http://postgr.es/p/<id>
Magnus Hagander [Mon, 28 Mar 2011 13:35:44 +0000 (15:35 +0200)]
Add URL redirector for http://postgr.es/p/<id>

Not used yet, need to deploy the redirector before it can be used..

14 years agoEnsure twitter status messages are utf-8 encoded
Magnus Hagander [Mon, 14 Mar 2011 12:57:59 +0000 (13:57 +0100)]
Ensure twitter status messages are utf-8 encoded

14 years agoRemove imported feedparser.py, instead relying on the one that's installed on the...
Magnus Hagander [Fri, 11 Mar 2011 12:10:41 +0000 (13:10 +0100)]
Remove imported feedparser.py, instead relying on the one that's installed on the system

14 years agoCheck server status before we check the contents of the feed
Magnus Hagander [Sun, 6 Mar 2011 15:31:41 +0000 (16:31 +0100)]
Check server status before we check the contents of the feed

By checking the contents first, we'd get an exception before
we got to the status check, and thus generate an incorrect message

14 years agoAdd csrf_token, required by newer Django versions
Magnus Hagander [Sun, 13 Feb 2011 12:13:20 +0000 (13:13 +0100)]
Add csrf_token, required by newer Django versions

14 years agoFix incorrect markup
Magnus Hagander [Fri, 10 Dec 2010 19:39:00 +0000 (20:39 +0100)]
Fix incorrect markup

Also move the "reset http time" so that it's available to non-superuser,
which was really the reason is was created in the first place...

14 years agoAdd admin link to reset http time for a blog
Magnus Hagander [Thu, 9 Dec 2010 10:17:29 +0000 (11:17 +0100)]
Add admin link to reset http time for a blog

In case the blog incorrectly changes things backwards in time, or
similar situations where the If-Modified-Since header actually points
beyond the end of the blog, we don't get the latest posts. It's really
a problem on the blog side from what I can tell, but this gives the
blog owner a chance to reset the counter and re-fetch the whole blog.

14 years agoFix typo
Magnus Hagander [Thu, 9 Dec 2010 10:16:16 +0000 (11:16 +0100)]
Fix typo

14 years agoHighlight code/pre blocks in planet posts.
Magnus Hagander [Thu, 2 Sep 2010 20:24:31 +0000 (22:24 +0200)]
Highlight code/pre blocks in planet posts.

Joshua Drake

14 years agoIf the given Last-Modified value is too far in the future, rewrite it to now().
Magnus Hagander [Thu, 2 Sep 2010 12:35:21 +0000 (14:35 +0200)]
If the given Last-Modified value is too far in the future, rewrite it to now().

Some blogs would return Last-Modified as 2038-<something>, yet still honor
the If-Modified-Since: 2038-<something> header and thus never deliver any
feeds at all..

14 years agoSupport cursors when listing subscribers to a list.
Magnus Hagander [Sat, 28 Aug 2010 12:20:59 +0000 (14:20 +0200)]
Support cursors when listing subscribers to a list.

It seems the twitter api always uses this even though it's supposed
to be optional.

14 years agoUpdate sample INI file with a reborn and a new parameter.
Magnus Hagander [Sat, 28 Aug 2010 12:05:00 +0000 (14:05 +0200)]
Update sample INI file with a reborn and a new parameter.

14 years agoMake the name of the twitter list configurable.
Magnus Hagander [Sat, 28 Aug 2010 12:04:38 +0000 (14:04 +0200)]
Make the name of the twitter list configurable.

14 years agoThe list_subscribers function belongs in TwitterClient
Magnus Hagander [Sat, 28 Aug 2010 12:01:51 +0000 (14:01 +0200)]
The list_subscribers function belongs in TwitterClient

14 years agoRefactor the posttotwitter.py script to use TwitterClient.
Magnus Hagander [Sat, 28 Aug 2010 11:59:59 +0000 (13:59 +0200)]
Refactor the posttotwitter.py script to use TwitterClient.

14 years agoAdd a script that synchronizes a twitter list with the list of subscribers.
Magnus Hagander [Sat, 28 Aug 2010 11:53:20 +0000 (13:53 +0200)]
Add a script that synchronizes a twitter list with the list of subscribers.

In passing, create a TwitterClient base class for use for all communication
with twitter.

14 years agoStore the Last-Modified time as received from the webserver.
Magnus Hagander [Tue, 24 Aug 2010 13:24:02 +0000 (15:24 +0200)]
Store the Last-Modified time as received from the webserver.

Use this for If-Modified-Since, instead of just using the timestamp
of the latest blog post found.

This should keep us from pulling the full feed from any blog that
has modified the contents of a post (or comments) without updating
the post date/GUID.