hamn.git
3 years agoOptimize some db queries
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.

3 years agoShow blog username/email in listing
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.

4 years agoDon't forward links for posts that have been hidden
Magnus Hagander [Tue, 1 Jun 2021 14:37:53 +0000 (16:37 +0200)]
Don't forward links for posts that have been hidden

4 years agoSet proper mail headers to indicate auto-generated mails
Magnus Hagander [Sun, 17 Jan 2021 15:08:00 +0000 (16:08 +0100)]
Set proper mail headers to indicate auto-generated mails

4 years agoHave redirector generate a robots.txt file if requested
Magnus Hagander [Fri, 25 Dec 2020 15:16:11 +0000 (16:16 +0100)]
Have redirector generate a robots.txt file if requested

4 years agoGenerate proper 404's in redirector
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.

4 years agoFix text for top lists time range
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

4 years agoFix title for field lastget
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.

4 years agoImport latest version of the community auth plugin
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.

4 years agoMake use of the lastsuccess parameter to improve some messages
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.

4 years agoTrack timestamp for last successful fetch of a blog
Magnus Hagander [Sat, 11 Jul 2020 16:36:08 +0000 (18:36 +0200)]
Track timestamp for last successful fetch of a blog

4 years agoOnly update actually changed fields in most places
Magnus Hagander [Sat, 11 Jul 2020 16:35:27 +0000 (18:35 +0200)]
Only update actually changed fields in most places

4 years agoMisc fixes to make pep8 happy
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.

4 years agoClean up imports
Magnus Hagander [Sat, 11 Jul 2020 16:24:27 +0000 (18:24 +0200)]
Clean up imports

Remove unused imports, and stop using "import *"

4 years agoFix incorrect classname
Magnus Hagander [Sat, 11 Jul 2020 16:22:19 +0000 (18:22 +0200)]
Fix incorrect classname

4 years agoConvert tabs to spaces
Magnus Hagander [Sat, 11 Jul 2020 16:01:06 +0000 (18:01 +0200)]
Convert tabs to spaces

Finally time to clean this repo up

5 years agoDon't list archived blogs as members of teams
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

5 years agoUser.is_authenticated is no longer a callable in Django 2.2
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

5 years agoUpdate to be compatible with django 2.2
Magnus Hagander [Tue, 31 Mar 2020 20:10:40 +0000 (22:10 +0200)]
Update to be compatible with django 2.2

5 years agoFix spelling error
Magnus Hagander [Wed, 25 Mar 2020 17:52:25 +0000 (18:52 +0100)]
Fix spelling error

5 years agoSync up community auth plugin to latest-and-greatest
Magnus Hagander [Wed, 26 Feb 2020 17:11:40 +0000 (18:11 +0100)]
Sync up community auth plugin to latest-and-greatest

5 years agoApply feedparser fix for python 3.7
Magnus Hagander [Thu, 9 Jan 2020 14:42:52 +0000 (15:42 +0100)]
Apply feedparser fix for python 3.7

5 years agoUse vendored version of feedparser
Magnus Hagander [Thu, 9 Jan 2020 14:42:43 +0000 (15:42 +0100)]
Use vendored version of feedparser

5 years agoVendor feedparser 5.2.1
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.

5 years agoFix spelling error
Magnus Hagander [Tue, 10 Dec 2019 09:53:40 +0000 (10:53 +0100)]
Fix spelling error

5 years agoUnicode fixes in old migrations
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

6 years agoEncode URL
Magnus Hagander [Fri, 28 Jun 2019 17:07:01 +0000 (19:07 +0200)]
Encode URL

6 years agoFlask responses need to be bytestrings, not real strings
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.

6 years agoBand-aid fix for feed as well
Magnus Hagander [Fri, 28 Jun 2019 14:51:21 +0000 (16:51 +0200)]
Band-aid fix for feed as well

6 years agoBand-aid fix for broken html tidy parsing
Magnus Hagander [Fri, 28 Jun 2019 14:49:30 +0000 (16:49 +0200)]
Band-aid fix for broken html tidy parsing

6 years agoReplace old version of Tidy with new one
Magnus Hagander [Fri, 28 Jun 2019 14:22:00 +0000 (16:22 +0200)]
Replace old version of Tidy with new one

6 years agoFix integer division for python 3
Magnus Hagander [Fri, 28 Jun 2019 14:21:53 +0000 (16:21 +0200)]
Fix integer division for python 3

6 years agoUpdate redirector to python 3
Magnus Hagander [Fri, 28 Jun 2019 14:13:36 +0000 (16:13 +0200)]
Update redirector to python 3

6 years agoImport latest version of community auth plugin
Magnus Hagander [Fri, 28 Jun 2019 13:26:26 +0000 (15:26 +0200)]
Import latest version of community auth plugin

