Magnus Hagander [Tue, 17 Aug 2021 09:52:11 +0000 (11:52 +0200)]
Optimize some db queries
Basically make django generate the joins/prefetches/subqueries instead
of firing of hundreds of queries on the db. Probably doesn't actually
matter that much given how seldom these queries are run, but still.
Magnus Hagander [Tue, 17 Aug 2021 08:14:00 +0000 (10:14 +0200)]
Show blog username/email in listing
For the regular user view, just show which account and email is used for
info.
For the administration view, show the username and email for each
individual blog, to help with tracking down misbehaving blogs.
And finally, in the moderation view, also include the email (it already
had the account name) to make it easier to contact an author.
Magnus Hagander [Tue, 1 Jun 2021 14:37:53 +0000 (16:37 +0200)]
Don't forward links for posts that have been hidden
Magnus Hagander [Sun, 17 Jan 2021 15:08:00 +0000 (16:08 +0100)]
Set proper mail headers to indicate auto-generated mails
Magnus Hagander [Fri, 25 Dec 2020 15:16:11 +0000 (16:16 +0100)]
Have redirector generate a robots.txt file if requested
Magnus Hagander [Fri, 25 Dec 2020 15:15:51 +0000 (16:15 +0100)]
Generate proper 404's in redirector
Instead of generating a 500 error, because that is both wrong and will
prevent caching.
Magnus Hagander [Tue, 1 Sep 2020 14:04:46 +0000 (16:04 +0200)]
Fix text for top lists time range
We are counting the number of posts in the past two months, but the
website said 1 month (and has since forever).
Spotted by Bruce Momjian
Magnus Hagander [Sun, 30 Aug 2020 14:24:47 +0000 (16:24 +0200)]
Fix title for field lastget
In particular it was terribly labeled in the moderation interface. Make
it better and more consistent between the two interfaces.
Magnus Hagander [Tue, 11 Aug 2020 12:14:55 +0000 (14:14 +0200)]
Import latest version of the community auth plugin
This includes receiving updates using the new push api.
Magnus Hagander [Sat, 11 Jul 2020 17:22:12 +0000 (19:22 +0200)]
Make use of the lastsuccess parameter to improve some messages
In particular, it is interesting to know when a blog that has failed
multiple times has actually succeeded more recent than the most recent
failure. So show this both on the dashbaord and on the individual blog
details, and include it in the email that's sent when a blog generates
large amounts of errors.
Magnus Hagander [Sat, 11 Jul 2020 16:36:08 +0000 (18:36 +0200)]
Track timestamp for last successful fetch of a blog
Magnus Hagander [Sat, 11 Jul 2020 16:35:27 +0000 (18:35 +0200)]
Only update actually changed fields in most places
Magnus Hagander [Sat, 11 Jul 2020 16:25:40 +0000 (18:25 +0200)]
Misc fixes to make pep8 happy
Mostly whitespace fixes, but also some bare-exception fixes.
Add a setup.cfg that specifies which pep8 settings we normally run with.
Magnus Hagander [Sat, 11 Jul 2020 16:24:27 +0000 (18:24 +0200)]
Clean up imports
Remove unused imports, and stop using "import *"
Magnus Hagander [Sat, 11 Jul 2020 16:22:19 +0000 (18:22 +0200)]
Fix incorrect classname
Magnus Hagander [Sat, 11 Jul 2020 16:01:06 +0000 (18:01 +0200)]
Convert tabs to spaces
Finally time to clean this repo up
Magnus Hagander [Fri, 8 May 2020 15:17:40 +0000 (17:17 +0200)]
Don't list archived blogs as members of teams
Spotted by Guillaume Lelarge
Magnus Hagander [Wed, 1 Apr 2020 13:55:03 +0000 (15:55 +0200)]
User.is_authenticated is no longer a callable in Django 2.2
Magnus Hagander [Tue, 31 Mar 2020 20:10:40 +0000 (22:10 +0200)]
Update to be compatible with django 2.2
Magnus Hagander [Wed, 25 Mar 2020 17:52:25 +0000 (18:52 +0100)]
Fix spelling error
Magnus Hagander [Wed, 26 Feb 2020 17:11:40 +0000 (18:11 +0100)]
Sync up community auth plugin to latest-and-greatest
Magnus Hagander [Thu, 9 Jan 2020 14:42:52 +0000 (15:42 +0100)]
Apply feedparser fix for python 3.7
Magnus Hagander [Thu, 9 Jan 2020 14:42:43 +0000 (15:42 +0100)]
Use vendored version of feedparser
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.