summaryrefslogtreecommitdiff
path: root/_darcs/tentative_pristine
diff options
context:
space:
mode:
Diffstat (limited to '_darcs/tentative_pristine')
-rw-r--r--_darcs/tentative_pristine704
1 files changed, 517 insertions, 187 deletions
diff --git a/_darcs/tentative_pristine b/_darcs/tentative_pristine
index 73c44f1dc..4e6b1fca9 100644
--- a/_darcs/tentative_pristine
+++ b/_darcs/tentative_pristine
@@ -1,232 +1,562 @@
-hunk ./lib/daemon.php 2
+hunk ./lib/gallery.php 2
+-
-/*
+/**
-hunk ./lib/daemon.php 20
+hunk ./lib/gallery.php 20
-if (!defined('LACONICA')) { exit(1); }
+if (!defined('LACONICA')) {
+ exit(1);
+}
-hunk ./lib/daemon.php 24
--class Daemon {
-+class Daemon
+hunk ./lib/gallery.php 24
+-require_once(INSTALLDIR.'/lib/profilelist.php');
++require_once INSTALLDIR.'/lib/profilelist.php';
+hunk ./lib/gallery.php 26
+-# 10x8
++// 10x8
+hunk ./lib/gallery.php 30
+-class GalleryAction extends Action {
++class GalleryAction extends Action
+{
-+ function name()
++ function is_readonly()
+ {
-+ return null;
++ return true;
+ }
-hunk ./lib/daemon.php 31
-- function name() {
-- return NULL;
++
++ function handle($args)
++ {
++ parent::handle($args);
++
++ // Post from the tag dropdown; redirect to a GET
++
++ if ($_SERVER['REQUEST_METHOD'] == 'POST') {
++ common_redirect($this->self_url(), 307);
++ }
++
++ $nickname = common_canonical_nickname($this->arg('nickname'));
+hunk ./lib/gallery.php 49
+- function is_readonly() {
+- return true;
- }
--
-- function background() {
-- $pid = pcntl_fork();
-- if ($pid < 0) { # error
-- common_log(LOG_ERR, "Could not fork.");
-- return false;
-- } else if ($pid > 0) { # parent
-- common_log(LOG_INFO, "Successfully forked.");
-- exit(0);
-- } else { # child
-- return true;
++ $user = User::staticGet('nickname', $nickname);
+hunk ./lib/gallery.php 51
+- function handle($args) {
+- parent::handle($args);
++ if (!$user) {
++ $this->no_such_user();
++ return;
++ }
+hunk ./lib/gallery.php 56
+- # Post from the tag dropdown; redirect to a GET
++ $profile = $user->getProfile();
+hunk ./lib/gallery.php 58
+- if ($_SERVER['REQUEST_METHOD'] == 'POST') {
+- common_redirect($this->self_url(), 307);
- }
-- }
-+ function background()
-+ {
-+ $pid = pcntl_fork();
-+ if ($pid < 0) { // error
-+ common_log(LOG_ERR, "Could not fork.");
-+ return false;
-+ } else if ($pid > 0) { // parent
-+ common_log(LOG_INFO, "Successfully forked.");
-+ exit(0);
-+ } else { // child
-+ return true;
++ if (!$profile) {
++ $this->server_error(_('User without matching profile in system.'));
++ return;
+ }
-+ }
-hunk ./lib/daemon.php 45
-- function alreadyRunning() {
-+ function alreadyRunning()
-+ {
-+ $pidfilename = $this->pidFilename();
-hunk ./lib/daemon.php 49
-- $pidfilename = $this->pidFilename();
-+ if (!$pidfilename) {
-+ return false;
+hunk ./lib/gallery.php 63
+- $nickname = common_canonical_nickname($this->arg('nickname'));
+- $user = User::staticGet('nickname', $nickname);
++ $page = $this->arg('page');
+hunk ./lib/gallery.php 65
+- if (!$user) {
+- $this->no_such_user();
+- return;
+- }
++ if (!$page) {
++ $page = 1;
+ }
-hunk ./lib/daemon.php 53
-- if (!$pidfilename) {
-- return false;
+hunk ./lib/gallery.php 69
+- $profile = $user->getProfile();
++ $display = $this->arg('display');
+hunk ./lib/gallery.php 71
+- if (!$profile) {
+- $this->server_error(_('User without matching profile in system.'));
+- return;
- }
--
-- if (!file_exists($pidfilename)) {
-- return false;
++ if (!$display) {
++ $display = 'list';
++ }
+hunk ./lib/gallery.php 75
+- $page = $this->arg('page');
++ $tag = $this->arg('tag');
+hunk ./lib/gallery.php 77
+- if (!$page) {
+- $page = 1;
- }
-- $contents = file_get_contents($pidfilename);
-- if (posix_kill(trim($contents),0)) {
-- return true;
-- } else {
-- return false;
++ common_show_header($profile->nickname . ": " . $this->gallery_type(),
++ null, $profile,
++ array($this, 'show_top'));
+hunk ./lib/gallery.php 81
+- $display = $this->arg('display');
++ $this->display_links($profile, $page, $display);
++ $this->show_tags_dropdown($profile);
+hunk ./lib/gallery.php 84
+- if (!$display) {
+- $display = 'list';
- }
++ $this->show_gallery($profile, $page, $display, $tag);
++ common_show_footer();
++ }
+hunk ./lib/gallery.php 88
+- $tag = $this->arg('tag');
++ function no_such_user()
++ {
++ $this->client_error(_('No such user.'));
++ }
+hunk ./lib/gallery.php 93
+- common_show_header($profile->nickname . ": " . $this->gallery_type(),
+- NULL, $profile,
+- array($this, 'show_top'));
++ function show_tags_dropdown($profile)
++ {
++ $tag = $this->trimmed('tag');
+hunk ./lib/gallery.php 97
+- $this->display_links($profile, $page, $display);
+- $this->show_tags_dropdown($profile);
++ list($lst, $usr) = $this->fields();
+hunk ./lib/gallery.php 99
+- $this->show_gallery($profile, $page, $display, $tag);
+- common_show_footer();
+- }
++ $tags = $this->get_all_tags($profile, $lst, $usr);
+hunk ./lib/gallery.php 101
+- function no_such_user() {
+- $this->client_error(_('No such user.'));
- }
--
-- function writePidFile() {
-- $pidfilename = $this->pidFilename();
--
-- if (!$pidfilename) {
-- return false;
++ $content = array();
+hunk ./lib/gallery.php 103
+- function show_tags_dropdown($profile) {
+- $tag = $this->trimmed('tag');
+- list($lst, $usr) = $this->fields();
+- $tags = $this->get_all_tags($profile, $lst, $usr);
+- $content = array();
+- foreach ($tags as $t) {
+- $content[$t] = $t;
+- }
+- if ($tags) {
+- common_element_start('dl', array('id'=>'filter_tags'));
+- common_element('dt', null, _('Filter tags'));
+- common_element_start('dd');
+- common_element_start('ul');
+- common_element_start('li', array('id'=>'filter_tags_all', 'class'=>'child_1'));
+- common_element('a', array('href' => common_local_url($this->trimmed('action'),
+- array('nickname' => $profile->nickname))),
+- _('All'));
+- common_element_end('li');
+- common_element_start('li', array('id'=>'filter_tags_item'));
+- common_element_start('form', array('name' => 'bytag', 'id' => 'bytag', 'method' => 'post'));
+- common_dropdown('tag', _('Tag'), $content,
+- _('Choose a tag to narrow list'), FALSE, $tag);
+- common_submit('go', _('Go'));
+- common_element_end('form');
+- common_element_end('li');
+- common_element_end('ul');
+- common_element_end('dd');
+- common_element_end('dl');
- }
--
-- return file_put_contents($pidfilename, posix_getpid() . "\n");
- }
-+ if (!file_exists($pidfilename)) {
-+ return false;
++ foreach ($tags as $t) {
++ $content[$t] = $t;
+ }
-+ $contents = file_get_contents($pidfilename);
-+ if (posix_kill(trim($contents), 0)) {
-+ return true;
-+ } else {
-+ return false;
++ if ($tags) {
++ common_element_start('dl', array('id'=>'filter_tags'));
++ common_element('dt', null, _('Filter tags'));
++ common_element_start('dd');
++ common_element_start('ul');
++ common_element_start('li', array('id' => 'filter_tags_all',
++ 'class' => 'child_1'));
++ common_element('a',
++ array('href' =>
++ common_local_url($this->trimmed('action'),
++ array('nickname' =>
++ $profile->nickname))),
++ _('All'));
++ common_element_end('li');
++ common_element_start('li', array('id'=>'filter_tags_item'));
++ common_element_start('form', array('name' => 'bytag',
++ 'id' => 'bytag',
++ 'method' => 'post'));
++ common_dropdown('tag', _('Tag'), $content,
++ _('Choose a tag to narrow list'), false, $tag);
++ common_submit('go', _('Go'));
++ common_element_end('form');
++ common_element_end('li');
++ common_element_end('ul');
++ common_element_end('dd');
++ common_element_end('dl');
+ }
+ }
-hunk ./lib/daemon.php 64
-- function clearPidFile() {
-- $pidfilename = $this->pidFilename();
-- if (!$pidfilename) {
-- return false;
-- }
-- return unlink($pidfilename);
+hunk ./lib/gallery.php 135
+- function show_top($profile) {
+- common_element('div', 'instructions',
+- $this->get_instructions($profile));
++ function show_top($profile)
++ {
++ common_element('div', 'instructions',
++ $this->get_instructions($profile));
+hunk ./lib/gallery.php 140
- }
--
-- function pidFilename() {
-- $piddir = common_config('daemon', 'piddir');
-- if (!$piddir) {
-- return NULL;
-- }
-- $name = $this->name();
-- if (!$name) {
-- return NULL;
-- }
-- return $piddir . '/' . $name . '.pid';
++ }
+hunk ./lib/gallery.php 142
+- function show_menu() {
+- # action => array('prompt', 'title', $args)
+- $action = $this->trimmed('action');
+- $nickname = $this->trimmed('nickname');
+- $menu =
+- array('subscriptions' =>
+- array( _('Subscriptions'),
+- _('Subscriptions'),
+- array('nickname' => $nickname)),
+- 'subscribers' =>
+- array(
+- _('Subscribers'),
+- _('Subscribers'),
+- array('nickname' => $nickname)),
+- );
+- $this->nav_menu($menu);
- }
-+ function writePidFile()
++ function show_menu()
++ {
++ // action => array('prompt', 'title', $args)
++ $action = $this->trimmed('action');
++ $nickname = $this->trimmed('nickname');
+hunk ./lib/gallery.php 148
+- function show_gallery($profile, $page, $display='list', $tag=NULL) {
++ $menu =
++ array('subscriptions' =>
++ array( _('Subscriptions'),
++ _('Subscriptions'),
++ array('nickname' => $nickname)),
++ 'subscribers' =>
++ array(
++ _('Subscribers'),
++ _('Subscribers'),
++ array('nickname' => $nickname)),
++ );
++ $this->nav_menu($menu);
++ }
+hunk ./lib/gallery.php 162
+- $other = new Profile();
++ function show_gallery($profile, $page, $display='list', $tag=null)
+ {
-+ $pidfilename = $this->pidFilename();
-hunk ./lib/daemon.php 68
-- function changeUser() {
-+ if (!$pidfilename) {
-+ return false;
++ $other = new Profile();
+hunk ./lib/gallery.php 166
+- list($lst, $usr) = $this->fields();
++ list($lst, $usr) = $this->fields();
+hunk ./lib/gallery.php 168
+- $per_page = ($display == 'list') ? PROFILES_PER_PAGE : AVATARS_PER_PAGE;
++ $per_page = ($display == 'list') ? PROFILES_PER_PAGE : AVATARS_PER_PAGE;
+hunk ./lib/gallery.php 170
+- $offset = ($page-1)*$per_page;
+- $limit = $per_page + 1;
++ $offset = ($page-1)*$per_page;
++ $limit = $per_page + 1;
+hunk ./lib/gallery.php 173
+- if (common_config('db','type') == 'pgsql') {
+- $lim = ' LIMIT ' . $limit . ' OFFSET ' . $offset;
+- } else {
+- $lim = ' LIMIT ' . $offset . ', ' . $limit;
+- }
++ if (common_config('db', 'type') == 'pgsql') {
++ $lim = ' LIMIT ' . $limit . ' OFFSET ' . $offset;
++ } else {
++ $lim = ' LIMIT ' . $offset . ', ' . $limit;
+ }
-hunk ./lib/daemon.php 72
-- $username = common_config('daemon', 'user');
--
-- if ($username) {
-- $user_info = posix_getpwnam($username);
-- if (!$user_info) {
-- common_log(LOG_WARNING, 'Ignoring unknown user for daemon: ' . $username);
-- } else {
-- common_log(LOG_INFO, "Setting user to " . $username);
-- posix_setuid($user_info['uid']);
-- }
+hunk ./lib/gallery.php 179
+- # XXX: memcached results
+- # FIXME: SQL injection on $tag
++ // XXX: memcached results
++ // FIXME: SQL injection on $tag
+hunk ./lib/gallery.php 182
+- $other->query('SELECT profile.* ' .
+- 'FROM profile JOIN subscription ' .
+- 'ON profile.id = subscription.' . $lst . ' ' .
+- (($tag) ? 'JOIN profile_tag ON (profile.id = profile_tag.tagged AND subscription.'.$usr.'= profile_tag.tagger) ' : '') .
+- 'WHERE ' . $usr . ' = ' . $profile->id . ' ' .
+- 'AND subscriber != subscribed ' .
+- (($tag) ? 'AND profile_tag.tag= "' . $tag . '" ': '') .
+- 'ORDER BY subscription.created DESC, profile.id DESC ' .
+- $lim);
++ $other->query('SELECT profile.* ' .
++ 'FROM profile JOIN subscription ' .
++ 'ON profile.id = subscription.' . $lst . ' ' .
++ (($tag) ? 'JOIN profile_tag ON (profile.id = profile_tag.tagged AND subscription.'.$usr.'= profile_tag.tagger) ' : '') .
++ 'WHERE ' . $usr . ' = ' . $profile->id . ' ' .
++ 'AND subscriber != subscribed ' .
++ (($tag) ? 'AND profile_tag.tag= "' . $tag . '" ': '') .
++ 'ORDER BY subscription.created DESC, profile.id DESC ' .
++ $lim);
+hunk ./lib/gallery.php 192
+- if ($display == 'list') {
++ if ($display == 'list') {
+hunk ./lib/gallery.php 194
+- $profile_list = new $cls($other, $profile, $this->trimmed('action'));
+- $cnt = $profile_list->show_list();
+- } else {
+- $cnt = $this->icon_list($other);
- }
-+ return file_put_contents($pidfilename, posix_getpid() . "\n");
++ $profile_list = new $cls($other, $profile, $this->trimmed('action'));
++ $cnt = $profile_list->show_list();
++ } else {
++ $cnt = $this->icon_list($other);
++ }
+hunk ./lib/gallery.php 200
+- # For building the pagination URLs
++ // For building the pagination URLs
+hunk ./lib/gallery.php 202
+- $args = array('nickname' => $profile->nickname);
++ $args = array('nickname' => $profile->nickname);
+hunk ./lib/gallery.php 204
+- if ($display != 'list') {
+- $args['display'] = $display;
+- }
++ if ($display != 'list') {
++ $args['display'] = $display;
++ }
+hunk ./lib/gallery.php 208
+- common_pagination($page > 1,
+- $cnt > $per_page,
+- $page,
+- $this->trimmed('action'),
+- $args);
+- }
++ common_pagination($page > 1,
++ $cnt > $per_page,
++ $page,
++ $this->trimmed('action'),
++ $args);
+ }
-hunk ./lib/daemon.php 75
-- $groupname = common_config('daemon', 'group');
--
-- if ($groupname) {
-- $group_info = posix_getgrnam($groupname);
-- if (!$group_info) {
-- common_log(LOG_WARNING, 'Ignoring unknown group for daemon: ' . $groupname);
-- } else {
-- common_log(LOG_INFO, "Setting group to " . $groupname);
-- posix_setgid($group_info['gid']);
+hunk ./lib/gallery.php 215
+- function profile_list_class() {
++ function profile_list_class()
++ {
+hunk ./lib/gallery.php 220
+- function icon_list($other) {
++ function icon_list($other)
++ {
++ common_element_start('ul', $this->div_class());
+hunk ./lib/gallery.php 224
+- common_element_start('ul', $this->div_class());
++ $cnt = 0;
+hunk ./lib/gallery.php 226
+- $cnt = 0;
++ while ($other->fetch()) {
+hunk ./lib/gallery.php 228
+- while ($other->fetch()) {
++ $cnt++;
+hunk ./lib/gallery.php 230
+- $cnt++;
++ if ($cnt > AVATARS_PER_PAGE) {
++ break;
++ }
+hunk ./lib/gallery.php 234
+- if ($cnt > AVATARS_PER_PAGE) {
+- break;
- }
++ common_element_start('li');
+hunk ./lib/gallery.php 236
+- common_element_start('li');
++ common_element_start('a', array('title' => ($other->fullname) ?
++ $other->fullname :
++ $other->nickname,
++ 'href' => $other->profileurl,
++ 'class' => 'subscription'));
++ $avatar = $other->getAvatar(AVATAR_STREAM_SIZE);
++ common_element('img',
++ array('src' =>
++ (($avatar) ? common_avatar_display_url($avatar) :
++ common_default_avatar(AVATAR_STREAM_SIZE)),
++ 'width' => AVATAR_STREAM_SIZE,
++ 'height' => AVATAR_STREAM_SIZE,
++ 'class' => 'avatar stream',
++ 'alt' => ($other->fullname) ?
++ $other->fullname :
++ $other->nickname));
++ common_element_end('a');
+hunk ./lib/gallery.php 254
+- common_element_start('a', array('title' => ($other->fullname) ?
+- $other->fullname :
+- $other->nickname,
+- 'href' => $other->profileurl,
+- 'class' => 'subscription'));
+- $avatar = $other->getAvatar(AVATAR_STREAM_SIZE);
+- common_element('img',
+- array('src' =>
+- (($avatar) ? common_avatar_display_url($avatar) :
+- common_default_avatar(AVATAR_STREAM_SIZE)),
+- 'width' => AVATAR_STREAM_SIZE,
+- 'height' => AVATAR_STREAM_SIZE,
+- 'class' => 'avatar stream',
+- 'alt' => ($other->fullname) ?
+- $other->fullname :
+- $other->nickname));
+- common_element_end('a');
++ // XXX: subscribe form here
+hunk ./lib/gallery.php 256
+- # XXX: subscribe form here
++ common_element_end('li');
++ }
+hunk ./lib/gallery.php 259
+- common_element_end('li');
- }
++ common_element_end('ul');
+hunk ./lib/gallery.php 261
+- common_element_end('ul');
+-
+- return $cnt;
- }
--
-- function runOnce() {
-- if ($this->alreadyRunning()) {
-- common_log(LOG_INFO, $this->name() . ' already running. Exiting.');
-- exit(0);
-- }
-- if ($this->background()) {
-- $this->writePidFile();
-- $this->changeUser();
-- $this->run();
-- $this->clearPidFile();
-- }
++ return $cnt;
++ }
+hunk ./lib/gallery.php 264
+- function gallery_type() {
+- return NULL;
- }
--
-- function run() {
-- return true;
++ function gallery_type()
++ {
++ return null;
++ }
+hunk ./lib/gallery.php 269
+- function get_instructions(&$profile) {
+- return NULL;
- }
-+ function clearPidFile()
++ function get_instructions(&$profile)
+ {
-+ $pidfilename = $this->pidFilename();
-+ if (!$pidfilename) {
-+ return false;
-+ }
-+ return unlink($pidfilename);
++ return null;
+ }
-+
-+ function pidFilename()
+hunk ./lib/gallery.php 274
+- function fields() {
+- return NULL;
+- }
++ function fields()
+ {
-+ $piddir = common_config('daemon', 'piddir');
-+ if (!$piddir) {
-+ return null;
-+ }
-+ $name = $this->name();
-+ if (!$name) {
-+ return null;
-+ }
-+ return $piddir . '/' . $name . '.pid';
++ return null;
+ }
-+
-+ function changeUser()
+hunk ./lib/gallery.php 279
+- function div_class() {
+- return '';
+- }
++ function div_class()
+ {
-+ $username = common_config('daemon', 'user');
-+
-+ if ($username) {
-+ $user_info = posix_getpwnam($username);
-+ if (!$user_info) {
-+ common_log(LOG_WARNING,
-+ 'Ignoring unknown user for daemon: ' . $username);
-+ } else {
-+ common_log(LOG_INFO, "Setting user to " . $username);
-+ posix_setuid($user_info['uid']);
++ return '';
++ }
+hunk ./lib/gallery.php 284
+- function display_links($profile, $page, $display) {
+- $tag = $this->trimmed('tag');
++ function display_links($profile, $page, $display)
++ {
++ $tag = $this->trimmed('tag');
+hunk ./lib/gallery.php 288
+- common_element_start('dl', array('id'=>'subscriptions_nav'));
+- common_element('dt', null, _('Subscriptions navigation'));
+- common_element_start('dd');
+- common_element_start('ul', array('class'=>'nav'));
++ common_element_start('dl', array('id'=>'subscriptions_nav'));
++ common_element('dt', null, _('Subscriptions navigation'));
++ common_element_start('dd');
++ common_element_start('ul', array('class'=>'nav'));
+hunk ./lib/gallery.php 293
+- switch ($display) {
+- case 'list':
+- common_element('li', array('class'=>'child_1'), _('List'));
+- common_element_start('li');
+- $url_args = array('display' => 'icons',
+- 'nickname' => $profile->nickname,
+- 'page' => 1 + floor((($page - 1) * PROFILES_PER_PAGE) / AVATARS_PER_PAGE));
+- if ($tag) {
+- $url_args['tag'] = $tag;
+- }
+- $url = common_local_url($this->trimmed('action'), $url_args);
+- common_element('a', array('href' => $url),
+- _('Icons'));
+- common_element_end('li');
+- break;
+- default:
+- common_element_start('li', array('class'=>'child_1'));
+- $url_args = array('nickname' => $profile->nickname,
+- 'page' => 1 + floor((($page - 1) * AVATARS_PER_PAGE) / PROFILES_PER_PAGE));
+- if ($tag) {
+- $url_args['tag'] = $tag;
+- }
+- $url = common_local_url($this->trimmed('action'), $url_args);
+- common_element('a', array('href' => $url),
+- _('List'));
+- common_element_end('li');
+- common_element('li', NULL, _('Icons'));
+- break;
+- }
++ switch ($display) {
++ case 'list':
++ common_element('li', array('class'=>'child_1'), _('List'));
++ common_element_start('li');
++ $url_args = array('display' => 'icons',
++ 'nickname' => $profile->nickname,
++ 'page' => 1 + floor((($page - 1) * PROFILES_PER_PAGE) / AVATARS_PER_PAGE));
++ if ($tag) {
++ $url_args['tag'] = $tag;
+ }
-+ }
-+
-+ $groupname = common_config('daemon', 'group');
-+
-+ if ($groupname) {
-+ $group_info = posix_getgrnam($groupname);
-+ if (!$group_info) {
-+ common_log(LOG_WARNING,
-+ 'Ignoring unknown group for daemon: ' . $groupname);
-+ } else {
-+ common_log(LOG_INFO, "Setting group to " . $groupname);
-+ posix_setgid($group_info['gid']);
++ $url = common_local_url($this->trimmed('action'), $url_args);
++ common_element('a', array('href' => $url),
++ _('Icons'));
++ common_element_end('li');
++ break;
++ default:
++ common_element_start('li', array('class'=>'child_1'));
++ $url_args = array('nickname' => $profile->nickname,
++ 'page' => 1 + floor((($page - 1) * AVATARS_PER_PAGE) / PROFILES_PER_PAGE));
++ if ($tag) {
++ $url_args['tag'] = $tag;
+ }
++ $url = common_local_url($this->trimmed('action'), $url_args);
++ common_element('a', array('href' => $url),
++ _('List'));
++ common_element_end('li');
++ common_element('li', null, _('Icons'));
++ break;
+ }
+hunk ./lib/gallery.php 323
+- common_element_end('ul');
+- common_element_end('dd');
+- common_element_end('dl');
+- }
++ common_element_end('ul');
++ common_element_end('dd');
++ common_element_end('dl');
+ }
-+
-+ function runOnce()
+hunk ./lib/gallery.php 328
+- # Get list of tags we tagged other users with
++ // Get list of tags we tagged other users with
+hunk ./lib/gallery.php 330
+- function get_all_tags($profile, $lst, $usr) {
+- $profile_tag = new Notice_tag();
+- $profile_tag->query('SELECT DISTINCT(tag) ' .
+- 'FROM profile_tag, subscription ' .
+- 'WHERE tagger = ' . $profile->id . ' ' .
+- 'AND ' . $usr . ' = ' . $profile->id . ' ' .
+- 'AND ' . $lst . ' = tagged ' .
+- 'AND tagger != tagged');
+- $tags = array();
+- while ($profile_tag->fetch()) {
+- $tags[] = $profile_tag->tag;
+- }
+- $profile_tag->free();
+- return $tags;
+- }
++ function get_all_tags($profile, $lst, $usr)
+ {
-+ if ($this->alreadyRunning()) {
-+ common_log(LOG_INFO, $this->name() . ' already running. Exiting.');
-+ exit(0);
++ $profile_tag = new Notice_tag();
++ $profile_tag->query('SELECT DISTINCT(tag) ' .
++ 'FROM profile_tag, subscription ' .
++ 'WHERE tagger = ' . $profile->id . ' ' .
++ 'AND ' . $usr . ' = ' . $profile->id . ' ' .
++ 'AND ' . $lst . ' = tagged ' .
++ 'AND tagger != tagged');
++ $tags = array();
++ while ($profile_tag->fetch()) {
++ $tags[] = $profile_tag->tag;
+ }
-+ if ($this->background()) {
-+ $this->writePidFile();
-+ $this->changeUser();
-+ $this->run();
-+ $this->clearPidFile();
-+ }
-+ }
-+
-+ function run()
-+ {
-+ return true;
++ $profile_tag->free();
++ return $tags;
+ }