6 years agoProeperly use requests to format URL parameters
Magnus Hagander [Fri, 28 Jun 2019 13:03:53 +0000 (15:03 +0200)]
Proeperly use requests to format URL parameters

6 years agoSwitch to using requests for varnish calls
Magnus Hagander [Fri, 28 Jun 2019 13:02:16 +0000 (15:02 +0200)]
Switch to using requests for varnish calls

6 years agoEnsure list is printed as list in python 3
Magnus Hagander [Fri, 28 Jun 2019 12:59:55 +0000 (14:59 +0200)]
Ensure list is printed as list in python 3

6 years agoFix has_key accesses for python 3
Magnus Hagander [Fri, 28 Jun 2019 12:59:17 +0000 (14:59 +0200)]
Fix has_key accesses for python 3

6 years agoFix unicode and printing for python 3
Magnus Hagander [Fri, 28 Jun 2019 12:57:20 +0000 (14:57 +0200)]
Fix unicode and printing for python 3

6 years agoUpdate exception handling for python 3
Magnus Hagander [Fri, 28 Jun 2019 12:55:57 +0000 (14:55 +0200)]
Update exception handling for python 3

6 years agoFix imports for python 3
Magnus Hagander [Fri, 28 Jun 2019 12:55:07 +0000 (14:55 +0200)]
Fix imports for python 3

6 years agoUpdate links to planet policy
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.

6 years agoFix result variable name
Magnus Hagander [Fri, 8 Feb 2019 08:45:48 +0000 (09:45 +0100)]
Fix result variable name

6 years agoProperly include hostname to twitter api when posting
Magnus Hagander [Fri, 8 Feb 2019 08:42:50 +0000 (09:42 +0100)]
Properly include hostname to twitter api when posting

6 years agoUpdate twitter poster to use new API as well
Magnus Hagander [Tue, 5 Feb 2019 10:13:17 +0000 (11:13 +0100)]
Update twitter poster to use new API as well

6 years agoUpdate twitter sync code to use requests_oauthlib
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.

6 years agoMake sort by name the default behaviour for teams
Magnus Hagander [Sun, 23 Sep 2018 14:09:28 +0000 (16:09 +0200)]
Make sort by name the default behaviour for teams

7 years agoFix incorrect string formatting specifier
Magnus Hagander [Tue, 26 Jun 2018 11:07:56 +0000 (13:07 +0200)]
Fix incorrect string formatting specifier

7 years agoFix template loaders for django 1.11
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).

7 years agoDetect excessive blog fetches
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.

7 years agoFix tracing messages
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.

7 years agoAutomatically follow http->https redirects
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.

7 years agoTreat http:// and https:// guid as being the same when fetching
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.

7 years agoRemove old leftover debugging code
Magnus Hagander [Sun, 25 Feb 2018 13:43:39 +0000 (14:43 +0100)]
Remove old leftover debugging code

7 years agoReplace render_to_response with render
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.

7 years agoUpdate URL configurations for newer django
Magnus Hagander [Sun, 25 Feb 2018 13:39:05 +0000 (14:39 +0100)]
Update URL configurations for newer django

7 years agoRemove app not used
Magnus Hagander [Sun, 25 Feb 2018 13:38:47 +0000 (14:38 +0100)]
Remove app not used

7 years agoUpdate template configuration for newer django
Magnus Hagander [Sun, 25 Feb 2018 13:38:37 +0000 (14:38 +0100)]
Update template configuration for newer django

7 years agoDon't just delete successful logs
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..

7 years agoAdd command to purge old logs
Magnus Hagander [Thu, 8 Feb 2018 19:36:07 +0000 (20:36 +0100)]
Add command to purge old logs

7 years agoAdd missing import
Magnus Hagander [Sat, 9 Dec 2017 10:37:49 +0000 (11:37 +0100)]
Add missing import

7 years agoProperly format email headers with non-ascii
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

7 years agoUpdate listsync script to sync with pglister instead of mj2
Magnus Hagander [Fri, 8 Dec 2017 13:13:31 +0000 (14:13 +0100)]
Update listsync script to sync with pglister instead of mj2

7 years agoEncode URLs to handle even worse formatted twitter links
Magnus Hagander [Sat, 18 Nov 2017 15:00:34 +0000 (16:00 +0100)]
Encode URLs to handle even worse formatted twitter links

7 years agoValidate twitter accounts when submitting a new blog
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.

7 years agoDon't crash when feedurl is not given
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.

8 years agoWhen redirecting, ignore querystring part (after ?) of URL
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

8 years agoUpdate blogurls from the contents of the feeds
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.

8 years agoDecode emails in the queue
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.

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.