+++ /dev/null
-#!/usr/bin/env php
-<?php
-/*
- * StatusNet - a distributed open-source microblogging tool
- * Copyright (C) 2008, 2009, StatusNet, Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-define('INSTALLDIR', realpath(dirname(__FILE__) . '/..'));
-
-$shortoptions = 'i:n:a';
-$longoptions = array('id=', 'nickname=', 'all');
-
-$helptext = <<<END_OF_UPDATEAVATARURL_HELP
-updateavatarurl.php [options]
-update the URLs of all avatars in the system
-
- -i --id ID of user to update
- -n --nickname nickname of the user to update
- -a --all update all
-
-END_OF_UPDATEAVATARURL_HELP;
-
-require_once INSTALLDIR.'/scripts/commandline.inc';
-
-try {
- $user = null;
-
- if (have_option('i', 'id')) {
- $id = get_option_value('i', 'id');
- $user = User::staticGet('id', $id);
- if (empty($user)) {
- throw new Exception("Can't find user with id '$id'.");
- }
- updateAvatars($user);
- } else if (have_option('n', 'nickname')) {
- $nickname = get_option_value('n', 'nickname');
- $user = User::staticGet('nickname', $nickname);
- if (empty($user)) {
- throw new Exception("Can't find user with nickname '$nickname'");
- }
- updateAvatars($user);
- } else if (have_option('a', 'all')) {
- $user = new User();
- if ($user->find()) {
- while ($user->fetch()) {
- updateAvatars($user);
- }
- }
- } else {
- show_help();
- exit(1);
- }
-} catch (Exception $e) {
- print $e->getMessage()."\n";
- exit(1);
-}
-
-function updateAvatars($user)
-{
- $touched = false;
-
- if (!have_option('q', 'quiet')) {
- print "Updating avatars for user '".$user->nickname."' (".$user->id.")...";
- }
-
- $avatar = new Avatar();
-
- $avatar->profile_id = $user->id;
-
- if (!$avatar->find()) {
- if (have_option('v', 'verbose')) {
- print "(none found)...";
- }
- } else {
- while ($avatar->fetch()) {
- if (have_option('v', 'verbose')) {
- if ($avatar->original) {
- print "original...";
- } else {
- print $avatar->width."...";
- }
- }
-
- $orig_url = $avatar->url;
-
- $avatar->url = Avatar::url($avatar->filename);
-
- if ($avatar->url != $orig_url) {
- $sql =
- "UPDATE avatar SET url = '" . $avatar->url . "' ".
- "WHERE profile_id = " . $avatar->profile_id . " ".
- "AND width = " . $avatar->width . " " .
- "AND height = " . $avatar->height . " ";
-
- if ($avatar->original) {
- $sql .= "AND original = 1 ";
- }
-
- if (!$avatar->query($sql)) {
- throw new Exception("Can't update avatar for user " . $user->nickname . ".");
- } else {
- $touched = true;
- }
- }
- }
- }
-
- if ($touched) {
- $profile = $user->getProfile();
- common_broadcast_profile($profile);
- }
-
- if (have_option('v', 'verbose')) {
- print "DONE.";
- }
- if (!have_option('q', 'quiet') || have_option('v', 'verbose')) {
- print "\n";
- }
-}
+++ /dev/null
-#!/usr/bin/env php
-<?php
-/*
- * StatusNet - a distributed open-source microblogging tool
- * Copyright (C) 2008, 2009, StatusNet, Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-define('INSTALLDIR', realpath(dirname(__FILE__) . '/..'));
-
-$shortoptions = 'i:n:a';
-$longoptions = array('id=', 'nickname=', 'all');
-
-$helptext = <<<END_OF_UPDATEAVATARURL_HELP
-updateavatarurl_group.php [options]
-update the URLs of all group avatars in the system
-
- -i --id ID of group to update
- -n --nickname nickname of the group to update
- -a --all update all
-
-END_OF_UPDATEAVATARURL_HELP;
-
-require_once INSTALLDIR.'/scripts/commandline.inc';
-
-try {
- $user = null;
-
- if (have_option('i', 'id')) {
- $id = get_option_value('i', 'id');
- $group = User_group::staticGet('id', $id);
- if (empty($group)) {
- throw new Exception("Can't find group with id '$id'.");
- }
- updateGroupAvatars($group);
- } else if (have_option('n', 'nickname')) {
- $nickname = get_option_value('n', 'nickname');
- $group = User_group::staticGet('nickname', $nickname);
- if (empty($group)) {
- throw new Exception("Can't find group with nickname '$nickname'");
- }
- updateGroupAvatars($group);
- } else if (have_option('a', 'all')) {
- $group = new User_group();
- if ($group->find()) {
- while ($group->fetch()) {
- updateGroupAvatars($group);
- }
- }
- } else {
- show_help();
- exit(1);
- }
-} catch (Exception $e) {
- print $e->getMessage()."\n";
- exit(1);
-}
-
-function updateGroupAvatars($group)
-{
- if (!have_option('q', 'quiet')) {
- print "Updating avatars for group '".$group->nickname."' (".$group->id.")...";
- }
-
- if (empty($group->original_logo)) {
- print "(none found)...";
- } else {
- // Using clone here was screwing up the group->find() iteration
- $orig = User_group::staticGet('id', $group->id);
-
- $group->original_logo = Avatar::url(basename($group->original_logo));
- $group->homepage_logo = Avatar::url(basename($group->homepage_logo));
- $group->stream_logo = Avatar::url(basename($group->stream_logo));
- $group->mini_logo = Avatar::url(basename($group->mini_logo));
-
- if (!$group->update($orig)) {
- throw new Exception("Can't update avatars for group " . $group->nickname . ".");
- }
- }
-
- if (have_option('v', 'verbose')) {
- print "DONE.";
- }
- if (!have_option('q', 'quiet') || have_option('v', 'verbose')) {
- print "\n";
- }
-}
+++ /dev/null
-#!/usr/bin/env php
-<?php
-/*
- * StatusNet - a distributed open-source microblogging tool
- * Copyright (C) 2008, 2009, StatusNet, Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-define('INSTALLDIR', realpath(dirname(__FILE__) . '/..'));
-
-$shortoptions = 'i:n:a';
-$longoptions = array('id=', 'nickname=', 'all');
-
-$helptext = <<<END_OF_UPDATEPROFILEURL_HELP
-updateprofileurl.php [options]
-update the URLs of all avatars in the system
-
- -i --id ID of user to update
- -n --nickname nickname of the user to update
- -a --all update all
-
-END_OF_UPDATEPROFILEURL_HELP;
-
-require_once INSTALLDIR.'/scripts/commandline.inc';
-
-try {
- $user = null;
-
- if (have_option('i', 'id')) {
- $id = get_option_value('i', 'id');
- $user = User::staticGet('id', $id);
- if (empty($user)) {
- throw new Exception("Can't find user with id '$id'.");
- }
- updateProfileURL($user);
- } else if (have_option('n', 'nickname')) {
- $nickname = get_option_value('n', 'nickname');
- $user = User::staticGet('nickname', $nickname);
- if (empty($user)) {
- throw new Exception("Can't find user with nickname '$nickname'");
- }
- updateProfileURL($user);
- } else if (have_option('a', 'all')) {
- $user = new User();
- if ($user->find()) {
- while ($user->fetch()) {
- updateProfileURL($user);
- }
- }
- } else {
- show_help();
- exit(1);
- }
-} catch (Exception $e) {
- print $e->getMessage()."\n";
- exit(1);
-}
-
-function updateProfileURL($user)
-{
- $profile = $user->getProfile();
-
- if (empty($profile)) {
- throw new Exception("Can't find profile for user $user->nickname ($user->id)");
- }
-
- $orig = clone($profile);
-
- $profile->profileurl = common_profile_url($user->nickname);
-
- if (!have_option('q', 'quiet')) {
- print "Updating profile url for $user->nickname ($user->id) ".
- "from $orig->profileurl to $profile->profileurl...";
- }
-
- $result = $profile->update($orig);
-
- if (!$result) {
- print "FAIL.\n";
- common_log_db_error($profile, 'UPDATE', __FILE__);
- throw new Exception("Can't update profile for user $user->nickname ($user->id)");
- }
-
- common_broadcast_profile($profile);
-
- print "OK.\n";
-}
--- /dev/null
+#!/usr/bin/env php
+<?php
+/*
+ * StatusNet - a distributed open-source microblogging tool
+ * Copyright (C) 2008-2011, StatusNet, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+define('INSTALLDIR', realpath(dirname(__FILE__) . '/..'));
+
+$shortoptions = '';
+$longoptions = array();
+
+$helptext = <<<END_OF_UPDATEURLS_HELP
+updateurls.php [options]
+update stored URLs in the system
+
+END_OF_UPDATEURLS_HELP;
+
+require_once INSTALLDIR.'/scripts/commandline.inc';
+
+function main()
+{
+ updateUserUrls();
+ updateGroupUrls();
+}
+
+function updateUserUrls()
+{
+ printfnq("Updating user URLs...\n");
+
+ // XXX: only update user URLs where out-of-date
+
+ $user = new User();
+ if ($user->find()) {
+ while ($user->fetch()) {
+ printfv("Updating user {$user->nickname}...");
+ try {
+ $profile = $user->getProfile();
+
+ updateProfileUrl($profile);
+ updateAvatarUrls($profile);
+
+ // Broadcast for remote users
+
+ common_broadcast_profile($profile);
+
+ } catch (Exception $e) {
+ printv("Error updating URLs: " . $e->getMessage());
+ }
+ printfv("DONE.");
+ }
+ }
+}
+
+function updateProfileUrl($profile)
+{
+ $orig = clone($profile);
+ $profile->profileurl = common_profile_url($profile->nickname);
+ $profile->update($orig);
+}
+
+function updateAvatarUrls($profile)
+{
+ $avatar = new Avatar();
+
+ $avatar->profile_id = $profile->id;
+ if ($avatar->find()) {
+ while ($avatar->fetch()) {
+ $orig_url = $avatar->url;
+ $avatar->url = Avatar::url($avatar->filename);
+ if ($avatar->url != $orig_url) {
+ $sql =
+ "UPDATE avatar SET url = '" . $avatar->url . "' ".
+ "WHERE profile_id = " . $avatar->profile_id . " ".
+ "AND width = " . $avatar->width . " " .
+ "AND height = " . $avatar->height . " ";
+
+ if ($avatar->original) {
+ $sql .= "AND original = 1 ";
+ }
+
+ if (!$avatar->query($sql)) {
+ throw new Exception("Can't update avatar for user " . $profile->nickname . ".");
+ } else {
+ $touched = true;
+ }
+ }
+ }
+ }
+}
+
+function updateGroupUrls()
+{
+ $group = new User_group();
+
+ if ($group->find()) {
+ while ($group->fetch()) {
+ try {
+ $orig = User_group::staticGet('id', $group->id);
+ if (!empty($group->original_logo)) {
+ $group->original_logo = Avatar::url(basename($group->original_logo));
+ $group->homepage_logo = Avatar::url(basename($group->homepage_logo));
+ $group->stream_logo = Avatar::url(basename($group->stream_logo));
+ $group->mini_logo = Avatar::url(basename($group->mini_logo));
+ }
+ // XXX: this is a hack to see if a group is local or not
+ $localUri = common_local_url('groupbyid',
+ array('id' => $group->id));
+ if ($group->getUri() != $localUri) {
+ $group->mainpage = common_local_url('showgroup',
+ array('nickname' => $group->nickname));
+ }
+ $group->update($orig);
+ } catch (Exception $e) {
+ printv("Can't update avatars for group " . $group->nickname . ": ". $e->getMessage());
+ }
+ }
+ }
+}