forked from GNUsocial/gnu-social
fix some errors in sitemaps
Only show notices that don't have a remote URL. That should include only local notices. Also, don't do an avatar sitemap; apparently nobody indexes these anyways. darcs-hash:20080812011600-84dde-680d39ef8379605febd16ed52c529711e8e1ccc9.gz
This commit is contained in:
parent
e90004964f
commit
e5565ddcab
45
sitemap.php
45
sitemap.php
@ -11,7 +11,6 @@ $output_paths = parse_args();
|
||||
standard_map();
|
||||
notices_map();
|
||||
user_map();
|
||||
avatar_map();
|
||||
index_map();
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
@ -83,7 +82,7 @@ function notices_map() {
|
||||
|
||||
$notices = DB_DataObject::factory('notice');
|
||||
|
||||
$notices->query('SELECT uri, modified FROM notice');
|
||||
$notices->query('SELECT uri, url, modified FROM notice');
|
||||
|
||||
$notice_count = 0;
|
||||
$map_count = 1;
|
||||
@ -96,6 +95,9 @@ function notices_map() {
|
||||
$map_count++;
|
||||
}
|
||||
|
||||
# remote notices have an URL
|
||||
|
||||
if (!$notices->url) {
|
||||
$notice = array(
|
||||
'url' => $notices->uri,
|
||||
'lastmod' => common_date_w3dtf($notices->modified),
|
||||
@ -104,9 +106,9 @@ function notices_map() {
|
||||
);
|
||||
|
||||
$notice_list[$map_count] .= url($notice);
|
||||
|
||||
$notice_count++;
|
||||
}
|
||||
}
|
||||
|
||||
# Make full sitemaps from the lists and save them.
|
||||
array_to_map($notice_list, 'notice');
|
||||
@ -201,43 +203,6 @@ function user_map() {
|
||||
array_to_map($foaf_list, 'foaf');
|
||||
}
|
||||
|
||||
# Generate sitemaps of all avatars.
|
||||
function avatar_map() {
|
||||
global $output_paths;
|
||||
|
||||
$avatars = new Avatar();
|
||||
$avatars->whereAdd('original = 1', "OR");
|
||||
$avatars->whereAdd('width = ' . AVATAR_MINI_SIZE, 'OR');
|
||||
|
||||
if (!$avatars->find()) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
$avatar_count = 0;
|
||||
$map_count = 1;
|
||||
|
||||
while ($avatars->fetch()) {
|
||||
|
||||
# Maximum 50,000 URLs per sitemap file.
|
||||
if ($avatar_count == 50000) {
|
||||
$avatar_count = 0;
|
||||
$map_count++;
|
||||
}
|
||||
$image = array(
|
||||
'url' => common_avatar_display_url($avatars),
|
||||
'lastmod' => common_date_w3dtf($avatars->modified),
|
||||
'changefreq' => 'never',
|
||||
'priority' => '0.2',
|
||||
);
|
||||
|
||||
# Construct a <url></url> element for each avatar and add it
|
||||
# to our existing list of those.
|
||||
$avatar_list[$map_count] .= url($image);
|
||||
}
|
||||
|
||||
array_to_map($avatar_list, 'avatars');
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# XML generation functions
|
||||
# ------------------------------------------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user