Magnus Hagander [Thu, 9 Jan 2020 14:33:00 +0000 (15:33 +0100)]
Vendor feedparser 5.2.1
We're going to need to make small modifications, and the new 6.x release
isn't ready and doesn't appear to be close.
Magnus Hagander [Tue, 10 Dec 2019 09:53:40 +0000 (10:53 +0100)]
Fix spelling error
Magnus Hagander [Fri, 5 Jul 2019 20:27:59 +0000 (22:27 +0200)]
Unicode fixes in old migrations
Missed to update the migrations in the py3 update
Magnus Hagander [Fri, 28 Jun 2019 17:07:01 +0000 (19:07 +0200)]
Encode URL
Magnus Hagander [Fri, 28 Jun 2019 17:02:56 +0000 (19:02 +0200)]
Flask responses need to be bytestrings, not real strings
Seems if a string is returned, flask just turns it into an empty
response (rather than converting it to utf8 as expected). These are
trivial hardcoded strings though, so just use bytestrings.
Magnus Hagander [Fri, 28 Jun 2019 14:51:21 +0000 (16:51 +0200)]
Band-aid fix for feed as well
Magnus Hagander [Fri, 28 Jun 2019 14:49:30 +0000 (16:49 +0200)]
Band-aid fix for broken html tidy parsing
Magnus Hagander [Fri, 28 Jun 2019 14:22:00 +0000 (16:22 +0200)]
Replace old version of Tidy with new one
Magnus Hagander [Fri, 28 Jun 2019 14:21:53 +0000 (16:21 +0200)]
Fix integer division for python 3
Magnus Hagander [Fri, 28 Jun 2019 14:13:36 +0000 (16:13 +0200)]
Update redirector to python 3
Magnus Hagander [Fri, 28 Jun 2019 13:26:26 +0000 (15:26 +0200)]
Import latest version of community auth plugin
Magnus Hagander [Fri, 28 Jun 2019 13:03:53 +0000 (15:03 +0200)]
Proeperly use requests to format URL parameters
Magnus Hagander [Fri, 28 Jun 2019 13:02:16 +0000 (15:02 +0200)]
Switch to using requests for varnish calls
Magnus Hagander [Fri, 28 Jun 2019 12:59:55 +0000 (14:59 +0200)]
Ensure list is printed as list in python 3
Magnus Hagander [Fri, 28 Jun 2019 12:59:17 +0000 (14:59 +0200)]
Fix has_key accesses for python 3
Magnus Hagander [Fri, 28 Jun 2019 12:57:20 +0000 (14:57 +0200)]
Fix unicode and printing for python 3
Magnus Hagander [Fri, 28 Jun 2019 12:55:57 +0000 (14:55 +0200)]
Update exception handling for python 3
Magnus Hagander [Fri, 28 Jun 2019 12:55:07 +0000 (14:55 +0200)]
Fix imports for python 3
Magnus Hagander [Mon, 29 Apr 2019 17:12:30 +0000 (19:12 +0200)]
Update links to planet policy
The policy lives on the main website these days, not the wiki.
Magnus Hagander [Fri, 8 Feb 2019 08:45:48 +0000 (09:45 +0100)]
Fix result variable name
Magnus Hagander [Fri, 8 Feb 2019 08:42:50 +0000 (09:42 +0100)]
Properly include hostname to twitter api when posting
Magnus Hagander [Tue, 5 Feb 2019 10:13:17 +0000 (11:13 +0100)]
Update twitter poster to use new API as well
Magnus Hagander [Tue, 5 Feb 2019 09:47:19 +0000 (10:47 +0100)]
Update twitter sync code to use requests_oauthlib
This simplifies the code a lot, and also adds the functionality to not
get stuck in a cron-loop when somebody specifies a non-public twitter
account as their twitter account. Instead when that happens just remove
the twitter account from the feed (storing it in a new field,
oldtwitteraccount, just to be on the safe side in case twitter does evil
things to us at some point)
Code mostly stolen from the pgeu website code.
Magnus Hagander [Sun, 23 Sep 2018 14:09:28 +0000 (16:09 +0200)]
Make sort by name the default behaviour for teams
Magnus Hagander [Tue, 26 Jun 2018 11:07:56 +0000 (13:07 +0200)]
Fix incorrect string formatting specifier
Magnus Hagander [Sun, 25 Mar 2018 14:56:56 +0000 (16:56 +0200)]
Fix template loaders for django 1.11
Seems django 1.11 automatically enables caching template loader, which
of course breaks the ability to make any changes to the pages of a
website without restarting it. And there is no way to turn it off other
than to explicitly configure individual loders (the logic to turn it on
in non-debug configurations is hardcoded and cannot be changed).
Magnus Hagander [Mon, 19 Mar 2018 11:55:43 +0000 (12:55 +0100)]
Detect excessive blog fetches
If a single fetch from a blog grabs more than <n> entries (the default
being 4), this usually indicates a misconfigured blog and it will end up
spamming the outgoing feed and twitter, even if later corrected. For
that reason, when this happens, mark all the newly fetched entries as
hidden, and send a notification as such. In the event that they are
actually correct, the user can go in and manually unhide those entries,
which will make them show up again.
Magnus Hagander [Mon, 19 Mar 2018 11:52:56 +0000 (12:52 +0100)]
Fix tracing messages
Shouldn't use print directly, since it doesn't respect the verbosity
setting.
Magnus Hagander [Mon, 19 Mar 2018 11:26:04 +0000 (12:26 +0100)]
Automatically follow http->https redirects
We only follow the redirect if the URL is *exactly* the same except it
has https intead of http in it. But this is a very common scenario these
days, so let's simplify that one.
In particular, it makes no sense to re-moderate a blog after that change
has been made.
Magnus Hagander [Mon, 19 Mar 2018 11:11:03 +0000 (12:11 +0100)]
Treat and https:// guid as being the same when fetching
This means that if the same blog post shows up both under http:// and
https:// (for example when somebody changes their URL from http to
https, but it still contains the old posts), we will treat them as being
the same and not fetch a second copy of it.
We handle both http->https (common) and https->http (would probably
indicate a misconfiguration) scenarios.
Magnus Hagander [Sun, 25 Feb 2018 13:43:39 +0000 (14:43 +0100)]
Remove old leftover debugging code
Magnus Hagander [Sun, 25 Feb 2018 13:39:25 +0000 (14:39 +0100)]
Replace render_to_response with render
Required in newer django, and still works in the old one.
Magnus Hagander [Sun, 25 Feb 2018 13:39:05 +0000 (14:39 +0100)]
Update URL configurations for newer django
Magnus Hagander [Sun, 25 Feb 2018 13:38:47 +0000 (14:38 +0100)]
Remove app not used
Magnus Hagander [Sun, 25 Feb 2018 13:38:37 +0000 (14:38 +0100)]
Update template configuration for newer django
Magnus Hagander [Thu, 8 Feb 2018 19:39:52 +0000 (20:39 +0100)]
Don't just delete successful logs
MOst of what we end up keeping aren't..
Magnus Hagander [Thu, 8 Feb 2018 19:36:07 +0000 (20:36 +0100)]
Add command to purge old logs
Magnus Hagander [Sat, 9 Dec 2017 10:37:49 +0000 (11:37 +0100)]
Add missing import
Magnus Hagander [Fri, 8 Dec 2017 14:31:20 +0000 (15:31 +0100)]
Properly format email headers with non-ascii
When sending an email to non-ascii names, the actual email address
should not be part of the encoded section. It should have a separate
section that's not encoded.
Ported over from the pgeu install
Magnus Hagander [Fri, 8 Dec 2017 13:13:31 +0000 (14:13 +0100)]
Update listsync script to sync with pglister instead of mj2
Magnus Hagander [Sat, 18 Nov 2017 15:00:34 +0000 (16:00 +0100)]
Encode URLs to handle even worse formatted twitter links
Magnus Hagander [Sat, 18 Nov 2017 14:54:19 +0000 (15:54 +0100)]
Validate twitter accounts when submitting a new blog
Do this by connecting to the twitter API and actually validate both that
the account exists, and that it's not protected. Protected accounts will
cause the follower-sync script to keep trying over and over again for
following, and there's not any point in promoting those anyway.
This adds a dependency on requests_oauthlib, but that's already used in
other pgweb projects so shouldn't be a problem.
Magnus Hagander [Sat, 18 Nov 2017 14:53:59 +0000 (15:53 +0100)]
Don't crash when feedurl is not given
Instead, give a proper error message as intended.
Magnus Hagander [Tue, 13 Jun 2017 12:55:30 +0000 (14:55 +0200)]
When redirecting, ignore querystring part (after ?) of URL
This can sometimes be added by some broken trackers, but we can safely
ignore it completely.
Reported by Stefan Kaltenbrunner
Magnus Hagander [Thu, 25 May 2017 14:07:19 +0000 (10:07 -0400)]
Update blogurls from the contents of the feeds
If somebodys blog url changes in the feed, pick it up and store the new
one. Also send an email to the person letting them know it happened, as
well as a notice to moderators. But don't require new moderation when it
happens, just do manual post-moderation in the event that something goes
wrong.
Magnus Hagander [Thu, 25 May 2017 13:29:38 +0000 (09:29 -0400)]
Decode emails in the queue
Makes it easier to do debugging. Patch copied over from the pgeu
repository.
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
Magnus Hagander [Tue, 22 Nov 2016 20:16:10 +0000 (21:16 +0100)]
Planet postgresql is now https
Magnus Hagander [Mon, 21 Nov 2016 20:58:24 +0000 (21:58 +0100)]
Wiki and twitter links should be https
Magnus Hagander [Sun, 20 Nov 2016 16:35:30 +0000 (17:35 +0100)]
Use https for postgr.es
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.
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.
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.
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).
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.
Magnus Hagander [Mon, 21 Mar 2016 16:10:13 +0000 (17:10 +0100)]
Fix typo
Reported by David Rowley, though Alvaro
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.
Magnus Hagander [Tue, 8 Mar 2016 16:53:42 +0000 (17:53 +0100)]
Don't synchronize twitter users for unapproved feeds
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.
Magnus Hagander [Thu, 18 Feb 2016 01:06:36 +0000 (20:06 -0500)]
Reference correct variable in error msg
Magnus Hagander [Tue, 16 Feb 2016 16:21:24 +0000 (17:21 +0100)]
Remove templates no longer used
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
Magnus Hagander [Mon, 15 Feb 2016 16:58:10 +0000 (17:58 +0100)]
Set title fields for forms and pages
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.
Magnus Hagander [Mon, 15 Feb 2016 16:23:56 +0000 (17:23 +0100)]
Don't synchronize users who only have archived blogs
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.
Magnus Hagander [Thu, 11 Feb 2016 14:22:58 +0000 (15:22 +0100)]
Add specific team admin to list more details in admin view
Magnus Hagander [Thu, 11 Feb 2016 14:19:36 +0000 (15:19 +0100)]
Remove leftover debugging code
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.
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.
Magnus Hagander [Thu, 11 Feb 2016 13:30:53 +0000 (14:30 +0100)]
Add search fields to admin
Magnus Hagander [Thu, 11 Feb 2016 13:28:13 +0000 (14:28 +0100)]
Better admin for aggregator log
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.
Magnus Hagander [Thu, 11 Feb 2016 08:30:56 +0000 (09:30 +0100)]
Fix query for list sync
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
Magnus Hagander [Wed, 10 Feb 2016 22:01:53 +0000 (23:01 +0100)]
Fix accidentally broken error pages
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.
Magnus Hagander [Wed, 10 Feb 2016 21:08:57 +0000 (22:08 +0100)]
Not used any more
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)
Magnus Hagander [Wed, 10 Feb 2016 20:10:28 +0000 (21:10 +0100)]
Don't crash hard when there are no visible items
Magnus Hagander [Wed, 10 Feb 2016 19:45:37 +0000 (20:45 +0100)]
Oops in purge header
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...
Magnus Hagander [Wed, 10 Feb 2016 18:19:17 +0000 (19:19 +0100)]
Send email to feed owner when entries are aggregated
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.
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".
Magnus Hagander [Wed, 10 Feb 2016 17:35:48 +0000 (18:35 +0100)]
These shorterners haven't been supported for years
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.
Magnus Hagander [Wed, 10 Feb 2016 17:37:23 +0000 (18:37 +0100)]
Import bootstrap CSS
To be used by the new moderation interface
Magnus Hagander [Wed, 10 Feb 2016 16:29:35 +0000 (17:29 +0100)]
List more info about posts in admin display
Magnus Hagander [Tue, 9 Feb 2016 15:28:21 +0000 (16:28 +0100)]
Import mailqueue app from pgeu
Magnus Hagander [Fri, 1 Jan 2016 16:47:18 +0000 (17:47 +0100)]
Don't crash on NULL team information
Magnus Hagander [Fri, 1 Jan 2016 16:43:01 +0000 (17:43 +0100)]
Script requires bash
Magnus Hagander [Fri, 1 Jan 2016 16:41:08 +0000 (17:41 +0100)]
Support for automatically activating virtualenv for cronjob
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.
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...
Magnus Hagander [Thu, 31 Dec 2015 15:16:12 +0000 (16:16 +0100)]
Add initial schema migration for django 1.8
Magnus Hagander [Thu, 31 Dec 2015 14:23:24 +0000 (15:23 +0100)]
Update sample local_settings.py for new settings format
Magnus Hagander [Thu, 31 Dec 2015 14:21:58 +0000 (15:21 +0100)]
Remove horribly out-of-date documentation
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;
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.