From a87864f6d05250c9b07b8b9eaecae669505c7f38 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Sat, 4 Aug 2012 19:44:55 -0500 Subject: Slight adjustments to sitemaps priority values Signed-off-by: Dan McGee --- sitemaps.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'sitemaps.py') diff --git a/sitemaps.py b/sitemaps.py index 424168bf..97ab43c0 100644 --- a/sitemaps.py +++ b/sitemaps.py @@ -60,8 +60,6 @@ class SplitPackagesSitemap(Sitemap): class NewsSitemap(Sitemap): - priority = "0.8" - def __init__(self): now = datetime.utcnow().replace(tzinfo=utc) self.one_day_ago = now - timedelta(days=1) @@ -73,6 +71,11 @@ class NewsSitemap(Sitemap): def lastmod(self, obj): return obj.last_modified + def priority(self, obj): + if obj.last_modified > self.one_week_ago: + return "0.9" + return "0.8" + def changefreq(self, obj): if obj.last_modified > self.one_day_ago: return 'daily' @@ -82,9 +85,12 @@ class NewsSitemap(Sitemap): class BaseSitemap(Sitemap): + DEFAULT_PRIORITY = 0.7 + base_viewnames = ( ('index', 1.0, 'hourly'), ('packages-search', 0.8, 'hourly'), + ('page-download', 0.8, 'monthly'), ('page-keys', 0.8, 'weekly'), ('news-list', 0.7, 'weekly'), ('groups-list', 0.5, 'weekly'), @@ -96,7 +102,6 @@ class BaseSitemap(Sitemap): 'page-tus', 'page-fellows', 'page-donate', - 'page-download', 'feeds-list', 'mirror-list', 'mirrorlist', @@ -117,7 +122,7 @@ class BaseSitemap(Sitemap): def priority(self, obj): if isinstance(obj, tuple): return obj[1] - return 0.7 + return self.DEFAULT_PRIORITY def changefreq(self, obj): if isinstance(obj, tuple): -- cgit v1.2.3-2-g168b From 33bfba71042a55ff57115e833aabfed9852e80f4 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Thu, 20 Sep 2012 09:31:27 -0500 Subject: Defer content and other text items when building news sitemap We can get away with not retrieving these larger pieces of data when building the news sitemap. Signed-off-by: Dan McGee --- sitemaps.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sitemaps.py') diff --git a/sitemaps.py b/sitemaps.py index 97ab43c0..b53c990b 100644 --- a/sitemaps.py +++ b/sitemaps.py @@ -66,7 +66,7 @@ class NewsSitemap(Sitemap): self.one_week_ago = now - timedelta(days=7) def items(self): - return News.objects.all().order_by() + return News.objects.all().defer('content', 'guid', 'title').order_by() def lastmod(self, obj): return obj.last_modified -- cgit v1.2.3-2-g168b From 9b373c43aff6b9109ba813fcbcf40c7ac5521b04 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Sun, 30 Sep 2012 01:51:49 -0500 Subject: Optimize packages sitemap generation * Select arch and repo related models as we need the name off each * Only select the fields we actually need from the database * Exclude [staging] packages Signed-off-by: Dan McGee --- sitemaps.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'sitemaps.py') diff --git a/sitemaps.py b/sitemaps.py index b53c990b..bce3e005 100644 --- a/sitemaps.py +++ b/sitemaps.py @@ -13,7 +13,8 @@ class PackagesSitemap(Sitemap): priority = "0.5" def items(self): - return Package.objects.all().order_by() + return Package.objects.normal().filter(repo__staging=False).only( + 'pkgname', 'last_update', 'repo__name', 'arch__name').order_by() def lastmod(self, obj): return obj.last_update -- cgit v1.2.3-2-g168b From ec2ab9ba35e83dce20789b48f52f3aec02d788fc Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Fri, 4 Jan 2013 10:15:42 -0600 Subject: Add mirror status page to base sitemap Signed-off-by: Dan McGee --- sitemaps.py | 1 + 1 file changed, 1 insertion(+) (limited to 'sitemaps.py') diff --git a/sitemaps.py b/sitemaps.py index bce3e005..0388627b 100644 --- a/sitemaps.py +++ b/sitemaps.py @@ -105,6 +105,7 @@ class BaseSitemap(Sitemap): 'page-donate', 'feeds-list', 'mirror-list', + 'mirror-status', 'mirrorlist', 'packages-differences', 'releng-test-overview', -- cgit v1.2.3-2-g168b From 7313a7914dac9c86d48656964d310cff7fc2a0e1 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Fri, 18 Jan 2013 20:15:40 -0600 Subject: Include 'files_last_update' in package sitemap query We need this for the package files sitemap; else we are doing one query per package to retrieve this field. Whoops. Signed-off-by: Dan McGee --- sitemaps.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'sitemaps.py') diff --git a/sitemaps.py b/sitemaps.py index 0388627b..110c588a 100644 --- a/sitemaps.py +++ b/sitemaps.py @@ -14,7 +14,8 @@ class PackagesSitemap(Sitemap): def items(self): return Package.objects.normal().filter(repo__staging=False).only( - 'pkgname', 'last_update', 'repo__name', 'arch__name').order_by() + 'pkgname', 'last_update', 'files_last_update', + 'repo__name', 'arch__name').order_by() def lastmod(self, obj): return obj.last_update -- cgit v1.2.3-2-g168b From 445c242dac8f7c94f5d689fa3597ac573a4863a4 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Mon, 4 Feb 2013 23:27:44 -0600 Subject: Add a releases model sitemap Signed-off-by: Dan McGee --- sitemaps.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'sitemaps.py') diff --git a/sitemaps.py b/sitemaps.py index 110c588a..b079d8b7 100644 --- a/sitemaps.py +++ b/sitemaps.py @@ -7,6 +7,8 @@ from django.core.urlresolvers import reverse from main.models import Package from news.models import News from packages.utils import get_group_info, get_split_packages_info +from releng.models import Release + class PackagesSitemap(Sitemap): changefreq = "weekly" @@ -86,6 +88,21 @@ class NewsSitemap(Sitemap): return 'yearly' +class ReleasesSitemap(Sitemap): + changefreq = "monthly" + + def items(self): + return Release.objects.all().defer('info', 'torrent_data').order_by() + + def lastmod(self, obj): + return obj.created + + def priority(self, obj): + if obj.available: + return "0.6" + return "0.2" + + class BaseSitemap(Sitemap): DEFAULT_PRIORITY = 0.7 -- cgit v1.2.3-2-g168b From 1457f78594a25f8cfb8ad1f9b3cd6d071a3d6a93 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Wed, 20 Feb 2013 18:57:34 -0600 Subject: Package sitemap adjustments Adjust changefreq and priority based on the repository the package is in. Testing and staging have quick turnover so set the changefreq to 'daily'. Additionally, give staging packages a super low priority of 0.1 and testing a slightly lowered priority of 0.4. We didn't include staging packages before, but since search engines are finding them anyway, we might as well. This gives us a chance to share how important the page is as well, which they could only guess before. Signed-off-by: Dan McGee --- sitemaps.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'sitemaps.py') diff --git a/sitemaps.py b/sitemaps.py index b079d8b7..d206a1b6 100644 --- a/sitemaps.py +++ b/sitemaps.py @@ -11,17 +11,27 @@ from releng.models import Release class PackagesSitemap(Sitemap): - changefreq = "weekly" - priority = "0.5" - def items(self): - return Package.objects.normal().filter(repo__staging=False).only( + return Package.objects.normal().only( 'pkgname', 'last_update', 'files_last_update', - 'repo__name', 'arch__name').order_by() + 'repo__name', 'repo__testing', 'repo__staging', + 'arch__name').order_by() def lastmod(self, obj): return obj.last_update + def changefreq(self, obj): + if obj.repo.testing or obj.repo.staging: + return "daily" + return "weekly" + + def priority(self, obj): + if obj.repo.testing: + return "0.4" + if obj.repo.staging: + return "0.1" + return "0.5" + class PackageFilesSitemap(PackagesSitemap): changefreq = "weekly" -- cgit v1.2.3-2-g168b