1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
from django.contrib.sitemaps import Sitemap
from django.core.urlresolvers import reverse
from main.models import Package
from news.models import News
from packages.utils import get_group_info
class PackagesSitemap(Sitemap):
changefreq = "weekly"
priority = "0.5"
def items(self):
return Package.objects.normal()
def lastmod(self, obj):
return obj.last_update
class PackageFilesSitemap(PackagesSitemap):
changefreq = "monthly"
priority = "0.3"
def location(self, obj):
return PackagesSitemap.location(self, obj) + 'files/'
def lastmod(self, obj):
return obj.files_last_update
class PackageGroupsSitemap(Sitemap):
changefreq = "weekly"
priority = "0.4"
def items(self):
return get_group_info()
def lastmod(self, obj):
return obj['last_update']
def location(self, obj):
return '/groups/%s/%s/' % (obj['arch'], obj['name'])
class NewsSitemap(Sitemap):
changefreq = "never"
priority = "0.8"
def items(self):
return News.objects.all()
def lastmod(self, obj):
return obj.last_modified
class BaseSitemap(Sitemap):
base_viewnames = (
('index', 1.0, 'hourly'),
('packages-search', 0.8, 'hourly'),
'page-about', 'page-art', 'page-svn', 'page-devs', 'page-tus',
'page-fellows', 'page-donate', 'page-download', 'news-list',
'feeds-list', 'groups-list', 'mirror-list', 'mirror-status',
'mirrorlist', 'packages-differences', 'releng-test-overview',
)
def items(self):
return self.base_viewnames
def location(self, obj):
name = obj
if isinstance(obj, tuple):
name = obj[0]
return reverse(name)
def priority(self, obj):
if isinstance(obj, tuple):
return obj[1]
return 0.7
def changefreq(self, obj):
if isinstance(obj, tuple):
return obj[2]
return 'monthly'
# vim: set ts=4 sw=4 et:
|