forked from GNUsocial/gnu-social
edbc0c665c
The PEAR coding standards decree: no tabs, but indent by four spaces. I've done a global search-and-replace on all tabs, replacing them by four spaces. This is a huge change, but it will go a long way to getting us towards phpcs-compliance. And that means better code readability, and that means more participation. darcs-hash:20081223191907-84dde-21e8efe210e6d5d54e935a22d0cee5c7bbfc007d.gz
28058 lines
1021 KiB
Plaintext
28058 lines
1021 KiB
Plaintext
hunk ./actions/accesstoken.php 25
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
- try {
|
|
- common_debug('getting request from env variables', __FILE__);
|
|
- common_remove_magic_from_request();
|
|
- $req = OAuthRequest::from_request();
|
|
- common_debug('getting a server', __FILE__);
|
|
- $server = omb_oauth_server();
|
|
- common_debug('fetching the access token', __FILE__);
|
|
- $token = $server->fetch_access_token($req);
|
|
- common_debug('got this token: "'.print_r($token,TRUE).'"', __FILE__);
|
|
- common_debug('printing the access token', __FILE__);
|
|
- print $token;
|
|
- } catch (OAuthException $e) {
|
|
- common_server_error($e->getMessage());
|
|
- }
|
|
- }
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
+ try {
|
|
+ common_debug('getting request from env variables', __FILE__);
|
|
+ common_remove_magic_from_request();
|
|
+ $req = OAuthRequest::from_request();
|
|
+ common_debug('getting a server', __FILE__);
|
|
+ $server = omb_oauth_server();
|
|
+ common_debug('fetching the access token', __FILE__);
|
|
+ $token = $server->fetch_access_token($req);
|
|
+ common_debug('got this token: "'.print_r($token,TRUE).'"', __FILE__);
|
|
+ common_debug('printing the access token', __FILE__);
|
|
+ print $token;
|
|
+ } catch (OAuthException $e) {
|
|
+ common_server_error($e->getMessage());
|
|
+ }
|
|
+ }
|
|
hunk ./actions/all.php 26
|
|
- function handle($args) {
|
|
+ function handle($args) {
|
|
hunk ./actions/all.php 28
|
|
- parent::handle($args);
|
|
+ parent::handle($args);
|
|
hunk ./actions/all.php 30
|
|
- $nickname = common_canonical_nickname($this->arg('nickname'));
|
|
- $user = User::staticGet('nickname', $nickname);
|
|
+ $nickname = common_canonical_nickname($this->arg('nickname'));
|
|
+ $user = User::staticGet('nickname', $nickname);
|
|
hunk ./actions/all.php 33
|
|
- if (!$user) {
|
|
- $this->client_error(_('No such user.'));
|
|
- return;
|
|
- }
|
|
+ if (!$user) {
|
|
+ $this->client_error(_('No such user.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/all.php 38
|
|
- $profile = $user->getProfile();
|
|
+ $profile = $user->getProfile();
|
|
hunk ./actions/all.php 40
|
|
- if (!$profile) {
|
|
- common_server_error(_('User has no profile.'));
|
|
- return;
|
|
- }
|
|
+ if (!$profile) {
|
|
+ common_server_error(_('User has no profile.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/all.php 45
|
|
- # Looks like we're good; show the header
|
|
+ # Looks like we're good; show the header
|
|
hunk ./actions/all.php 47
|
|
- common_show_header(sprintf(_("%s and friends"), $profile->nickname),
|
|
- array($this, 'show_header'), $user,
|
|
- array($this, 'show_top'));
|
|
+ common_show_header(sprintf(_("%s and friends"), $profile->nickname),
|
|
+ array($this, 'show_header'), $user,
|
|
+ array($this, 'show_top'));
|
|
hunk ./actions/all.php 51
|
|
- $this->show_notices($user);
|
|
+ $this->show_notices($user);
|
|
hunk ./actions/all.php 53
|
|
- common_show_footer();
|
|
- }
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/all.php 56
|
|
- function show_header($user) {
|
|
- common_element('link', array('rel' => 'alternate',
|
|
- 'href' => common_local_url('allrss', array('nickname' =>
|
|
- $user->nickname)),
|
|
- 'type' => 'application/rss+xml',
|
|
- 'title' => sprintf(_('Feed for friends of %s'), $user->nickname)));
|
|
- }
|
|
+ function show_header($user) {
|
|
+ common_element('link', array('rel' => 'alternate',
|
|
+ 'href' => common_local_url('allrss', array('nickname' =>
|
|
+ $user->nickname)),
|
|
+ 'type' => 'application/rss+xml',
|
|
+ 'title' => sprintf(_('Feed for friends of %s'), $user->nickname)));
|
|
+ }
|
|
hunk ./actions/all.php 64
|
|
- function show_top($user) {
|
|
- $cur = common_current_user();
|
|
+ function show_top($user) {
|
|
+ $cur = common_current_user();
|
|
hunk ./actions/all.php 67
|
|
- if ($cur && $cur->id == $user->id) {
|
|
- common_notice_form('all');
|
|
- }
|
|
+ if ($cur && $cur->id == $user->id) {
|
|
+ common_notice_form('all');
|
|
+ }
|
|
hunk ./actions/all.php 71
|
|
- $this->views_menu();
|
|
+ $this->views_menu();
|
|
hunk ./actions/all.php 73
|
|
- $this->show_feeds_list(array(0=>array('href'=>common_local_url('allrss', array('nickname' => $user->nickname)),
|
|
- 'type' => 'rss',
|
|
- 'version' => 'RSS 1.0',
|
|
- 'item' => 'allrss')));
|
|
- }
|
|
+ $this->show_feeds_list(array(0=>array('href'=>common_local_url('allrss', array('nickname' => $user->nickname)),
|
|
+ 'type' => 'rss',
|
|
+ 'version' => 'RSS 1.0',
|
|
+ 'item' => 'allrss')));
|
|
+ }
|
|
hunk ./actions/all.php 79
|
|
- function show_notices($user) {
|
|
+ function show_notices($user) {
|
|
hunk ./actions/all.php 81
|
|
- $page = $this->trimmed('page');
|
|
- if (!$page) {
|
|
- $page = 1;
|
|
- }
|
|
+ $page = $this->trimmed('page');
|
|
+ if (!$page) {
|
|
+ $page = 1;
|
|
+ }
|
|
hunk ./actions/all.php 86
|
|
- $notice = $user->noticesWithFriends(($page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1);
|
|
+ $notice = $user->noticesWithFriends(($page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1);
|
|
hunk ./actions/all.php 90
|
|
- common_pagination($page > 1, $cnt > NOTICES_PER_PAGE,
|
|
- $page, 'all', array('nickname' => $user->nickname));
|
|
- }
|
|
+ common_pagination($page > 1, $cnt > NOTICES_PER_PAGE,
|
|
+ $page, 'all', array('nickname' => $user->nickname));
|
|
+ }
|
|
hunk ./actions/allrss.php 28
|
|
- var $user = NULL;
|
|
+ var $user = NULL;
|
|
hunk ./actions/allrss.php 30
|
|
- function init() {
|
|
- $nickname = $this->trimmed('nickname');
|
|
- $this->user = User::staticGet('nickname', $nickname);
|
|
+ function init() {
|
|
+ $nickname = $this->trimmed('nickname');
|
|
+ $this->user = User::staticGet('nickname', $nickname);
|
|
hunk ./actions/allrss.php 34
|
|
- if (!$this->user) {
|
|
- common_user_error(_('No such user.'));
|
|
- return false;
|
|
- } else {
|
|
- return true;
|
|
- }
|
|
- }
|
|
+ if (!$this->user) {
|
|
+ common_user_error(_('No such user.'));
|
|
+ return false;
|
|
+ } else {
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/allrss.php 42
|
|
- function get_notices($limit=0) {
|
|
+ function get_notices($limit=0) {
|
|
hunk ./actions/allrss.php 44
|
|
- $user = $this->user;
|
|
-
|
|
- $notice = $user->noticesWithFriends(0, $limit);
|
|
-
|
|
- while ($notice->fetch()) {
|
|
- $notices[] = clone($notice);
|
|
- }
|
|
+ $user = $this->user;
|
|
+
|
|
+ $notice = $user->noticesWithFriends(0, $limit);
|
|
+
|
|
+ while ($notice->fetch()) {
|
|
+ $notices[] = clone($notice);
|
|
+ }
|
|
hunk ./actions/allrss.php 52
|
|
- return $notices;
|
|
- }
|
|
+ return $notices;
|
|
+ }
|
|
hunk ./actions/allrss.php 55
|
|
- function get_channel() {
|
|
- $user = $this->user;
|
|
- $c = array('url' => common_local_url('allrss',
|
|
- array('nickname' =>
|
|
- $user->nickname)),
|
|
- 'title' => sprintf(_('%s and friends'), $user->nickname),
|
|
- 'link' => common_local_url('all',
|
|
- array('nickname' =>
|
|
- $user->nickname)),
|
|
- 'description' => sprintf(_('Feed for friends of %s'), $user->nickname));
|
|
- return $c;
|
|
- }
|
|
+ function get_channel() {
|
|
+ $user = $this->user;
|
|
+ $c = array('url' => common_local_url('allrss',
|
|
+ array('nickname' =>
|
|
+ $user->nickname)),
|
|
+ 'title' => sprintf(_('%s and friends'), $user->nickname),
|
|
+ 'link' => common_local_url('all',
|
|
+ array('nickname' =>
|
|
+ $user->nickname)),
|
|
+ 'description' => sprintf(_('Feed for friends of %s'), $user->nickname));
|
|
+ return $c;
|
|
+ }
|
|
hunk ./actions/allrss.php 68
|
|
- function get_image() {
|
|
- $user = $this->user;
|
|
- $profile = $user->getProfile();
|
|
- if (!$profile) {
|
|
- return NULL;
|
|
- }
|
|
- $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE);
|
|
- return ($avatar) ? $avatar->url : NULL;
|
|
- }
|
|
+ function get_image() {
|
|
+ $user = $this->user;
|
|
+ $profile = $user->getProfile();
|
|
+ if (!$profile) {
|
|
+ return NULL;
|
|
+ }
|
|
+ $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE);
|
|
+ return ($avatar) ? $avatar->url : NULL;
|
|
+ }
|
|
hunk ./actions/api.php 13
|
|
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
hunk ./actions/api.php 17
|
|
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
hunk ./actions/api.php 24
|
|
- var $user;
|
|
- var $content_type;
|
|
- var $api_arg;
|
|
- var $api_method;
|
|
- var $api_action;
|
|
+ var $user;
|
|
+ var $content_type;
|
|
+ var $api_arg;
|
|
+ var $api_method;
|
|
+ var $api_action;
|
|
hunk ./actions/api.php 30
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/api.php 33
|
|
- $this->api_action = $this->arg('apiaction');
|
|
- $method = $this->arg('method');
|
|
- $argument = $this->arg('argument');
|
|
+ $this->api_action = $this->arg('apiaction');
|
|
+ $method = $this->arg('method');
|
|
+ $argument = $this->arg('argument');
|
|
hunk ./actions/api.php 37
|
|
- if (isset($argument)) {
|
|
- $cmdext = explode('.', $argument);
|
|
- $this->api_arg = $cmdext[0];
|
|
- $this->api_method = $method;
|
|
- $this->content_type = strtolower($cmdext[1]);
|
|
- } else {
|
|
+ if (isset($argument)) {
|
|
+ $cmdext = explode('.', $argument);
|
|
+ $this->api_arg = $cmdext[0];
|
|
+ $this->api_method = $method;
|
|
+ $this->content_type = strtolower($cmdext[1]);
|
|
+ } else {
|
|
hunk ./actions/api.php 44
|
|
- # Requested format / content-type will be an extension on the method
|
|
- $cmdext = explode('.', $method);
|
|
- $this->api_method = $cmdext[0];
|
|
- $this->content_type = strtolower($cmdext[1]);
|
|
- }
|
|
+ # Requested format / content-type will be an extension on the method
|
|
+ $cmdext = explode('.', $method);
|
|
+ $this->api_method = $cmdext[0];
|
|
+ $this->content_type = strtolower($cmdext[1]);
|
|
+ }
|
|
hunk ./actions/api.php 50
|
|
- if ($this->requires_auth()) {
|
|
- if (!isset($_SERVER['PHP_AUTH_USER'])) {
|
|
+ if ($this->requires_auth()) {
|
|
+ if (!isset($_SERVER['PHP_AUTH_USER'])) {
|
|
hunk ./actions/api.php 53
|
|
- # This header makes basic auth go
|
|
- header('WWW-Authenticate: Basic realm="Laconica API"');
|
|
+ # This header makes basic auth go
|
|
+ header('WWW-Authenticate: Basic realm="Laconica API"');
|
|
hunk ./actions/api.php 56
|
|
- # If the user hits cancel -- bam!
|
|
- $this->show_basic_auth_error();
|
|
- } else {
|
|
- $nickname = $_SERVER['PHP_AUTH_USER'];
|
|
- $password = $_SERVER['PHP_AUTH_PW'];
|
|
- $user = common_check_user($nickname, $password);
|
|
+ # If the user hits cancel -- bam!
|
|
+ $this->show_basic_auth_error();
|
|
+ } else {
|
|
+ $nickname = $_SERVER['PHP_AUTH_USER'];
|
|
+ $password = $_SERVER['PHP_AUTH_PW'];
|
|
+ $user = common_check_user($nickname, $password);
|
|
hunk ./actions/api.php 63
|
|
- if ($user) {
|
|
- $this->user = $user;
|
|
- $this->process_command();
|
|
- } else {
|
|
- # basic authentication failed
|
|
- $this->show_basic_auth_error();
|
|
- }
|
|
- }
|
|
- } else {
|
|
+ if ($user) {
|
|
+ $this->user = $user;
|
|
+ $this->process_command();
|
|
+ } else {
|
|
+ # basic authentication failed
|
|
+ $this->show_basic_auth_error();
|
|
+ }
|
|
+ }
|
|
+ } else {
|
|
hunk ./actions/api.php 73
|
|
- # Look for the user in the session
|
|
- if (common_logged_in()) {
|
|
- $this->user = common_current_user();
|
|
- }
|
|
+ # Look for the user in the session
|
|
+ if (common_logged_in()) {
|
|
+ $this->user = common_current_user();
|
|
+ }
|
|
hunk ./actions/api.php 78
|
|
- $this->process_command();
|
|
- }
|
|
- }
|
|
+ $this->process_command();
|
|
+ }
|
|
+ }
|
|
hunk ./actions/api.php 82
|
|
- function process_command() {
|
|
- $action = "twitapi$this->api_action";
|
|
- $actionfile = INSTALLDIR."/actions/$action.php";
|
|
+ function process_command() {
|
|
+ $action = "twitapi$this->api_action";
|
|
+ $actionfile = INSTALLDIR."/actions/$action.php";
|
|
hunk ./actions/api.php 86
|
|
- if (file_exists($actionfile)) {
|
|
- require_once($actionfile);
|
|
- $action_class = ucfirst($action)."Action";
|
|
- $action_obj = new $action_class();
|
|
+ if (file_exists($actionfile)) {
|
|
+ require_once($actionfile);
|
|
+ $action_class = ucfirst($action)."Action";
|
|
+ $action_obj = new $action_class();
|
|
hunk ./actions/api.php 95
|
|
- if (method_exists($action_obj, $this->api_method)) {
|
|
- $apidata = array( 'content-type' => $this->content_type,
|
|
- 'api_method' => $this->api_method,
|
|
- 'api_arg' => $this->api_arg,
|
|
- 'user' => $this->user);
|
|
+ if (method_exists($action_obj, $this->api_method)) {
|
|
+ $apidata = array( 'content-type' => $this->content_type,
|
|
+ 'api_method' => $this->api_method,
|
|
+ 'api_arg' => $this->api_arg,
|
|
+ 'user' => $this->user);
|
|
hunk ./actions/api.php 101
|
|
- call_user_func(array($action_obj, $this->api_method), $_REQUEST, $apidata);
|
|
- } else {
|
|
- common_user_error("API method not found!", $code=404);
|
|
- }
|
|
- } else {
|
|
- common_user_error("API method not found!", $code=404);
|
|
- }
|
|
- }
|
|
+ call_user_func(array($action_obj, $this->api_method), $_REQUEST, $apidata);
|
|
+ } else {
|
|
+ common_user_error("API method not found!", $code=404);
|
|
+ }
|
|
+ } else {
|
|
+ common_user_error("API method not found!", $code=404);
|
|
+ }
|
|
+ }
|
|
hunk ./actions/api.php 110
|
|
- # Whitelist of API methods that don't need authentication
|
|
- function requires_auth() {
|
|
- static $noauth = array( 'statuses/public_timeline',
|
|
- 'statuses/show',
|
|
- 'users/show',
|
|
- 'help/test',
|
|
- 'help/downtime_schedule');
|
|
+ # Whitelist of API methods that don't need authentication
|
|
+ function requires_auth() {
|
|
+ static $noauth = array( 'statuses/public_timeline',
|
|
+ 'statuses/show',
|
|
+ 'users/show',
|
|
+ 'help/test',
|
|
+ 'help/downtime_schedule');
|
|
hunk ./actions/api.php 118
|
|
- static $bareauth = array('statuses/user_timeline',
|
|
- 'statuses/friends',
|
|
- 'statuses/followers',
|
|
- 'favorites/favorites');
|
|
+ static $bareauth = array('statuses/user_timeline',
|
|
+ 'statuses/friends',
|
|
+ 'statuses/followers',
|
|
+ 'favorites/favorites');
|
|
hunk ./actions/api.php 129
|
|
- $fullname = "$this->api_action/$this->api_method";
|
|
+ $fullname = "$this->api_action/$this->api_method";
|
|
hunk ./actions/api.php 131
|
|
- if (in_array($fullname, $bareauth)) {
|
|
- # bareauth: only needs auth if without an argument
|
|
- if ($this->api_arg) {
|
|
- return false;
|
|
- } else {
|
|
- return true;
|
|
- }
|
|
- } else if (in_array($fullname, $noauth)) {
|
|
- # noauth: never needs auth
|
|
- return false;
|
|
- } else {
|
|
- # everybody else needs auth
|
|
- return true;
|
|
- }
|
|
- }
|
|
+ if (in_array($fullname, $bareauth)) {
|
|
+ # bareauth: only needs auth if without an argument
|
|
+ if ($this->api_arg) {
|
|
+ return false;
|
|
+ } else {
|
|
+ return true;
|
|
+ }
|
|
+ } else if (in_array($fullname, $noauth)) {
|
|
+ # noauth: never needs auth
|
|
+ return false;
|
|
+ } else {
|
|
+ # everybody else needs auth
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/api.php 147
|
|
- function show_basic_auth_error() {
|
|
- header('HTTP/1.1 401 Unauthorized');
|
|
- $msg = 'Could not authenticate you.';
|
|
+ function show_basic_auth_error() {
|
|
+ header('HTTP/1.1 401 Unauthorized');
|
|
+ $msg = 'Could not authenticate you.';
|
|
hunk ./actions/api.php 151
|
|
- if ($this->content_type == 'xml') {
|
|
- header('Content-Type: application/xml; charset=utf-8');
|
|
- common_start_xml();
|
|
- common_element_start('hash');
|
|
- common_element('error', NULL, $msg);
|
|
- common_element('request', NULL, $_SERVER['REQUEST_URI']);
|
|
- common_element_end('hash');
|
|
- common_end_xml();
|
|
- } else if ($this->content_type == 'json') {
|
|
- header('Content-Type: application/json; charset=utf-8');
|
|
- $error_array = array('error' => $msg, 'request' => $_SERVER['REQUEST_URI']);
|
|
- print(json_encode($error_array));
|
|
- } else {
|
|
- header('Content-type: text/plain');
|
|
- print "$msg\n";
|
|
- }
|
|
- }
|
|
+ if ($this->content_type == 'xml') {
|
|
+ header('Content-Type: application/xml; charset=utf-8');
|
|
+ common_start_xml();
|
|
+ common_element_start('hash');
|
|
+ common_element('error', NULL, $msg);
|
|
+ common_element('request', NULL, $_SERVER['REQUEST_URI']);
|
|
+ common_element_end('hash');
|
|
+ common_end_xml();
|
|
+ } else if ($this->content_type == 'json') {
|
|
+ header('Content-Type: application/json; charset=utf-8');
|
|
+ $error_array = array('error' => $msg, 'request' => $_SERVER['REQUEST_URI']);
|
|
+ print(json_encode($error_array));
|
|
+ } else {
|
|
+ header('Content-type: text/plain');
|
|
+ print "$msg\n";
|
|
+ }
|
|
+ }
|
|
hunk ./actions/api.php 169
|
|
- function is_readonly() {
|
|
- # NOTE: before handle(), can't use $this->arg
|
|
- $apiaction = $_REQUEST['apiaction'];
|
|
- $method = $_REQUEST['method'];
|
|
- list($cmdtext, $fmt) = explode('.', $method);
|
|
+ function is_readonly() {
|
|
+ # NOTE: before handle(), can't use $this->arg
|
|
+ $apiaction = $_REQUEST['apiaction'];
|
|
+ $method = $_REQUEST['method'];
|
|
+ list($cmdtext, $fmt) = explode('.', $method);
|
|
hunk ./actions/api.php 175
|
|
- static $write_methods = array(
|
|
- 'account' => array('update_location', 'update_delivery_device', 'end_session'),
|
|
- 'blocks' => array('create', 'destroy'),
|
|
- 'direct_messages' => array('create', 'destroy'),
|
|
- 'favorites' => array('create', 'destroy'),
|
|
- 'friendships' => array('create', 'destroy'),
|
|
- 'help' => array(),
|
|
- 'notifications' => array('follow', 'leave'),
|
|
- 'statuses' => array('update', 'destroy'),
|
|
- 'users' => array()
|
|
- );
|
|
+ static $write_methods = array(
|
|
+ 'account' => array('update_location', 'update_delivery_device', 'end_session'),
|
|
+ 'blocks' => array('create', 'destroy'),
|
|
+ 'direct_messages' => array('create', 'destroy'),
|
|
+ 'favorites' => array('create', 'destroy'),
|
|
+ 'friendships' => array('create', 'destroy'),
|
|
+ 'help' => array(),
|
|
+ 'notifications' => array('follow', 'leave'),
|
|
+ 'statuses' => array('update', 'destroy'),
|
|
+ 'users' => array()
|
|
+ );
|
|
hunk ./actions/api.php 187
|
|
- if (array_key_exists($apiaction, $write_methods)) {
|
|
- if (!in_array($cmdtext, $write_methods[$apiaction])) {
|
|
- return true;
|
|
- }
|
|
- }
|
|
+ if (array_key_exists($apiaction, $write_methods)) {
|
|
+ if (!in_array($cmdtext, $write_methods[$apiaction])) {
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/api.php 193
|
|
- return false;
|
|
- }
|
|
+ return false;
|
|
+ }
|
|
hunk ./actions/avatarbynickname.php 27
|
|
- $this->client_error(_('No nickname.'));
|
|
- return;
|
|
- }
|
|
- $size = $this->trimmed('size');
|
|
+ $this->client_error(_('No nickname.'));
|
|
+ return;
|
|
+ }
|
|
+ $size = $this->trimmed('size');
|
|
hunk ./actions/avatarbynickname.php 32
|
|
- $this->client_error(_('No size.'));
|
|
- return;
|
|
- }
|
|
- $size = strtolower($size);
|
|
- if (!in_array($size, array('original', '96', '48', '24'))) {
|
|
- $this->client_error(_('Invalid size.'));
|
|
- return;
|
|
- }
|
|
+ $this->client_error(_('No size.'));
|
|
+ return;
|
|
+ }
|
|
+ $size = strtolower($size);
|
|
+ if (!in_array($size, array('original', '96', '48', '24'))) {
|
|
+ $this->client_error(_('Invalid size.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/avatarbynickname.php 41
|
|
- $user = User::staticGet('nickname', $nickname);
|
|
- if (!$user) {
|
|
- $this->client_error(_('No such user.'));
|
|
- return;
|
|
- }
|
|
- $profile = $user->getProfile();
|
|
- if (!$profile) {
|
|
- $this->client_error(_('User has no profile.'));
|
|
- return;
|
|
- }
|
|
- if ($size == 'original') {
|
|
- $avatar = $profile->getOriginal();
|
|
- } else {
|
|
- $avatar = $profile->getAvatar($size+0);
|
|
- }
|
|
+ $user = User::staticGet('nickname', $nickname);
|
|
+ if (!$user) {
|
|
+ $this->client_error(_('No such user.'));
|
|
+ return;
|
|
+ }
|
|
+ $profile = $user->getProfile();
|
|
+ if (!$profile) {
|
|
+ $this->client_error(_('User has no profile.'));
|
|
+ return;
|
|
+ }
|
|
+ if ($size == 'original') {
|
|
+ $avatar = $profile->getOriginal();
|
|
+ } else {
|
|
+ $avatar = $profile->getAvatar($size+0);
|
|
+ }
|
|
hunk ./actions/avatarbynickname.php 57
|
|
- if ($avatar) {
|
|
- $url = $avatar->url;
|
|
- } else {
|
|
- if ($size == 'original') {
|
|
- $url = common_default_avatar(AVATAR_PROFILE_SIZE);
|
|
- } else {
|
|
- $url = common_default_avatar($size+0);
|
|
- }
|
|
- }
|
|
- common_redirect($url, 302);
|
|
- }
|
|
+ if ($avatar) {
|
|
+ $url = $avatar->url;
|
|
+ } else {
|
|
+ if ($size == 'original') {
|
|
+ $url = common_default_avatar(AVATAR_PROFILE_SIZE);
|
|
+ } else {
|
|
+ $url = common_default_avatar($size+0);
|
|
+ }
|
|
+ }
|
|
+ common_redirect($url, 302);
|
|
+ }
|
|
hunk ./actions/block.php 35
|
|
- $token = $this->trimmed('token');
|
|
+ $token = $this->trimmed('token');
|
|
hunk ./actions/block.php 37
|
|
- if (!$token || $token != common_session_token()) {
|
|
- $this->client_error(_('There was a problem with your session token. Try again, please.'));
|
|
- return;
|
|
- }
|
|
+ if (!$token || $token != common_session_token()) {
|
|
+ $this->client_error(_('There was a problem with your session token. Try again, please.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/block.php 78
|
|
- common_show_header(_('Block user'));
|
|
+ common_show_header(_('Block user'));
|
|
hunk ./actions/confirmaddress.php 46
|
|
- $type = $confirm->address_type;
|
|
- if (!in_array($type, array('email', 'jabber', 'sms'))) {
|
|
- $this->server_error(sprintf(_('Unrecognized address type %s'), $type));
|
|
- return;
|
|
- }
|
|
+ $type = $confirm->address_type;
|
|
+ if (!in_array($type, array('email', 'jabber', 'sms'))) {
|
|
+ $this->server_error(sprintf(_('Unrecognized address type %s'), $type));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/confirmaddress.php 53
|
|
- return;
|
|
- }
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/confirmaddress.php 60
|
|
- $cur->$type = $confirm->address;
|
|
+ $cur->$type = $confirm->address;
|
|
hunk ./actions/confirmaddress.php 62
|
|
- if ($type == 'sms') {
|
|
- $cur->carrier = ($confirm->address_extra)+0;
|
|
- $carrier = Sms_carrier::staticGet($cur->carrier);
|
|
- $cur->smsemail = $carrier->toEmailAddress($cur->sms);
|
|
- }
|
|
+ if ($type == 'sms') {
|
|
+ $cur->carrier = ($confirm->address_extra)+0;
|
|
+ $carrier = Sms_carrier::staticGet($cur->carrier);
|
|
+ $cur->smsemail = $carrier->toEmailAddress($cur->sms);
|
|
+ }
|
|
hunk ./actions/confirmaddress.php 68
|
|
- $result = $cur->updateKeys($orig_user);
|
|
+ $result = $cur->updateKeys($orig_user);
|
|
hunk ./actions/confirmaddress.php 71
|
|
- common_log_db_error($cur, 'UPDATE', __FILE__);
|
|
+ common_log_db_error($cur, 'UPDATE', __FILE__);
|
|
hunk ./actions/confirmaddress.php 76
|
|
- if ($type == 'email') {
|
|
- $cur->emailChanged();
|
|
- }
|
|
+ if ($type == 'email') {
|
|
+ $cur->emailChanged();
|
|
+ }
|
|
hunk ./actions/confirmaddress.php 83
|
|
- common_log_db_error($confirm, 'DELETE', __FILE__);
|
|
+ common_log_db_error($confirm, 'DELETE', __FILE__);
|
|
hunk ./actions/deletenotice.php 25
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
- # XXX: Ajax!
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
+ # XXX: Ajax!
|
|
hunk ./actions/deletenotice.php 29
|
|
- if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
|
- $this->delete_notice();
|
|
- } else if ($_SERVER['REQUEST_METHOD'] == 'GET') {
|
|
- $this->show_form();
|
|
- }
|
|
- }
|
|
+ if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
|
+ $this->delete_notice();
|
|
+ } else if ($_SERVER['REQUEST_METHOD'] == 'GET') {
|
|
+ $this->show_form();
|
|
+ }
|
|
+ }
|
|
hunk ./actions/deletenotice.php 36
|
|
- function get_instructions() {
|
|
- return _('You are about to permanently delete a notice. Once this is done, it cannot be undone.');
|
|
- }
|
|
+ function get_instructions() {
|
|
+ return _('You are about to permanently delete a notice. Once this is done, it cannot be undone.');
|
|
+ }
|
|
hunk ./actions/deletenotice.php 40
|
|
- function get_title() {
|
|
- return _('Delete notice');
|
|
- }
|
|
+ function get_title() {
|
|
+ return _('Delete notice');
|
|
+ }
|
|
hunk ./actions/deletenotice.php 44
|
|
- function show_form($error=NULL) {
|
|
- $user = common_current_user();
|
|
+ function show_form($error=NULL) {
|
|
+ $user = common_current_user();
|
|
hunk ./actions/deletenotice.php 47
|
|
- common_show_header($this->get_title(), array($this, 'show_header'), $error,
|
|
- array($this, 'show_top'));
|
|
- common_element_start('form', array('id' => 'notice_delete_form',
|
|
- 'method' => 'post',
|
|
- 'action' => common_local_url('deletenotice')));
|
|
- common_hidden('token', common_session_token());
|
|
- common_hidden('notice', $this->trimmed('notice'));
|
|
- common_element_start('p');
|
|
- common_element('span', array('id' => 'confirmation_text'), _('Are you sure you want to delete this notice?'));
|
|
+ common_show_header($this->get_title(), array($this, 'show_header'), $error,
|
|
+ array($this, 'show_top'));
|
|
+ common_element_start('form', array('id' => 'notice_delete_form',
|
|
+ 'method' => 'post',
|
|
+ 'action' => common_local_url('deletenotice')));
|
|
+ common_hidden('token', common_session_token());
|
|
+ common_hidden('notice', $this->trimmed('notice'));
|
|
+ common_element_start('p');
|
|
+ common_element('span', array('id' => 'confirmation_text'), _('Are you sure you want to delete this notice?'));
|
|
hunk ./actions/deletenotice.php 57
|
|
- common_element('input', array('id' => 'submit_no',
|
|
- 'name' => 'submit',
|
|
- 'type' => 'submit',
|
|
- 'value' => _('No')));
|
|
- common_element('input', array('id' => 'submit_yes',
|
|
- 'name' => 'submit',
|
|
- 'type' => 'submit',
|
|
- 'value' => _('Yes')));
|
|
- common_element_end('p');
|
|
- common_element_end('form');
|
|
- common_show_footer();
|
|
- }
|
|
+ common_element('input', array('id' => 'submit_no',
|
|
+ 'name' => 'submit',
|
|
+ 'type' => 'submit',
|
|
+ 'value' => _('No')));
|
|
+ common_element('input', array('id' => 'submit_yes',
|
|
+ 'name' => 'submit',
|
|
+ 'type' => 'submit',
|
|
+ 'value' => _('Yes')));
|
|
+ common_element_end('p');
|
|
+ common_element_end('form');
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/deletenotice.php 70
|
|
- function delete_notice() {
|
|
- # CSRF protection
|
|
- $token = $this->trimmed('token');
|
|
- if (!$token || $token != common_session_token()) {
|
|
- $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
- return;
|
|
- }
|
|
- $url = common_get_returnto();
|
|
- $confirmed = $this->trimmed('submit');
|
|
- if ($confirmed == _('Yes')) {
|
|
- $user = common_current_user();
|
|
- $notice_id = $this->trimmed('notice');
|
|
- $notice = Notice::staticGet($notice_id);
|
|
- $replies = new Reply;
|
|
- $replies->get('notice_id', $notice_id);
|
|
+ function delete_notice() {
|
|
+ # CSRF protection
|
|
+ $token = $this->trimmed('token');
|
|
+ if (!$token || $token != common_session_token()) {
|
|
+ $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
+ return;
|
|
+ }
|
|
+ $url = common_get_returnto();
|
|
+ $confirmed = $this->trimmed('submit');
|
|
+ if ($confirmed == _('Yes')) {
|
|
+ $user = common_current_user();
|
|
+ $notice_id = $this->trimmed('notice');
|
|
+ $notice = Notice::staticGet($notice_id);
|
|
+ $replies = new Reply;
|
|
+ $replies->get('notice_id', $notice_id);
|
|
hunk ./actions/deletenotice.php 86
|
|
- common_dequeue_notice($notice);
|
|
- if (common_config('memcached', 'enabled')) {
|
|
- $notice->blowSubsCache();
|
|
- }
|
|
- $replies->delete();
|
|
- $notice->delete();
|
|
- } else {
|
|
- if ($url) {
|
|
- common_set_returnto(NULL);
|
|
- } else {
|
|
- $url = common_local_url('public');
|
|
- }
|
|
- }
|
|
- common_redirect($url);
|
|
- }
|
|
+ common_dequeue_notice($notice);
|
|
+ if (common_config('memcached', 'enabled')) {
|
|
+ $notice->blowSubsCache();
|
|
+ }
|
|
+ $replies->delete();
|
|
+ $notice->delete();
|
|
+ } else {
|
|
+ if ($url) {
|
|
+ common_set_returnto(NULL);
|
|
+ } else {
|
|
+ $url = common_local_url('public');
|
|
+ }
|
|
+ }
|
|
+ common_redirect($url);
|
|
+ }
|
|
hunk ./actions/deleteprofile.php 35
|
|
- function get_instructions() {
|
|
- return _('Export and delete your user information.');
|
|
- }
|
|
+ function get_instructions() {
|
|
+ return _('Export and delete your user information.');
|
|
+ }
|
|
hunk ./actions/deleteprofile.php 39
|
|
- function form_header($title, $msg=NULL, $success=false) {
|
|
- common_show_header($title,
|
|
- NULL,
|
|
- array($msg, $success),
|
|
- array($this, 'show_top'));
|
|
- }
|
|
+ function form_header($title, $msg=NULL, $success=false) {
|
|
+ common_show_header($title,
|
|
+ NULL,
|
|
+ array($msg, $success),
|
|
+ array($this, 'show_top'));
|
|
+ }
|
|
hunk ./actions/deleteprofile.php 46
|
|
- function show_feeds_list($feeds) {
|
|
- common_element_start('div', array('class' => 'feedsdel'));
|
|
- common_element('p', null, 'Feeds:');
|
|
- common_element_start('ul', array('class' => 'xoxo'));
|
|
+ function show_feeds_list($feeds) {
|
|
+ common_element_start('div', array('class' => 'feedsdel'));
|
|
+ common_element('p', null, 'Feeds:');
|
|
+ common_element_start('ul', array('class' => 'xoxo'));
|
|
hunk ./actions/deleteprofile.php 51
|
|
- foreach ($feeds as $key => $value) {
|
|
- $this->common_feed_item($feeds[$key]);
|
|
- }
|
|
- common_element_end('ul');
|
|
- common_element_end('div');
|
|
- }
|
|
+ foreach ($feeds as $key => $value) {
|
|
+ $this->common_feed_item($feeds[$key]);
|
|
+ }
|
|
+ common_element_end('ul');
|
|
+ common_element_end('div');
|
|
+ }
|
|
hunk ./actions/deleteprofile.php 59
|
|
- function common_feed_item($feed) {
|
|
+ function common_feed_item($feed) {
|
|
hunk ./actions/deleteprofile.php 61
|
|
- $nickname = $user->nickname;
|
|
+ $nickname = $user->nickname;
|
|
hunk ./actions/deleteprofile.php 63
|
|
- switch($feed['item']) {
|
|
- case 'notices': default:
|
|
- $feed_classname = $feed['type'];
|
|
- $feed_mimetype = "application/".$feed['type']."+xml";
|
|
- $feed_title = "$nickname's ".$feed['version']." notice feed";
|
|
- $feed['textContent'] = "RSS";
|
|
- break;
|
|
+ switch($feed['item']) {
|
|
+ case 'notices': default:
|
|
+ $feed_classname = $feed['type'];
|
|
+ $feed_mimetype = "application/".$feed['type']."+xml";
|
|
+ $feed_title = "$nickname's ".$feed['version']." notice feed";
|
|
+ $feed['textContent'] = "RSS";
|
|
+ break;
|
|
hunk ./actions/deleteprofile.php 71
|
|
- case 'foaf':
|
|
- $feed_classname = "foaf";
|
|
- $feed_mimetype = "application/".$feed['type']."+xml";
|
|
- $feed_title = "$nickname's FOAF file";
|
|
- $feed['textContent'] = "FOAF";
|
|
- break;
|
|
- }
|
|
- common_element_start('li');
|
|
- common_element('a', array('href' => $feed['href'],
|
|
- 'class' => $feed_classname,
|
|
- 'type' => $feed_mimetype,
|
|
- 'title' => $feed_title),
|
|
- $feed['textContent']);
|
|
- common_element_end('li');
|
|
- }
|
|
+ case 'foaf':
|
|
+ $feed_classname = "foaf";
|
|
+ $feed_mimetype = "application/".$feed['type']."+xml";
|
|
+ $feed_title = "$nickname's FOAF file";
|
|
+ $feed['textContent'] = "FOAF";
|
|
+ break;
|
|
+ }
|
|
+ common_element_start('li');
|
|
+ common_element('a', array('href' => $feed['href'],
|
|
+ 'class' => $feed_classname,
|
|
+ 'type' => $feed_mimetype,
|
|
+ 'title' => $feed_title),
|
|
+ $feed['textContent']);
|
|
+ common_element_end('li');
|
|
+ }
|
|
hunk ./actions/deleteprofile.php 87
|
|
- function show_form($msg=NULL, $success=false) {
|
|
- $this->form_header(_('Delete my account'), $msg, $success);
|
|
- common_element('h2', NULL, _('Delete my account confirmation'));
|
|
- $this->show_confirm_delete_form();
|
|
- common_show_footer();
|
|
- }
|
|
+ function show_form($msg=NULL, $success=false) {
|
|
+ $this->form_header(_('Delete my account'), $msg, $success);
|
|
+ common_element('h2', NULL, _('Delete my account confirmation'));
|
|
+ $this->show_confirm_delete_form();
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/deleteprofile.php 94
|
|
- function show_confirm_delete_form() {
|
|
- $user = common_current_user();
|
|
+ function show_confirm_delete_form() {
|
|
+ $user = common_current_user();
|
|
hunk ./actions/deleteprofile.php 100
|
|
- common_element_start('form', array('method' => 'POST',
|
|
- 'id' => 'delete',
|
|
- 'action' =>
|
|
- common_local_url('deleteprofile')));
|
|
+ common_element_start('form', array('method' => 'POST',
|
|
+ 'id' => 'delete',
|
|
+ 'action' =>
|
|
+ common_local_url('deleteprofile')));
|
|
hunk ./actions/deleteprofile.php 105
|
|
- common_hidden('token', common_session_token());
|
|
+ common_hidden('token', common_session_token());
|
|
hunk ./actions/deleteprofile.php 108
|
|
- $this->show_feeds_list(array(0=>array('href'=>common_local_url('userrss', array('limit' => $notice_count, 'nickname' => $user->nickname)),
|
|
- 'type' => 'rss',
|
|
- 'version' => 'RSS 1.0',
|
|
- 'item' => 'notices'),
|
|
- 1=>array('href'=>common_local_url('foaf',array('nickname' => $user->nickname)),
|
|
- 'type' => 'rdf',
|
|
- 'version' => 'FOAF',
|
|
- 'item' => 'foaf')));
|
|
+ $this->show_feeds_list(array(0=>array('href'=>common_local_url('userrss', array('limit' => $notice_count, 'nickname' => $user->nickname)),
|
|
+ 'type' => 'rss',
|
|
+ 'version' => 'RSS 1.0',
|
|
+ 'item' => 'notices'),
|
|
+ 1=>array('href'=>common_local_url('foaf',array('nickname' => $user->nickname)),
|
|
+ 'type' => 'rdf',
|
|
+ 'version' => 'FOAF',
|
|
+ 'item' => 'foaf')));
|
|
hunk ./actions/deleteprofile.php 119
|
|
- common_submit('deleteaccount', _('Delete my account'));
|
|
- common_element_end('form');
|
|
+ common_submit('deleteaccount', _('Delete my account'));
|
|
+ common_element_end('form');
|
|
hunk ./actions/deleteprofile.php 123
|
|
- function handle_post() {
|
|
- # CSRF protection
|
|
- $token = $this->trimmed('token');
|
|
- if (!$token || $token != common_session_token()) {
|
|
- $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
- return;
|
|
- }
|
|
+ function handle_post() {
|
|
+ # CSRF protection
|
|
+ $token = $this->trimmed('token');
|
|
+ if (!$token || $token != common_session_token()) {
|
|
+ $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/deleteprofile.php 137
|
|
- function delete_account() {
|
|
- $user = common_current_user();
|
|
- assert(!is_null($user)); # should already be checked
|
|
+ function delete_account() {
|
|
+ $user = common_current_user();
|
|
+ assert(!is_null($user)); # should already be checked
|
|
hunk ./actions/deleteprofile.php 222
|
|
- function show_top($arr) {
|
|
- $msg = $arr[0];
|
|
- $success = $arr[1];
|
|
- if ($msg) {
|
|
- $this->message($msg, $success);
|
|
- } else {
|
|
- $inst = $this->get_instructions();
|
|
- $output = common_markup_to_html($inst);
|
|
- common_element_start('div', 'instructions');
|
|
- common_raw($output);
|
|
- common_element_end('div');
|
|
- }
|
|
- $this->settings_menu();
|
|
- }
|
|
+ function show_top($arr) {
|
|
+ $msg = $arr[0];
|
|
+ $success = $arr[1];
|
|
+ if ($msg) {
|
|
+ $this->message($msg, $success);
|
|
+ } else {
|
|
+ $inst = $this->get_instructions();
|
|
+ $output = common_markup_to_html($inst);
|
|
+ common_element_start('div', 'instructions');
|
|
+ common_raw($output);
|
|
+ common_element_end('div');
|
|
+ }
|
|
+ $this->settings_menu();
|
|
+ }
|
|
hunk ./actions/deleteprofile.php 239
|
|
- $menu =
|
|
- array('profilesettings' =>
|
|
- array(_('Profile'),
|
|
- _('Change your profile settings')),
|
|
- 'emailsettings' =>
|
|
- array(_('Email'),
|
|
- _('Change email handling')),
|
|
- 'openidsettings' =>
|
|
- array(_('OpenID'),
|
|
- _('Add or remove OpenIDs')),
|
|
- 'smssettings' =>
|
|
- array(_('SMS'),
|
|
- _('Updates by SMS')),
|
|
- 'imsettings' =>
|
|
- array(_('IM'),
|
|
- _('Updates by instant messenger (IM)')),
|
|
- 'twittersettings' =>
|
|
- array(_('Twitter'),
|
|
- _('Twitter integration options')),
|
|
- 'othersettings' =>
|
|
- array(_('Other'),
|
|
- _('Other options')));
|
|
+ $menu =
|
|
+ array('profilesettings' =>
|
|
+ array(_('Profile'),
|
|
+ _('Change your profile settings')),
|
|
+ 'emailsettings' =>
|
|
+ array(_('Email'),
|
|
+ _('Change email handling')),
|
|
+ 'openidsettings' =>
|
|
+ array(_('OpenID'),
|
|
+ _('Add or remove OpenIDs')),
|
|
+ 'smssettings' =>
|
|
+ array(_('SMS'),
|
|
+ _('Updates by SMS')),
|
|
+ 'imsettings' =>
|
|
+ array(_('IM'),
|
|
+ _('Updates by instant messenger (IM)')),
|
|
+ 'twittersettings' =>
|
|
+ array(_('Twitter'),
|
|
+ _('Twitter integration options')),
|
|
+ 'othersettings' =>
|
|
+ array(_('Other'),
|
|
+ _('Other options')));
|
|
hunk ./actions/deleteprofile.php 265
|
|
- if ($menuaction == 'imsettings' &&
|
|
- !common_config('xmpp', 'enabled')) {
|
|
- continue;
|
|
- }
|
|
+ if ($menuaction == 'imsettings' &&
|
|
+ !common_config('xmpp', 'enabled')) {
|
|
+ continue;
|
|
+ }
|
|
hunk ./actions/disfavor.php 24
|
|
- function handle($args) {
|
|
+ function handle($args) {
|
|
hunk ./actions/disfavor.php 26
|
|
- parent::handle($args);
|
|
+ parent::handle($args);
|
|
hunk ./actions/disfavor.php 28
|
|
- if (!common_logged_in()) {
|
|
- common_user_error(_('Not logged in.'));
|
|
- return;
|
|
- }
|
|
+ if (!common_logged_in()) {
|
|
+ common_user_error(_('Not logged in.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/disfavor.php 33
|
|
- $user = common_current_user();
|
|
+ $user = common_current_user();
|
|
hunk ./actions/disfavor.php 35
|
|
- if ($_SERVER['REQUEST_METHOD'] != 'POST') {
|
|
- common_redirect(common_local_url('showfavorites', array('nickname' => $user->nickname)));
|
|
- return;
|
|
- }
|
|
+ if ($_SERVER['REQUEST_METHOD'] != 'POST') {
|
|
+ common_redirect(common_local_url('showfavorites', array('nickname' => $user->nickname)));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/disfavor.php 40
|
|
- $id = $this->trimmed('notice');
|
|
+ $id = $this->trimmed('notice');
|
|
hunk ./actions/disfavor.php 42
|
|
- $notice = Notice::staticGet($id);
|
|
+ $notice = Notice::staticGet($id);
|
|
hunk ./actions/disfavor.php 44
|
|
- $token = $this->trimmed('token-'.$notice->id);
|
|
+ $token = $this->trimmed('token-'.$notice->id);
|
|
hunk ./actions/disfavor.php 46
|
|
- if (!$token || $token != common_session_token()) {
|
|
- $this->client_error(_("There was a problem with your session token. Try again, please."));
|
|
- return;
|
|
- }
|
|
+ if (!$token || $token != common_session_token()) {
|
|
+ $this->client_error(_("There was a problem with your session token. Try again, please."));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/disfavor.php 51
|
|
- $fave = new Fave();
|
|
- $fave->user_id = $this->id;
|
|
- $fave->notice_id = $notice->id;
|
|
- if (!$fave->find(true)) {
|
|
- $this->client_error(_('This notice is not a favorite!'));
|
|
- return;
|
|
- }
|
|
+ $fave = new Fave();
|
|
+ $fave->user_id = $this->id;
|
|
+ $fave->notice_id = $notice->id;
|
|
+ if (!$fave->find(true)) {
|
|
+ $this->client_error(_('This notice is not a favorite!'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/disfavor.php 59
|
|
- $result = $fave->delete();
|
|
+ $result = $fave->delete();
|
|
hunk ./actions/disfavor.php 61
|
|
- if (!$result) {
|
|
- common_log_db_error($fave, 'DELETE', __FILE__);
|
|
- $this->server_error(_('Could not delete favorite.'));
|
|
- return;
|
|
- }
|
|
-
|
|
- $user->blowFavesCache();
|
|
+ if (!$result) {
|
|
+ common_log_db_error($fave, 'DELETE', __FILE__);
|
|
+ $this->server_error(_('Could not delete favorite.'));
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ $user->blowFavesCache();
|
|
hunk ./actions/disfavor.php 69
|
|
- if ($this->boolean('ajax')) {
|
|
- common_start_html('text/xml;charset=utf-8', true);
|
|
- common_element_start('head');
|
|
- common_element('title', null, _('Add to favorites'));
|
|
- common_element_end('head');
|
|
- common_element_start('body');
|
|
- common_favor_form($notice);
|
|
- common_element_end('body');
|
|
- common_element_end('html');
|
|
- } else {
|
|
- common_redirect(common_local_url('showfavorites',
|
|
- array('nickname' => $user->nickname)));
|
|
- }
|
|
- }
|
|
+ if ($this->boolean('ajax')) {
|
|
+ common_start_html('text/xml;charset=utf-8', true);
|
|
+ common_element_start('head');
|
|
+ common_element('title', null, _('Add to favorites'));
|
|
+ common_element_end('head');
|
|
+ common_element_start('body');
|
|
+ common_favor_form($notice);
|
|
+ common_element_end('body');
|
|
+ common_element_end('html');
|
|
+ } else {
|
|
+ common_redirect(common_local_url('showfavorites',
|
|
+ array('nickname' => $user->nickname)));
|
|
+ }
|
|
+ }
|
|
hunk ./actions/doc.php 24
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
- $title = $this->trimmed('title');
|
|
- $filename = INSTALLDIR.'/doc/'.$title;
|
|
- if (!file_exists($filename)) {
|
|
- common_user_error(_('No such document.'));
|
|
- return;
|
|
- }
|
|
- $c = file_get_contents($filename);
|
|
- $output = common_markup_to_html($c);
|
|
- common_show_header(_(ucfirst($title)));
|
|
- common_raw($output);
|
|
- common_show_footer();
|
|
- }
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
+ $title = $this->trimmed('title');
|
|
+ $filename = INSTALLDIR.'/doc/'.$title;
|
|
+ if (!file_exists($filename)) {
|
|
+ common_user_error(_('No such document.'));
|
|
+ return;
|
|
+ }
|
|
+ $c = file_get_contents($filename);
|
|
+ $output = common_markup_to_html($c);
|
|
+ common_show_header(_(ucfirst($title)));
|
|
+ common_raw($output);
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/emailsettings.php 26
|
|
- function get_instructions() {
|
|
- return _('Manage how you get email from %%site.name%%.');
|
|
- }
|
|
+ function get_instructions() {
|
|
+ return _('Manage how you get email from %%site.name%%.');
|
|
+ }
|
|
hunk ./actions/emailsettings.php 30
|
|
- function show_form($msg=NULL, $success=false) {
|
|
- $user = common_current_user();
|
|
- $this->form_header(_('Email Settings'), $msg, $success);
|
|
- common_element_start('form', array('method' => 'post',
|
|
- 'id' => 'emailsettings',
|
|
- 'action' =>
|
|
- common_local_url('emailsettings')));
|
|
- common_hidden('token', common_session_token());
|
|
+ function show_form($msg=NULL, $success=false) {
|
|
+ $user = common_current_user();
|
|
+ $this->form_header(_('Email Settings'), $msg, $success);
|
|
+ common_element_start('form', array('method' => 'post',
|
|
+ 'id' => 'emailsettings',
|
|
+ 'action' =>
|
|
+ common_local_url('emailsettings')));
|
|
+ common_hidden('token', common_session_token());
|
|
hunk ./actions/emailsettings.php 39
|
|
- common_element('h2', NULL, _('Address'));
|
|
+ common_element('h2', NULL, _('Address'));
|
|
hunk ./actions/emailsettings.php 41
|
|
- if ($user->email) {
|
|
- common_element_start('p');
|
|
- common_element('span', 'address confirmed', $user->email);
|
|
- common_element('span', 'input_instructions',
|
|
- _('Current confirmed email address.'));
|
|
- common_hidden('email', $user->email);
|
|
- common_element_end('p');
|
|
- common_submit('remove', _('Remove'));
|
|
- } else {
|
|
- $confirm = $this->get_confirmation();
|
|
- if ($confirm) {
|
|
- common_element_start('p');
|
|
- common_element('span', 'address unconfirmed', $confirm->address);
|
|
- common_element('span', 'input_instructions',
|
|
- _('Awaiting confirmation on this address. Check your inbox (and spam box!) for a message with further instructions.'));
|
|
- common_hidden('email', $confirm->address);
|
|
- common_element_end('p');
|
|
- common_submit('cancel', _('Cancel'));
|
|
- } else {
|
|
- common_input('email', _('Email Address'),
|
|
- ($this->arg('email')) ? $this->arg('email') : NULL,
|
|
- _('Email address, like "UserName@example.org"'));
|
|
- common_submit('add', _('Add'));
|
|
- }
|
|
- }
|
|
+ if ($user->email) {
|
|
+ common_element_start('p');
|
|
+ common_element('span', 'address confirmed', $user->email);
|
|
+ common_element('span', 'input_instructions',
|
|
+ _('Current confirmed email address.'));
|
|
+ common_hidden('email', $user->email);
|
|
+ common_element_end('p');
|
|
+ common_submit('remove', _('Remove'));
|
|
+ } else {
|
|
+ $confirm = $this->get_confirmation();
|
|
+ if ($confirm) {
|
|
+ common_element_start('p');
|
|
+ common_element('span', 'address unconfirmed', $confirm->address);
|
|
+ common_element('span', 'input_instructions',
|
|
+ _('Awaiting confirmation on this address. Check your inbox (and spam box!) for a message with further instructions.'));
|
|
+ common_hidden('email', $confirm->address);
|
|
+ common_element_end('p');
|
|
+ common_submit('cancel', _('Cancel'));
|
|
+ } else {
|
|
+ common_input('email', _('Email Address'),
|
|
+ ($this->arg('email')) ? $this->arg('email') : NULL,
|
|
+ _('Email address, like "UserName@example.org"'));
|
|
+ common_submit('add', _('Add'));
|
|
+ }
|
|
+ }
|
|
hunk ./actions/emailsettings.php 67
|
|
- if ($user->email) {
|
|
- common_element('h2', NULL, _('Incoming email'));
|
|
-
|
|
- if ($user->incomingemail) {
|
|
- common_element_start('p');
|
|
- common_element('span', 'address', $user->incomingemail);
|
|
- common_element('span', 'input_instructions',
|
|
- _('Send email to this address to post new notices.'));
|
|
- common_element_end('p');
|
|
- common_submit('removeincoming', _('Remove'));
|
|
- }
|
|
-
|
|
- common_element_start('p');
|
|
- common_element('span', 'input_instructions',
|
|
- _('Make a new email address for posting to; cancels the old one.'));
|
|
- common_element_end('p');
|
|
- common_submit('newincoming', _('New'));
|
|
- }
|
|
-
|
|
- common_element('h2', NULL, _('Preferences'));
|
|
+ if ($user->email) {
|
|
+ common_element('h2', NULL, _('Incoming email'));
|
|
+
|
|
+ if ($user->incomingemail) {
|
|
+ common_element_start('p');
|
|
+ common_element('span', 'address', $user->incomingemail);
|
|
+ common_element('span', 'input_instructions',
|
|
+ _('Send email to this address to post new notices.'));
|
|
+ common_element_end('p');
|
|
+ common_submit('removeincoming', _('Remove'));
|
|
+ }
|
|
+
|
|
+ common_element_start('p');
|
|
+ common_element('span', 'input_instructions',
|
|
+ _('Make a new email address for posting to; cancels the old one.'));
|
|
+ common_element_end('p');
|
|
+ common_submit('newincoming', _('New'));
|
|
+ }
|
|
+
|
|
+ common_element('h2', NULL, _('Preferences'));
|
|
hunk ./actions/emailsettings.php 88
|
|
- common_checkbox('emailnotifysub',
|
|
- _('Send me notices of new subscriptions through email.'),
|
|
- $user->emailnotifysub);
|
|
- common_checkbox('emailnotifyfav',
|
|
- _('Send me email when someone adds my notice as a favorite.'),
|
|
- $user->emailnotifyfav);
|
|
- common_checkbox('emailnotifymsg',
|
|
- _('Send me email when someone sends me a private message.'),
|
|
- $user->emailnotifymsg);
|
|
- common_checkbox('emailnotifynudge',
|
|
- _('Allow friends to nudge me and send me an email.'),
|
|
- $user->emailnotifynudge);
|
|
- common_checkbox('emailpost',
|
|
- _('I want to post notices by email.'),
|
|
- $user->emailpost);
|
|
- common_checkbox('emailmicroid',
|
|
- _('Publish a MicroID for my email address.'),
|
|
- $user->emailmicroid);
|
|
+ common_checkbox('emailnotifysub',
|
|
+ _('Send me notices of new subscriptions through email.'),
|
|
+ $user->emailnotifysub);
|
|
+ common_checkbox('emailnotifyfav',
|
|
+ _('Send me email when someone adds my notice as a favorite.'),
|
|
+ $user->emailnotifyfav);
|
|
+ common_checkbox('emailnotifymsg',
|
|
+ _('Send me email when someone sends me a private message.'),
|
|
+ $user->emailnotifymsg);
|
|
+ common_checkbox('emailnotifynudge',
|
|
+ _('Allow friends to nudge me and send me an email.'),
|
|
+ $user->emailnotifynudge);
|
|
+ common_checkbox('emailpost',
|
|
+ _('I want to post notices by email.'),
|
|
+ $user->emailpost);
|
|
+ common_checkbox('emailmicroid',
|
|
+ _('Publish a MicroID for my email address.'),
|
|
+ $user->emailmicroid);
|
|
hunk ./actions/emailsettings.php 107
|
|
- common_submit('save', _('Save'));
|
|
-
|
|
- common_element_end('form');
|
|
- common_show_footer();
|
|
- }
|
|
+ common_submit('save', _('Save'));
|
|
+
|
|
+ common_element_end('form');
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/emailsettings.php 113
|
|
- function get_confirmation() {
|
|
- $user = common_current_user();
|
|
- $confirm = new Confirm_address();
|
|
- $confirm->user_id = $user->id;
|
|
- $confirm->address_type = 'email';
|
|
- if ($confirm->find(TRUE)) {
|
|
- return $confirm;
|
|
- } else {
|
|
- return NULL;
|
|
- }
|
|
- }
|
|
+ function get_confirmation() {
|
|
+ $user = common_current_user();
|
|
+ $confirm = new Confirm_address();
|
|
+ $confirm->user_id = $user->id;
|
|
+ $confirm->address_type = 'email';
|
|
+ if ($confirm->find(TRUE)) {
|
|
+ return $confirm;
|
|
+ } else {
|
|
+ return NULL;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/emailsettings.php 125
|
|
- function handle_post() {
|
|
+ function handle_post() {
|
|
hunk ./actions/emailsettings.php 127
|
|
- # CSRF protection
|
|
- $token = $this->trimmed('token');
|
|
- if (!$token || $token != common_session_token()) {
|
|
- $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
- return;
|
|
- }
|
|
+ # CSRF protection
|
|
+ $token = $this->trimmed('token');
|
|
+ if (!$token || $token != common_session_token()) {
|
|
+ $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/emailsettings.php 134
|
|
- if ($this->arg('save')) {
|
|
- $this->save_preferences();
|
|
- } else if ($this->arg('add')) {
|
|
- $this->add_address();
|
|
- } else if ($this->arg('cancel')) {
|
|
- $this->cancel_confirmation();
|
|
- } else if ($this->arg('remove')) {
|
|
- $this->remove_address();
|
|
- } else if ($this->arg('removeincoming')) {
|
|
- $this->remove_incoming();
|
|
- } else if ($this->arg('newincoming')) {
|
|
- $this->new_incoming();
|
|
- } else {
|
|
- $this->show_form(_('Unexpected form submission.'));
|
|
- }
|
|
- }
|
|
+ if ($this->arg('save')) {
|
|
+ $this->save_preferences();
|
|
+ } else if ($this->arg('add')) {
|
|
+ $this->add_address();
|
|
+ } else if ($this->arg('cancel')) {
|
|
+ $this->cancel_confirmation();
|
|
+ } else if ($this->arg('remove')) {
|
|
+ $this->remove_address();
|
|
+ } else if ($this->arg('removeincoming')) {
|
|
+ $this->remove_incoming();
|
|
+ } else if ($this->arg('newincoming')) {
|
|
+ $this->new_incoming();
|
|
+ } else {
|
|
+ $this->show_form(_('Unexpected form submission.'));
|
|
+ }
|
|
+ }
|
|
hunk ./actions/emailsettings.php 151
|
|
- function save_preferences() {
|
|
+ function save_preferences() {
|
|
hunk ./actions/emailsettings.php 153
|
|
- $emailnotifysub = $this->boolean('emailnotifysub');
|
|
- $emailnotifyfav = $this->boolean('emailnotifyfav');
|
|
- $emailnotifymsg = $this->boolean('emailnotifymsg');
|
|
- $emailnotifynudge = $this->boolean('emailnotifynudge');
|
|
- $emailmicroid = $this->boolean('emailmicroid');
|
|
- $emailpost = $this->boolean('emailpost');
|
|
+ $emailnotifysub = $this->boolean('emailnotifysub');
|
|
+ $emailnotifyfav = $this->boolean('emailnotifyfav');
|
|
+ $emailnotifymsg = $this->boolean('emailnotifymsg');
|
|
+ $emailnotifynudge = $this->boolean('emailnotifynudge');
|
|
+ $emailmicroid = $this->boolean('emailmicroid');
|
|
+ $emailpost = $this->boolean('emailpost');
|
|
hunk ./actions/emailsettings.php 160
|
|
- $user = common_current_user();
|
|
+ $user = common_current_user();
|
|
hunk ./actions/emailsettings.php 162
|
|
- assert(!is_null($user)); # should already be checked
|
|
+ assert(!is_null($user)); # should already be checked
|
|
hunk ./actions/emailsettings.php 164
|
|
- $user->query('BEGIN');
|
|
+ $user->query('BEGIN');
|
|
hunk ./actions/emailsettings.php 166
|
|
- $original = clone($user);
|
|
+ $original = clone($user);
|
|
hunk ./actions/emailsettings.php 168
|
|
- $user->emailnotifysub = $emailnotifysub;
|
|
- $user->emailnotifyfav = $emailnotifyfav;
|
|
- $user->emailnotifymsg = $emailnotifymsg;
|
|
- $user->emailnotifynudge = $emailnotifynudge;
|
|
- $user->emailmicroid = $emailmicroid;
|
|
- $user->emailpost = $emailpost;
|
|
+ $user->emailnotifysub = $emailnotifysub;
|
|
+ $user->emailnotifyfav = $emailnotifyfav;
|
|
+ $user->emailnotifymsg = $emailnotifymsg;
|
|
+ $user->emailnotifynudge = $emailnotifynudge;
|
|
+ $user->emailmicroid = $emailmicroid;
|
|
+ $user->emailpost = $emailpost;
|
|
hunk ./actions/emailsettings.php 175
|
|
- $result = $user->update($original);
|
|
+ $result = $user->update($original);
|
|
hunk ./actions/emailsettings.php 177
|
|
- if ($result === FALSE) {
|
|
- common_log_db_error($user, 'UPDATE', __FILE__);
|
|
- common_server_error(_('Couldn\'t update user.'));
|
|
- return;
|
|
- }
|
|
+ if ($result === FALSE) {
|
|
+ common_log_db_error($user, 'UPDATE', __FILE__);
|
|
+ common_server_error(_('Couldn\'t update user.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/emailsettings.php 183
|
|
- $user->query('COMMIT');
|
|
+ $user->query('COMMIT');
|
|
hunk ./actions/emailsettings.php 185
|
|
- $this->show_form(_('Preferences saved.'), true);
|
|
- }
|
|
+ $this->show_form(_('Preferences saved.'), true);
|
|
+ }
|
|
hunk ./actions/emailsettings.php 188
|
|
- function add_address() {
|
|
+ function add_address() {
|
|
hunk ./actions/emailsettings.php 190
|
|
- $user = common_current_user();
|
|
+ $user = common_current_user();
|
|
hunk ./actions/emailsettings.php 192
|
|
- $email = $this->trimmed('email');
|
|
+ $email = $this->trimmed('email');
|
|
hunk ./actions/emailsettings.php 194
|
|
- # Some validation
|
|
+ # Some validation
|
|
hunk ./actions/emailsettings.php 196
|
|
- if (!$email) {
|
|
- $this->show_form(_('No email address.'));
|
|
- return;
|
|
- }
|
|
+ if (!$email) {
|
|
+ $this->show_form(_('No email address.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/emailsettings.php 201
|
|
- $email = common_canonical_email($email);
|
|
+ $email = common_canonical_email($email);
|
|
hunk ./actions/emailsettings.php 203
|
|
- if (!$email) {
|
|
- $this->show_form(_('Cannot normalize that email address'));
|
|
- return;
|
|
- }
|
|
- if (!Validate::email($email, true)) {
|
|
- $this->show_form(_('Not a valid email address'));
|
|
- return;
|
|
- } else if ($user->email == $email) {
|
|
- $this->show_form(_('That is already your email address.'));
|
|
- return;
|
|
- } else if ($this->email_exists($email)) {
|
|
- $this->show_form(_('That email address already belongs to another user.'));
|
|
- return;
|
|
- }
|
|
+ if (!$email) {
|
|
+ $this->show_form(_('Cannot normalize that email address'));
|
|
+ return;
|
|
+ }
|
|
+ if (!Validate::email($email, true)) {
|
|
+ $this->show_form(_('Not a valid email address'));
|
|
+ return;
|
|
+ } else if ($user->email == $email) {
|
|
+ $this->show_form(_('That is already your email address.'));
|
|
+ return;
|
|
+ } else if ($this->email_exists($email)) {
|
|
+ $this->show_form(_('That email address already belongs to another user.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/emailsettings.php 218
|
|
- $confirm = new Confirm_address();
|
|
- $confirm->address = $email;
|
|
- $confirm->address_type = 'email';
|
|
- $confirm->user_id = $user->id;
|
|
- $confirm->code = common_confirmation_code(64);
|
|
+ $confirm = new Confirm_address();
|
|
+ $confirm->address = $email;
|
|
+ $confirm->address_type = 'email';
|
|
+ $confirm->user_id = $user->id;
|
|
+ $confirm->code = common_confirmation_code(64);
|
|
hunk ./actions/emailsettings.php 224
|
|
- $result = $confirm->insert();
|
|
+ $result = $confirm->insert();
|
|
hunk ./actions/emailsettings.php 226
|
|
- if ($result === FALSE) {
|
|
- common_log_db_error($confirm, 'INSERT', __FILE__);
|
|
- common_server_error(_('Couldn\'t insert confirmation code.'));
|
|
- return;
|
|
- }
|
|
+ if ($result === FALSE) {
|
|
+ common_log_db_error($confirm, 'INSERT', __FILE__);
|
|
+ common_server_error(_('Couldn\'t insert confirmation code.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/emailsettings.php 232
|
|
- mail_confirm_address($user, $confirm->code, $user->nickname, $email);
|
|
+ mail_confirm_address($user, $confirm->code, $user->nickname, $email);
|
|
hunk ./actions/emailsettings.php 234
|
|
- $msg = _('A confirmation code was sent to the email address you added. Check your inbox (and spam box!) for the code and instructions on how to use it.');
|
|
+ $msg = _('A confirmation code was sent to the email address you added. Check your inbox (and spam box!) for the code and instructions on how to use it.');
|
|
hunk ./actions/emailsettings.php 236
|
|
- $this->show_form($msg, TRUE);
|
|
- }
|
|
+ $this->show_form($msg, TRUE);
|
|
+ }
|
|
hunk ./actions/emailsettings.php 239
|
|
- function cancel_confirmation() {
|
|
- $email = $this->arg('email');
|
|
- $confirm = $this->get_confirmation();
|
|
- if (!$confirm) {
|
|
- $this->show_form(_('No pending confirmation to cancel.'));
|
|
- return;
|
|
- }
|
|
- if ($confirm->address != $email) {
|
|
- $this->show_form(_('That is the wrong IM address.'));
|
|
- return;
|
|
- }
|
|
+ function cancel_confirmation() {
|
|
+ $email = $this->arg('email');
|
|
+ $confirm = $this->get_confirmation();
|
|
+ if (!$confirm) {
|
|
+ $this->show_form(_('No pending confirmation to cancel.'));
|
|
+ return;
|
|
+ }
|
|
+ if ($confirm->address != $email) {
|
|
+ $this->show_form(_('That is the wrong IM address.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/emailsettings.php 254
|
|
- common_log_db_error($confirm, 'DELETE', __FILE__);
|
|
+ common_log_db_error($confirm, 'DELETE', __FILE__);
|
|
hunk ./actions/emailsettings.php 260
|
|
- }
|
|
+ }
|
|
hunk ./actions/emailsettings.php 262
|
|
- function remove_address() {
|
|
+ function remove_address() {
|
|
hunk ./actions/emailsettings.php 264
|
|
- $user = common_current_user();
|
|
- $email = $this->arg('email');
|
|
+ $user = common_current_user();
|
|
+ $email = $this->arg('email');
|
|
hunk ./actions/emailsettings.php 267
|
|
- # Maybe an old tab open...?
|
|
+ # Maybe an old tab open...?
|
|
hunk ./actions/emailsettings.php 269
|
|
- if ($user->email != $email) {
|
|
- $this->show_form(_('That is not your email address.'));
|
|
- return;
|
|
- }
|
|
+ if ($user->email != $email) {
|
|
+ $this->show_form(_('That is not your email address.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/emailsettings.php 274
|
|
- $user->query('BEGIN');
|
|
- $original = clone($user);
|
|
- $user->email = NULL;
|
|
- $result = $user->updateKeys($original);
|
|
- if (!$result) {
|
|
- common_log_db_error($user, 'UPDATE', __FILE__);
|
|
- common_server_error(_('Couldn\'t update user.'));
|
|
- return;
|
|
- }
|
|
- $user->query('COMMIT');
|
|
+ $user->query('BEGIN');
|
|
+ $original = clone($user);
|
|
+ $user->email = NULL;
|
|
+ $result = $user->updateKeys($original);
|
|
+ if (!$result) {
|
|
+ common_log_db_error($user, 'UPDATE', __FILE__);
|
|
+ common_server_error(_('Couldn\'t update user.'));
|
|
+ return;
|
|
+ }
|
|
+ $user->query('COMMIT');
|
|
hunk ./actions/emailsettings.php 285
|
|
- $this->show_form(_('The address was removed.'), TRUE);
|
|
- }
|
|
+ $this->show_form(_('The address was removed.'), TRUE);
|
|
+ }
|
|
hunk ./actions/emailsettings.php 288
|
|
- function remove_incoming() {
|
|
- $user = common_current_user();
|
|
-
|
|
- if (!$user->incomingemail) {
|
|
- $this->show_form(_('No incoming email address.'));
|
|
- return;
|
|
- }
|
|
-
|
|
- $orig = clone($user);
|
|
- $user->incomingemail = NULL;
|
|
+ function remove_incoming() {
|
|
+ $user = common_current_user();
|
|
+
|
|
+ if (!$user->incomingemail) {
|
|
+ $this->show_form(_('No incoming email address.'));
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ $orig = clone($user);
|
|
+ $user->incomingemail = NULL;
|
|
hunk ./actions/emailsettings.php 299
|
|
- if (!$user->updateKeys($orig)) {
|
|
- common_log_db_error($user, 'UPDATE', __FILE__);
|
|
- $this->server_error(_("Couldn't update user record."));
|
|
- }
|
|
-
|
|
- $this->show_form(_('Incoming email address removed.'), TRUE);
|
|
- }
|
|
+ if (!$user->updateKeys($orig)) {
|
|
+ common_log_db_error($user, 'UPDATE', __FILE__);
|
|
+ $this->server_error(_("Couldn't update user record."));
|
|
+ }
|
|
+
|
|
+ $this->show_form(_('Incoming email address removed.'), TRUE);
|
|
+ }
|
|
hunk ./actions/emailsettings.php 307
|
|
- function new_incoming() {
|
|
- $user = common_current_user();
|
|
-
|
|
- $orig = clone($user);
|
|
- $user->incomingemail = mail_new_incoming_address();
|
|
-
|
|
- if (!$user->updateKeys($orig)) {
|
|
- common_log_db_error($user, 'UPDATE', __FILE__);
|
|
- $this->server_error(_("Couldn't update user record."));
|
|
- }
|
|
+ function new_incoming() {
|
|
+ $user = common_current_user();
|
|
+
|
|
+ $orig = clone($user);
|
|
+ $user->incomingemail = mail_new_incoming_address();
|
|
+
|
|
+ if (!$user->updateKeys($orig)) {
|
|
+ common_log_db_error($user, 'UPDATE', __FILE__);
|
|
+ $this->server_error(_("Couldn't update user record."));
|
|
+ }
|
|
hunk ./actions/emailsettings.php 318
|
|
- $this->show_form(_('New incoming email address added.'), TRUE);
|
|
- }
|
|
-
|
|
- function email_exists($email) {
|
|
- $user = common_current_user();
|
|
- $other = User::staticGet('email', $email);
|
|
- if (!$other) {
|
|
- return false;
|
|
- } else {
|
|
- return $other->id != $user->id;
|
|
- }
|
|
- }
|
|
+ $this->show_form(_('New incoming email address added.'), TRUE);
|
|
+ }
|
|
+
|
|
+ function email_exists($email) {
|
|
+ $user = common_current_user();
|
|
+ $other = User::staticGet('email', $email);
|
|
+ if (!$other) {
|
|
+ return false;
|
|
+ } else {
|
|
+ return $other->id != $user->id;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/facebookhome.php 13
|
|
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
hunk ./actions/facebookhome.php 17
|
|
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
hunk ./actions/facebookhome.php 26
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/facebookhome.php 29
|
|
- $this->login();
|
|
- }
|
|
+ $this->login();
|
|
+ }
|
|
hunk ./actions/facebookhome.php 32
|
|
- function login() {
|
|
+ function login() {
|
|
hunk ./actions/facebookhome.php 34
|
|
- $user = null;
|
|
+ $user = null;
|
|
hunk ./actions/facebookhome.php 36
|
|
- $facebook = $this->get_facebook();
|
|
- $fbuid = $facebook->require_login();
|
|
+ $facebook = $this->get_facebook();
|
|
+ $fbuid = $facebook->require_login();
|
|
hunk ./actions/facebookhome.php 39
|
|
- # check to see whether there's already a Facebook link for this user
|
|
- $flink = Foreign_link::getByForeignID($fbuid, 2); // 2 == Facebook
|
|
+ # check to see whether there's already a Facebook link for this user
|
|
+ $flink = Foreign_link::getByForeignID($fbuid, 2); // 2 == Facebook
|
|
hunk ./actions/facebookhome.php 42
|
|
- if ($flink) {
|
|
+ if ($flink) {
|
|
hunk ./actions/facebookhome.php 44
|
|
- $user = $flink->getUser();
|
|
- $this->show_home($facebook, $fbuid, $user);
|
|
+ $user = $flink->getUser();
|
|
+ $this->show_home($facebook, $fbuid, $user);
|
|
hunk ./actions/facebookhome.php 47
|
|
- } else {
|
|
+ } else {
|
|
hunk ./actions/facebookhome.php 49
|
|
- # Make the user put in her Laconica creds
|
|
- $nickname = common_canonical_nickname($this->trimmed('nickname'));
|
|
- $password = $this->arg('password');
|
|
+ # Make the user put in her Laconica creds
|
|
+ $nickname = common_canonical_nickname($this->trimmed('nickname'));
|
|
+ $password = $this->arg('password');
|
|
hunk ./actions/facebookhome.php 53
|
|
- if ($nickname) {
|
|
+ if ($nickname) {
|
|
hunk ./actions/facebookhome.php 55
|
|
- if (common_check_user($nickname, $password)) {
|
|
+ if (common_check_user($nickname, $password)) {
|
|
hunk ./actions/facebookhome.php 58
|
|
- $user = User::staticGet('nickname', $nickname);
|
|
+ $user = User::staticGet('nickname', $nickname);
|
|
hunk ./actions/facebookhome.php 60
|
|
- if (!$user) {
|
|
- echo '<fb:error message="Coudln\'t get user!" />';
|
|
- $this->show_login_form();
|
|
- }
|
|
+ if (!$user) {
|
|
+ echo '<fb:error message="Coudln\'t get user!" />';
|
|
+ $this->show_login_form();
|
|
+ }
|
|
hunk ./actions/facebookhome.php 65
|
|
- $flink = DB_DataObject::factory('foreign_link');
|
|
- $flink->user_id = $user->id;
|
|
- $flink->foreign_id = $fbuid;
|
|
- $flink->service = 2; # Facebook
|
|
- $flink->created = common_sql_now();
|
|
+ $flink = DB_DataObject::factory('foreign_link');
|
|
+ $flink->user_id = $user->id;
|
|
+ $flink->foreign_id = $fbuid;
|
|
+ $flink->service = 2; # Facebook
|
|
+ $flink->created = common_sql_now();
|
|
hunk ./actions/facebookhome.php 71
|
|
- # $this->set_flags($flink, $noticesync, $replysync, $friendsync);
|
|
+ # $this->set_flags($flink, $noticesync, $replysync, $friendsync);
|
|
hunk ./actions/facebookhome.php 73
|
|
- $flink_id = $flink->insert();
|
|
+ $flink_id = $flink->insert();
|
|
hunk ./actions/facebookhome.php 75
|
|
- if ($flink_id) {
|
|
- echo '<fb:success message="You can now use the Identi.ca from Facebook!" />';
|
|
- }
|
|
+ if ($flink_id) {
|
|
+ echo '<fb:success message="You can now use the Identi.ca from Facebook!" />';
|
|
+ }
|
|
hunk ./actions/facebookhome.php 79
|
|
- $this->show_home($facebook, $fbuid, $user);
|
|
+ $this->show_home($facebook, $fbuid, $user);
|
|
hunk ./actions/facebookhome.php 81
|
|
- return;
|
|
- } else {
|
|
- echo '<fb:error message="Incorrect username or password." />';
|
|
- }
|
|
- }
|
|
+ return;
|
|
+ } else {
|
|
+ echo '<fb:error message="Incorrect username or password." />';
|
|
+ }
|
|
+ }
|
|
hunk ./actions/facebookhome.php 87
|
|
- $this->show_login_form();
|
|
- }
|
|
+ $this->show_login_form();
|
|
+ }
|
|
hunk ./actions/facebookhome.php 90
|
|
- }
|
|
+ }
|
|
hunk ./actions/facebookhome.php 92
|
|
- function show_home($facebook, $fbuid, $user) {
|
|
+ function show_home($facebook, $fbuid, $user) {
|
|
hunk ./actions/facebookhome.php 94
|
|
- $this->show_header('Home');
|
|
+ $this->show_header('Home');
|
|
hunk ./actions/facebookhome.php 96
|
|
- echo $this->show_notices($user);
|
|
- $this->update_profile_box($facebook, $fbuid, $user);
|
|
+ echo $this->show_notices($user);
|
|
+ $this->update_profile_box($facebook, $fbuid, $user);
|
|
hunk ./actions/facebookhome.php 99
|
|
- $this->show_footer();
|
|
- }
|
|
+ $this->show_footer();
|
|
+ }
|
|
hunk ./actions/facebookhome.php 102
|
|
- function show_notices($user) {
|
|
+ function show_notices($user) {
|
|
hunk ./actions/facebookhome.php 104
|
|
- $page = $this->trimmed('page');
|
|
- if (!$page) {
|
|
- $page = 1;
|
|
- }
|
|
+ $page = $this->trimmed('page');
|
|
+ if (!$page) {
|
|
+ $page = 1;
|
|
+ }
|
|
hunk ./actions/facebookhome.php 109
|
|
- $notice = $user->noticesWithFriends(($page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1);
|
|
+ $notice = $user->noticesWithFriends(($page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1);
|
|
hunk ./actions/facebookhome.php 111
|
|
- echo '<ul id="notices">';
|
|
+ echo '<ul id="notices">';
|
|
hunk ./actions/facebookhome.php 113
|
|
- $cnt = 0;
|
|
+ $cnt = 0;
|
|
hunk ./actions/facebookhome.php 115
|
|
- while ($notice->fetch() && $cnt <= NOTICES_PER_PAGE) {
|
|
- $cnt++;
|
|
+ while ($notice->fetch() && $cnt <= NOTICES_PER_PAGE) {
|
|
+ $cnt++;
|
|
hunk ./actions/facebookhome.php 118
|
|
- if ($cnt > NOTICES_PER_PAGE) {
|
|
- break;
|
|
- }
|
|
+ if ($cnt > NOTICES_PER_PAGE) {
|
|
+ break;
|
|
+ }
|
|
hunk ./actions/facebookhome.php 122
|
|
- echo $this->render_notice($notice);
|
|
- }
|
|
+ echo $this->render_notice($notice);
|
|
+ }
|
|
hunk ./actions/facebookhome.php 125
|
|
- echo '<ul>';
|
|
+ echo '<ul>';
|
|
hunk ./actions/facebookhome.php 127
|
|
- $this->pagination($page > 1, $cnt > NOTICES_PER_PAGE,
|
|
- $page, 'index.php', array('nickname' => $user->nickname));
|
|
+ $this->pagination($page > 1, $cnt > NOTICES_PER_PAGE,
|
|
+ $page, 'index.php', array('nickname' => $user->nickname));
|
|
hunk ./actions/facebookhome.php 130
|
|
- }
|
|
+ }
|
|
hunk ./actions/facebookinvite.php 13
|
|
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
hunk ./actions/facebookinvite.php 17
|
|
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
hunk ./actions/facebookinvite.php 26
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/facebookinvite.php 29
|
|
- $this->display();
|
|
- }
|
|
+ $this->display();
|
|
+ }
|
|
hunk ./actions/facebookinvite.php 32
|
|
- function display() {
|
|
+ function display() {
|
|
hunk ./actions/facebookinvite.php 34
|
|
- $facebook = $this->get_facebook();
|
|
+ $facebook = $this->get_facebook();
|
|
hunk ./actions/facebookinvite.php 36
|
|
- $fbuid = $facebook->require_login();
|
|
+ $fbuid = $facebook->require_login();
|
|
hunk ./actions/facebookinvite.php 38
|
|
- $this->show_header('Invite');
|
|
+ $this->show_header('Invite');
|
|
hunk ./actions/facebookinvite.php 40
|
|
- echo '<h2>Coming soon...</h2>';
|
|
+ echo '<h2>Coming soon...</h2>';
|
|
hunk ./actions/facebookinvite.php 42
|
|
- $this->show_footer();
|
|
+ $this->show_footer();
|
|
hunk ./actions/facebookinvite.php 44
|
|
- }
|
|
+ }
|
|
hunk ./actions/facebookremove.php 13
|
|
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
hunk ./actions/facebookremove.php 17
|
|
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
hunk ./actions/facebookremove.php 26
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/facebookremove.php 29
|
|
- $secret = common_config('facebook', 'secret');
|
|
+ $secret = common_config('facebook', 'secret');
|
|
hunk ./actions/facebookremove.php 31
|
|
- $sig = '';
|
|
+ $sig = '';
|
|
hunk ./actions/facebookremove.php 33
|
|
- ksort($_POST);
|
|
+ ksort($_POST);
|
|
hunk ./actions/facebookremove.php 35
|
|
- foreach ($_POST as $key => $val) {
|
|
- if (substr($key, 0, 7) == 'fb_sig_') {
|
|
- $sig .= substr($key, 7) . '=' . $val;
|
|
- }
|
|
- }
|
|
+ foreach ($_POST as $key => $val) {
|
|
+ if (substr($key, 0, 7) == 'fb_sig_') {
|
|
+ $sig .= substr($key, 7) . '=' . $val;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/facebookremove.php 41
|
|
- $sig .= $secret;
|
|
- $verify = md5($sig);
|
|
+ $sig .= $secret;
|
|
+ $verify = md5($sig);
|
|
hunk ./actions/facebookremove.php 44
|
|
- if ($verify == $this->arg('fb_sig')) {
|
|
+ if ($verify == $this->arg('fb_sig')) {
|
|
hunk ./actions/facebookremove.php 46
|
|
- $flink = Foreign_link::getByForeignID($this->arg('fb_sig_user'), 2);
|
|
+ $flink = Foreign_link::getByForeignID($this->arg('fb_sig_user'), 2);
|
|
hunk ./actions/facebookremove.php 48
|
|
- common_debug("Removing foreign link to Facebook - local user ID: $flink->user_id, Facebook ID: $flink->foreign_id");
|
|
+ common_debug("Removing foreign link to Facebook - local user ID: $flink->user_id, Facebook ID: $flink->foreign_id");
|
|
hunk ./actions/facebookremove.php 50
|
|
- $result = $flink->delete();
|
|
+ $result = $flink->delete();
|
|
hunk ./actions/facebookremove.php 52
|
|
- if (!$result) {
|
|
- common_log_db_error($flink, 'DELETE', __FILE__);
|
|
- common_server_error(_('Couldn\'t remove Facebook user.'));
|
|
- return;
|
|
- }
|
|
+ if (!$result) {
|
|
+ common_log_db_error($flink, 'DELETE', __FILE__);
|
|
+ common_server_error(_('Couldn\'t remove Facebook user.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/facebookremove.php 58
|
|
- } else {
|
|
- # Someone bad tried to remove facebook link?
|
|
- common_log(LOG_ERR, "Someone from $_SERVER[REMOTE_ADDR] " .
|
|
- 'unsuccessfully tried to remove a foreign link to Facebook!');
|
|
- }
|
|
- }
|
|
+ } else {
|
|
+ # Someone bad tried to remove facebook link?
|
|
+ common_log(LOG_ERR, "Someone from $_SERVER[REMOTE_ADDR] " .
|
|
+ 'unsuccessfully tried to remove a foreign link to Facebook!');
|
|
+ }
|
|
+ }
|
|
hunk ./actions/facebooksettings.php 13
|
|
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
hunk ./actions/facebooksettings.php 17
|
|
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
hunk ./actions/facebooksettings.php 26
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/facebooksettings.php 29
|
|
- $this->display();
|
|
- }
|
|
+ $this->display();
|
|
+ }
|
|
hunk ./actions/facebooksettings.php 32
|
|
- function display() {
|
|
+ function display() {
|
|
hunk ./actions/facebooksettings.php 34
|
|
- $facebook = $this->get_facebook();
|
|
+ $facebook = $this->get_facebook();
|
|
hunk ./actions/facebooksettings.php 36
|
|
- $fbuid = $facebook->require_login();
|
|
+ $fbuid = $facebook->require_login();
|
|
hunk ./actions/facebooksettings.php 38
|
|
- $fbml = '<fb:if-section-not-added section="profile">'
|
|
- .'<h2>Add an Identi.ca box to your profile!</h2>'
|
|
- .'<fb:add-section-button section="profile"/>'
|
|
- .'</fb:if-section-not-added>';
|
|
+ $fbml = '<fb:if-section-not-added section="profile">'
|
|
+ .'<h2>Add an Identi.ca box to your profile!</h2>'
|
|
+ .'<fb:add-section-button section="profile"/>'
|
|
+ .'</fb:if-section-not-added>';
|
|
hunk ./actions/facebooksettings.php 44
|
|
- $this->show_header('Settings');
|
|
+ $this->show_header('Settings');
|
|
hunk ./actions/facebooksettings.php 46
|
|
- echo $fbml;
|
|
+ echo $fbml;
|
|
hunk ./actions/facebooksettings.php 48
|
|
- $this->show_footer();
|
|
+ $this->show_footer();
|
|
hunk ./actions/facebooksettings.php 50
|
|
- }
|
|
+ }
|
|
hunk ./actions/favor.php 26
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/favor.php 29
|
|
- if (!common_logged_in()) {
|
|
- common_user_error(_('Not logged in.'));
|
|
- return;
|
|
- }
|
|
+ if (!common_logged_in()) {
|
|
+ common_user_error(_('Not logged in.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/favor.php 34
|
|
- $user = common_current_user();
|
|
+ $user = common_current_user();
|
|
hunk ./actions/favor.php 36
|
|
- if ($_SERVER['REQUEST_METHOD'] != 'POST') {
|
|
- common_redirect(common_local_url('showfavorites', array('nickname' => $user->nickname)));
|
|
- return;
|
|
- }
|
|
+ if ($_SERVER['REQUEST_METHOD'] != 'POST') {
|
|
+ common_redirect(common_local_url('showfavorites', array('nickname' => $user->nickname)));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/favor.php 41
|
|
- $id = $this->trimmed('notice');
|
|
+ $id = $this->trimmed('notice');
|
|
hunk ./actions/favor.php 43
|
|
- $notice = Notice::staticGet($id);
|
|
+ $notice = Notice::staticGet($id);
|
|
hunk ./actions/favor.php 45
|
|
- # CSRF protection
|
|
+ # CSRF protection
|
|
hunk ./actions/favor.php 47
|
|
- $token = $this->trimmed('token-'.$notice->id);
|
|
- if (!$token || $token != common_session_token()) {
|
|
- $this->client_error(_("There was a problem with your session token. Try again, please."));
|
|
- return;
|
|
- }
|
|
+ $token = $this->trimmed('token-'.$notice->id);
|
|
+ if (!$token || $token != common_session_token()) {
|
|
+ $this->client_error(_("There was a problem with your session token. Try again, please."));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/favor.php 53
|
|
- if ($user->hasFave($notice)) {
|
|
- $this->client_error(_('This notice is already a favorite!'));
|
|
- return;
|
|
- }
|
|
+ if ($user->hasFave($notice)) {
|
|
+ $this->client_error(_('This notice is already a favorite!'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/favor.php 58
|
|
- $fave = Fave::addNew($user, $notice);
|
|
+ $fave = Fave::addNew($user, $notice);
|
|
hunk ./actions/favor.php 60
|
|
- if (!$fave) {
|
|
- $this->server_error(_('Could not create favorite.'));
|
|
- return;
|
|
- }
|
|
+ if (!$fave) {
|
|
+ $this->server_error(_('Could not create favorite.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/favor.php 65
|
|
- $this->notify($fave, $notice, $user);
|
|
- $user->blowFavesCache();
|
|
-
|
|
- if ($this->boolean('ajax')) {
|
|
- common_start_html('text/xml;charset=utf-8', true);
|
|
- common_element_start('head');
|
|
- common_element('title', null, _('Disfavor favorite'));
|
|
- common_element_end('head');
|
|
- common_element_start('body');
|
|
- common_disfavor_form($notice);
|
|
- common_element_end('body');
|
|
- common_element_end('html');
|
|
- } else {
|
|
- common_redirect(common_local_url('showfavorites',
|
|
- array('nickname' => $user->nickname)));
|
|
- }
|
|
- }
|
|
+ $this->notify($fave, $notice, $user);
|
|
+ $user->blowFavesCache();
|
|
+
|
|
+ if ($this->boolean('ajax')) {
|
|
+ common_start_html('text/xml;charset=utf-8', true);
|
|
+ common_element_start('head');
|
|
+ common_element('title', null, _('Disfavor favorite'));
|
|
+ common_element_end('head');
|
|
+ common_element_start('body');
|
|
+ common_disfavor_form($notice);
|
|
+ common_element_end('body');
|
|
+ common_element_end('html');
|
|
+ } else {
|
|
+ common_redirect(common_local_url('showfavorites',
|
|
+ array('nickname' => $user->nickname)));
|
|
+ }
|
|
+ }
|
|
hunk ./actions/favor.php 83
|
|
- function notify($fave, $notice, $user) {
|
|
- $other = User::staticGet('id', $notice->profile_id);
|
|
- if ($other && $other->id != $user->id) {
|
|
- if ($other->email && $other->emailnotifyfav) {
|
|
- mail_notify_fave($other, $user, $notice);
|
|
- }
|
|
- # XXX: notify by IM
|
|
- # XXX: notify by SMS
|
|
- }
|
|
- }
|
|
+ function notify($fave, $notice, $user) {
|
|
+ $other = User::staticGet('id', $notice->profile_id);
|
|
+ if ($other && $other->id != $user->id) {
|
|
+ if ($other->email && $other->emailnotifyfav) {
|
|
+ mail_notify_fave($other, $user, $notice);
|
|
+ }
|
|
+ # XXX: notify by IM
|
|
+ # XXX: notify by SMS
|
|
+ }
|
|
+ }
|
|
hunk ./actions/favorited.php 13
|
|
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
hunk ./actions/favorited.php 17
|
|
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
hunk ./actions/favorited.php 26
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/favorited.php 29
|
|
- $page = ($this->arg('page')) ? ($this->arg('page')+0) : 1;
|
|
+ $page = ($this->arg('page')) ? ($this->arg('page')+0) : 1;
|
|
hunk ./actions/favorited.php 31
|
|
- common_show_header(_('Popular notices'),
|
|
- array($this, 'show_header'), NULL,
|
|
- array($this, 'show_top'));
|
|
+ common_show_header(_('Popular notices'),
|
|
+ array($this, 'show_header'), NULL,
|
|
+ array($this, 'show_top'));
|
|
hunk ./actions/favorited.php 35
|
|
- $this->show_notices($page);
|
|
+ $this->show_notices($page);
|
|
hunk ./actions/favorited.php 37
|
|
- common_show_footer();
|
|
- }
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/favorited.php 40
|
|
- function show_top() {
|
|
- $instr = $this->get_instructions();
|
|
- $output = common_markup_to_html($instr);
|
|
- common_element_start('div', 'instructions');
|
|
- common_raw($output);
|
|
- common_element_end('div');
|
|
- $this->public_views_menu();
|
|
- }
|
|
+ function show_top() {
|
|
+ $instr = $this->get_instructions();
|
|
+ $output = common_markup_to_html($instr);
|
|
+ common_element_start('div', 'instructions');
|
|
+ common_raw($output);
|
|
+ common_element_end('div');
|
|
+ $this->public_views_menu();
|
|
+ }
|
|
hunk ./actions/favorited.php 49
|
|
- function show_header() {
|
|
+ function show_header() {
|
|
hunk ./actions/favorited.php 51
|
|
- }
|
|
+ }
|
|
hunk ./actions/favorited.php 53
|
|
- function get_instructions() {
|
|
- return _('Showing recently popular notices');
|
|
- }
|
|
+ function get_instructions() {
|
|
+ return _('Showing recently popular notices');
|
|
+ }
|
|
hunk ./actions/favorited.php 57
|
|
- function show_notices($page) {
|
|
+ function show_notices($page) {
|
|
hunk ./actions/favorited.php 59
|
|
- $qry = 'SELECT notice.*, sum(exp(-(now() - fave.modified) / %s)) as weight ' .
|
|
- 'FROM notice JOIN fave ON notice.id = fave.notice_id ' .
|
|
- 'GROUP BY fave.notice_id ' .
|
|
- 'ORDER BY weight DESC';
|
|
+ $qry = 'SELECT notice.*, sum(exp(-(now() - fave.modified) / %s)) as weight ' .
|
|
+ 'FROM notice JOIN fave ON notice.id = fave.notice_id ' .
|
|
+ 'GROUP BY fave.notice_id ' .
|
|
+ 'ORDER BY weight DESC';
|
|
hunk ./actions/favorited.php 64
|
|
- $offset = ($page - 1) * NOTICES_PER_PAGE;
|
|
- $limit = NOTICES_PER_PAGE + 1;
|
|
+ $offset = ($page - 1) * NOTICES_PER_PAGE;
|
|
+ $limit = NOTICES_PER_PAGE + 1;
|
|
hunk ./actions/favorited.php 67
|
|
- if (common_config('db','type') == 'pgsql') {
|
|
- $qry .= ' LIMIT ' . $limit . ' OFFSET ' . $offset;
|
|
- } else {
|
|
- $qry .= ' LIMIT ' . $offset . ', ' . $limit;
|
|
- }
|
|
+ if (common_config('db','type') == 'pgsql') {
|
|
+ $qry .= ' LIMIT ' . $limit . ' OFFSET ' . $offset;
|
|
+ } else {
|
|
+ $qry .= ' LIMIT ' . $offset . ', ' . $limit;
|
|
+ }
|
|
hunk ./actions/favorited.php 73
|
|
- # Figure out how to cache this query
|
|
+ # Figure out how to cache this query
|
|
hunk ./actions/favorited.php 75
|
|
- $notice = new Notice;
|
|
- $notice->query(sprintf($qry, common_config('popular', 'dropoff')));
|
|
+ $notice = new Notice;
|
|
+ $notice->query(sprintf($qry, common_config('popular', 'dropoff')));
|
|
hunk ./actions/favorited.php 78
|
|
- common_element_start('ul', array('id' => 'notices'));
|
|
+ common_element_start('ul', array('id' => 'notices'));
|
|
hunk ./actions/favorited.php 80
|
|
- $cnt = 0;
|
|
+ $cnt = 0;
|
|
hunk ./actions/favorited.php 82
|
|
- while ($notice->fetch() && $cnt <= NOTICES_PER_PAGE) {
|
|
- $cnt++;
|
|
+ while ($notice->fetch() && $cnt <= NOTICES_PER_PAGE) {
|
|
+ $cnt++;
|
|
hunk ./actions/favorited.php 85
|
|
- if ($cnt > NOTICES_PER_PAGE) {
|
|
- break;
|
|
- }
|
|
+ if ($cnt > NOTICES_PER_PAGE) {
|
|
+ break;
|
|
+ }
|
|
hunk ./actions/favorited.php 91
|
|
- }
|
|
+ }
|
|
hunk ./actions/favorited.php 93
|
|
- common_element_end('ul');
|
|
+ common_element_end('ul');
|
|
hunk ./actions/favorited.php 95
|
|
- common_pagination($page > 1, $cnt > NOTICES_PER_PAGE,
|
|
- $page, 'favorited');
|
|
- }
|
|
+ common_pagination($page > 1, $cnt > NOTICES_PER_PAGE,
|
|
+ $page, 'favorited');
|
|
+ }
|
|
hunk ./actions/favoritesrss.php 28
|
|
- var $user = NULL;
|
|
-
|
|
- function init() {
|
|
- $nickname = $this->trimmed('nickname');
|
|
- $this->user = User::staticGet('nickname', $nickname);
|
|
+ var $user = NULL;
|
|
+
|
|
+ function init() {
|
|
+ $nickname = $this->trimmed('nickname');
|
|
+ $this->user = User::staticGet('nickname', $nickname);
|
|
hunk ./actions/favoritesrss.php 34
|
|
- if (!$this->user) {
|
|
- common_user_error(_('No such user.'));
|
|
- return false;
|
|
- } else {
|
|
- return true;
|
|
- }
|
|
- }
|
|
+ if (!$this->user) {
|
|
+ common_user_error(_('No such user.'));
|
|
+ return false;
|
|
+ } else {
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/favoritesrss.php 42
|
|
- function get_notices($limit=0) {
|
|
+ function get_notices($limit=0) {
|
|
hunk ./actions/favoritesrss.php 44
|
|
- $user = $this->user;
|
|
+ $user = $this->user;
|
|
hunk ./actions/favoritesrss.php 46
|
|
- $notice = $user->favoriteNotices(0, $limit);
|
|
+ $notice = $user->favoriteNotices(0, $limit);
|
|
hunk ./actions/favoritesrss.php 48
|
|
- $notices = array();
|
|
+ $notices = array();
|
|
hunk ./actions/favoritesrss.php 50
|
|
- while ($notice->fetch()) {
|
|
- $notices[] = clone($notice);
|
|
- }
|
|
+ while ($notice->fetch()) {
|
|
+ $notices[] = clone($notice);
|
|
+ }
|
|
hunk ./actions/favoritesrss.php 54
|
|
- return $notices;
|
|
- }
|
|
+ return $notices;
|
|
+ }
|
|
hunk ./actions/favoritesrss.php 57
|
|
- function get_channel() {
|
|
- $user = $this->user;
|
|
- $c = array('url' => common_local_url('favoritesrss',
|
|
- array('nickname' =>
|
|
- $user->nickname)),
|
|
- 'title' => sprintf(_("%s favorite notices"), $user->nickname),
|
|
- 'link' => common_local_url('showfavorites',
|
|
- array('nickname' =>
|
|
- $user->nickname)),
|
|
- 'description' => sprintf(_('Feed of favorite notices of %s'), $user->nickname));
|
|
- return $c;
|
|
- }
|
|
+ function get_channel() {
|
|
+ $user = $this->user;
|
|
+ $c = array('url' => common_local_url('favoritesrss',
|
|
+ array('nickname' =>
|
|
+ $user->nickname)),
|
|
+ 'title' => sprintf(_("%s favorite notices"), $user->nickname),
|
|
+ 'link' => common_local_url('showfavorites',
|
|
+ array('nickname' =>
|
|
+ $user->nickname)),
|
|
+ 'description' => sprintf(_('Feed of favorite notices of %s'), $user->nickname));
|
|
+ return $c;
|
|
+ }
|
|
hunk ./actions/favoritesrss.php 70
|
|
- function get_image() {
|
|
- return NULL;
|
|
- }
|
|
+ function get_image() {
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./actions/featured.php 13
|
|
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
hunk ./actions/featured.php 17
|
|
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
hunk ./actions/featured.php 27
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/featured.php 30
|
|
- $page = ($this->arg('page')) ? ($this->arg('page')+0) : 1;
|
|
+ $page = ($this->arg('page')) ? ($this->arg('page')+0) : 1;
|
|
hunk ./actions/featured.php 32
|
|
- common_show_header(_('Featured users'),
|
|
- array($this, 'show_header'), NULL,
|
|
- array($this, 'show_top'));
|
|
+ common_show_header(_('Featured users'),
|
|
+ array($this, 'show_header'), NULL,
|
|
+ array($this, 'show_top'));
|
|
hunk ./actions/featured.php 36
|
|
- $this->show_notices($page);
|
|
+ $this->show_notices($page);
|
|
hunk ./actions/featured.php 38
|
|
- common_show_footer();
|
|
- }
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/featured.php 41
|
|
- function show_top() {
|
|
- $instr = $this->get_instructions();
|
|
- $output = common_markup_to_html($instr);
|
|
- common_element_start('div', 'instructions');
|
|
- common_raw($output);
|
|
- common_element_end('div');
|
|
- $this->public_views_menu();
|
|
- }
|
|
+ function show_top() {
|
|
+ $instr = $this->get_instructions();
|
|
+ $output = common_markup_to_html($instr);
|
|
+ common_element_start('div', 'instructions');
|
|
+ common_raw($output);
|
|
+ common_element_end('div');
|
|
+ $this->public_views_menu();
|
|
+ }
|
|
hunk ./actions/featured.php 50
|
|
- function show_header() {
|
|
- }
|
|
+ function show_header() {
|
|
+ }
|
|
hunk ./actions/featured.php 53
|
|
- function get_instructions() {
|
|
- return _('Featured users');
|
|
- }
|
|
+ function get_instructions() {
|
|
+ return _('Featured users');
|
|
+ }
|
|
hunk ./actions/featured.php 57
|
|
- function show_notices($page) {
|
|
+ function show_notices($page) {
|
|
hunk ./actions/featured.php 59
|
|
- // XXX: Note I'm doing it this two-stage way because a raw query
|
|
- // with a JOIN was *not* working. --Zach
|
|
+ // XXX: Note I'm doing it this two-stage way because a raw query
|
|
+ // with a JOIN was *not* working. --Zach
|
|
hunk ./actions/featured.php 62
|
|
- $featured_nicks = common_config('nickname', 'featured');
|
|
+ $featured_nicks = common_config('nickname', 'featured');
|
|
hunk ./actions/featured.php 64
|
|
- if (count($featured_nicks) > 0) {
|
|
+ if (count($featured_nicks) > 0) {
|
|
hunk ./actions/featured.php 66
|
|
- $quoted = array();
|
|
+ $quoted = array();
|
|
hunk ./actions/featured.php 68
|
|
- foreach ($featured_nicks as $nick) {
|
|
- $quoted[] = "'$nick'";
|
|
- }
|
|
+ foreach ($featured_nicks as $nick) {
|
|
+ $quoted[] = "'$nick'";
|
|
+ }
|
|
hunk ./actions/featured.php 72
|
|
- $user = new User;
|
|
- $user->whereAdd(sprintf('nickname IN (%s)', implode(',', $quoted)));
|
|
- $user->limit(($page - 1) * PROFILES_PER_PAGE, PROFILES_PER_PAGE + 1);
|
|
- $user->orderBy('user.nickname ASC');
|
|
+ $user = new User;
|
|
+ $user->whereAdd(sprintf('nickname IN (%s)', implode(',', $quoted)));
|
|
+ $user->limit(($page - 1) * PROFILES_PER_PAGE, PROFILES_PER_PAGE + 1);
|
|
+ $user->orderBy('user.nickname ASC');
|
|
hunk ./actions/featured.php 77
|
|
- $user->find();
|
|
+ $user->find();
|
|
hunk ./actions/featured.php 79
|
|
- $profile_ids = array();
|
|
+ $profile_ids = array();
|
|
hunk ./actions/featured.php 81
|
|
- while ($user->fetch()) {
|
|
- $profile_ids[] = $user->id;
|
|
- }
|
|
+ while ($user->fetch()) {
|
|
+ $profile_ids[] = $user->id;
|
|
+ }
|
|
hunk ./actions/featured.php 85
|
|
- $profile = new Profile;
|
|
- $profile->whereAdd(sprintf('profile.id IN (%s)', implode(',', $profile_ids)));
|
|
- $profile->orderBy('nickname ASC');
|
|
+ $profile = new Profile;
|
|
+ $profile->whereAdd(sprintf('profile.id IN (%s)', implode(',', $profile_ids)));
|
|
+ $profile->orderBy('nickname ASC');
|
|
hunk ./actions/featured.php 89
|
|
- $cnt = $profile->find();
|
|
+ $cnt = $profile->find();
|
|
hunk ./actions/featured.php 91
|
|
- if ($cnt > 0) {
|
|
- $featured = new ProfileList($profile);
|
|
- $featured->show_list();
|
|
- }
|
|
+ if ($cnt > 0) {
|
|
+ $featured = new ProfileList($profile);
|
|
+ $featured->show_list();
|
|
+ }
|
|
hunk ./actions/featured.php 96
|
|
- $profile->free();
|
|
+ $profile->free();
|
|
hunk ./actions/featured.php 98
|
|
- common_pagination($page > 1, $cnt > PROFILES_PER_PAGE, $page, 'featured');
|
|
- }
|
|
- }
|
|
+ common_pagination($page > 1, $cnt > PROFILES_PER_PAGE, $page, 'featured');
|
|
+ }
|
|
+ }
|
|
hunk ./actions/finishaddopenid.php 26
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
- if (!common_logged_in()) {
|
|
- common_user_error(_('Not logged in.'));
|
|
- } else {
|
|
- $this->try_login();
|
|
- }
|
|
- }
|
|
-
|
|
- function try_login() {
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
+ if (!common_logged_in()) {
|
|
+ common_user_error(_('Not logged in.'));
|
|
+ } else {
|
|
+ $this->try_login();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ function try_login() {
|
|
hunk ./actions/finishaddopenid.php 37
|
|
- $consumer =& oid_consumer();
|
|
+ $consumer =& oid_consumer();
|
|
hunk ./actions/finishaddopenid.php 39
|
|
- $response = $consumer->complete(common_local_url('finishaddopenid'));
|
|
+ $response = $consumer->complete(common_local_url('finishaddopenid'));
|
|
hunk ./actions/finishaddopenid.php 41
|
|
- if ($response->status == Auth_OpenID_CANCEL) {
|
|
- $this->message(_('OpenID authentication cancelled.'));
|
|
- return;
|
|
- } else if ($response->status == Auth_OpenID_FAILURE) {
|
|
- // Authentication failed; display the error message.
|
|
- $this->message(sprintf(_('OpenID authentication failed: %s'), $response->message));
|
|
- } else if ($response->status == Auth_OpenID_SUCCESS) {
|
|
+ if ($response->status == Auth_OpenID_CANCEL) {
|
|
+ $this->message(_('OpenID authentication cancelled.'));
|
|
+ return;
|
|
+ } else if ($response->status == Auth_OpenID_FAILURE) {
|
|
+ // Authentication failed; display the error message.
|
|
+ $this->message(sprintf(_('OpenID authentication failed: %s'), $response->message));
|
|
+ } else if ($response->status == Auth_OpenID_SUCCESS) {
|
|
hunk ./actions/finishaddopenid.php 49
|
|
- $display = $response->getDisplayIdentifier();
|
|
- $canonical = ($response->endpoint && $response->endpoint->canonicalID) ?
|
|
- $response->endpoint->canonicalID : $display;
|
|
+ $display = $response->getDisplayIdentifier();
|
|
+ $canonical = ($response->endpoint && $response->endpoint->canonicalID) ?
|
|
+ $response->endpoint->canonicalID : $display;
|
|
hunk ./actions/finishaddopenid.php 53
|
|
- $sreg_resp = Auth_OpenID_SRegResponse::fromSuccessResponse($response);
|
|
+ $sreg_resp = Auth_OpenID_SRegResponse::fromSuccessResponse($response);
|
|
hunk ./actions/finishaddopenid.php 55
|
|
- if ($sreg_resp) {
|
|
- $sreg = $sreg_resp->contents();
|
|
- }
|
|
+ if ($sreg_resp) {
|
|
+ $sreg = $sreg_resp->contents();
|
|
+ }
|
|
hunk ./actions/finishaddopenid.php 59
|
|
- $cur =& common_current_user();
|
|
- $other = oid_get_user($canonical);
|
|
+ $cur =& common_current_user();
|
|
+ $other = oid_get_user($canonical);
|
|
hunk ./actions/finishaddopenid.php 62
|
|
- if ($other) {
|
|
- if ($other->id == $cur->id) {
|
|
- $this->message(_('You already have this OpenID!'));
|
|
- } else {
|
|
- $this->message(_('Someone else already has this OpenID.'));
|
|
- }
|
|
- return;
|
|
- }
|
|
+ if ($other) {
|
|
+ if ($other->id == $cur->id) {
|
|
+ $this->message(_('You already have this OpenID!'));
|
|
+ } else {
|
|
+ $this->message(_('Someone else already has this OpenID.'));
|
|
+ }
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/finishaddopenid.php 71
|
|
- # start a transaction
|
|
+ # start a transaction
|
|
hunk ./actions/finishaddopenid.php 73
|
|
- $cur->query('BEGIN');
|
|
+ $cur->query('BEGIN');
|
|
hunk ./actions/finishaddopenid.php 75
|
|
- $result = oid_link_user($cur->id, $canonical, $display);
|
|
+ $result = oid_link_user($cur->id, $canonical, $display);
|
|
hunk ./actions/finishaddopenid.php 77
|
|
- if (!$result) {
|
|
- $this->message(_('Error connecting user.'));
|
|
- return;
|
|
- }
|
|
- if ($sreg) {
|
|
- if (!oid_update_user($cur, $sreg)) {
|
|
- $this->message(_('Error updating profile'));
|
|
- return;
|
|
- }
|
|
- }
|
|
+ if (!$result) {
|
|
+ $this->message(_('Error connecting user.'));
|
|
+ return;
|
|
+ }
|
|
+ if ($sreg) {
|
|
+ if (!oid_update_user($cur, $sreg)) {
|
|
+ $this->message(_('Error updating profile'));
|
|
+ return;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/finishaddopenid.php 88
|
|
- # success!
|
|
+ # success!
|
|
hunk ./actions/finishaddopenid.php 90
|
|
- $cur->query('COMMIT');
|
|
+ $cur->query('COMMIT');
|
|
hunk ./actions/finishaddopenid.php 92
|
|
- oid_set_last($display);
|
|
+ oid_set_last($display);
|
|
hunk ./actions/finishaddopenid.php 94
|
|
- common_redirect(common_local_url('openidsettings'));
|
|
- }
|
|
- }
|
|
+ common_redirect(common_local_url('openidsettings'));
|
|
+ }
|
|
+ }
|
|
hunk ./actions/finishaddopenid.php 98
|
|
- function message($msg) {
|
|
- common_show_header(_('OpenID Login'));
|
|
- common_element('p', NULL, $msg);
|
|
- common_show_footer();
|
|
- }
|
|
+ function message($msg) {
|
|
+ common_show_header(_('OpenID Login'));
|
|
+ common_element('p', NULL, $msg);
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/finishimmediate.php 26
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/finishimmediate.php 29
|
|
- $consumer = oid_consumer();
|
|
+ $consumer = oid_consumer();
|
|
hunk ./actions/finishimmediate.php 31
|
|
- $response = $consumer->complete(common_local_url('finishimmediate'));
|
|
+ $response = $consumer->complete(common_local_url('finishimmediate'));
|
|
hunk ./actions/finishimmediate.php 33
|
|
- if ($response->status == Auth_OpenID_SUCCESS) {
|
|
- $display = $response->getDisplayIdentifier();
|
|
- $canonical = ($response->endpoint->canonicalID) ?
|
|
- $response->endpoint->canonicalID : $response->getDisplayIdentifier();
|
|
+ if ($response->status == Auth_OpenID_SUCCESS) {
|
|
+ $display = $response->getDisplayIdentifier();
|
|
+ $canonical = ($response->endpoint->canonicalID) ?
|
|
+ $response->endpoint->canonicalID : $response->getDisplayIdentifier();
|
|
hunk ./actions/finishimmediate.php 38
|
|
- $user = oid_get_user($canonical);
|
|
+ $user = oid_get_user($canonical);
|
|
hunk ./actions/finishimmediate.php 40
|
|
- if ($user) {
|
|
- oid_update_user($user, $sreg);
|
|
- oid_set_last($display); # refresh for another year
|
|
- common_set_user($user->nickname);
|
|
- $this->go_backto();
|
|
- return;
|
|
- }
|
|
- }
|
|
+ if ($user) {
|
|
+ oid_update_user($user, $sreg);
|
|
+ oid_set_last($display); # refresh for another year
|
|
+ common_set_user($user->nickname);
|
|
+ $this->go_backto();
|
|
+ return;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/finishimmediate.php 49
|
|
- # Failure! Clear openid so we don't try it again
|
|
+ # Failure! Clear openid so we don't try it again
|
|
hunk ./actions/finishimmediate.php 51
|
|
- oid_clear_last();
|
|
- $this->go_backto();
|
|
- return;
|
|
- }
|
|
+ oid_clear_last();
|
|
+ $this->go_backto();
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/finishimmediate.php 56
|
|
- function go_backto() {
|
|
- common_ensure_session();
|
|
- $backto = $_SESSION['openid_immediate_backto'];
|
|
- if (!$backto) {
|
|
- # gar. Well, push them to the public page
|
|
- $backto = common_local_url('public');
|
|
- }
|
|
- common_redirect($backto);
|
|
- }
|
|
+ function go_backto() {
|
|
+ common_ensure_session();
|
|
+ $backto = $_SESSION['openid_immediate_backto'];
|
|
+ if (!$backto) {
|
|
+ # gar. Well, push them to the public page
|
|
+ $backto = common_local_url('public');
|
|
+ }
|
|
+ common_redirect($backto);
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 26
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
- if (common_logged_in()) {
|
|
- common_user_error(_('Already logged in.'));
|
|
- } else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
|
- $token = $this->trimmed('token');
|
|
- if (!$token || $token != common_session_token()) {
|
|
- $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
- return;
|
|
- }
|
|
- if ($this->arg('create')) {
|
|
- if (!$this->boolean('license')) {
|
|
- $this->show_form(_('You can\'t register if you don\'t agree to the license.'),
|
|
- $this->trimmed('newname'));
|
|
- return;
|
|
- }
|
|
- $this->create_new_user();
|
|
- } else if ($this->arg('connect')) {
|
|
- $this->connect_user();
|
|
- } else {
|
|
- common_debug(print_r($this->args, true), __FILE__);
|
|
- $this->show_form(_('Something weird happened.'),
|
|
- $this->trimmed('newname'));
|
|
- }
|
|
- } else {
|
|
- $this->try_login();
|
|
- }
|
|
- }
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
+ if (common_logged_in()) {
|
|
+ common_user_error(_('Already logged in.'));
|
|
+ } else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
|
+ $token = $this->trimmed('token');
|
|
+ if (!$token || $token != common_session_token()) {
|
|
+ $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
+ return;
|
|
+ }
|
|
+ if ($this->arg('create')) {
|
|
+ if (!$this->boolean('license')) {
|
|
+ $this->show_form(_('You can\'t register if you don\'t agree to the license.'),
|
|
+ $this->trimmed('newname'));
|
|
+ return;
|
|
+ }
|
|
+ $this->create_new_user();
|
|
+ } else if ($this->arg('connect')) {
|
|
+ $this->connect_user();
|
|
+ } else {
|
|
+ common_debug(print_r($this->args, true), __FILE__);
|
|
+ $this->show_form(_('Something weird happened.'),
|
|
+ $this->trimmed('newname'));
|
|
+ }
|
|
+ } else {
|
|
+ $this->try_login();
|
|
+ }
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 55
|
|
- function show_top($error=NULL) {
|
|
- if ($error) {
|
|
- common_element('div', array('class' => 'error'), $error);
|
|
- } else {
|
|
- global $config;
|
|
- common_element('div', 'instructions',
|
|
- sprintf(_('This is the first time you\'ve logged into %s so we must connect your OpenID to a local account. You can either create a new account, or connect with your existing account, if you have one.'), $config['site']['name']));
|
|
- }
|
|
- }
|
|
+ function show_top($error=NULL) {
|
|
+ if ($error) {
|
|
+ common_element('div', array('class' => 'error'), $error);
|
|
+ } else {
|
|
+ global $config;
|
|
+ common_element('div', 'instructions',
|
|
+ sprintf(_('This is the first time you\'ve logged into %s so we must connect your OpenID to a local account. You can either create a new account, or connect with your existing account, if you have one.'), $config['site']['name']));
|
|
+ }
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 65
|
|
- function show_form($error=NULL, $username=NULL) {
|
|
- common_show_header(_('OpenID Account Setup'), NULL, $error,
|
|
- array($this, 'show_top'));
|
|
+ function show_form($error=NULL, $username=NULL) {
|
|
+ common_show_header(_('OpenID Account Setup'), NULL, $error,
|
|
+ array($this, 'show_top'));
|
|
hunk ./actions/finishopenidlogin.php 69
|
|
- common_element_start('form', array('method' => 'post',
|
|
- 'id' => 'account_connect',
|
|
- 'action' => common_local_url('finishopenidlogin')));
|
|
- common_hidden('token', common_session_token());
|
|
- common_element('h2', NULL,
|
|
- _('Create new account'));
|
|
- common_element('p', NULL,
|
|
- _('Create a new user with this nickname.'));
|
|
- common_input('newname', _('New nickname'),
|
|
- ($username) ? $username : '',
|
|
- _('1-64 lowercase letters or numbers, no punctuation or spaces'));
|
|
- common_element_start('p');
|
|
- common_element('input', array('type' => 'checkbox',
|
|
- 'id' => 'license',
|
|
- 'name' => 'license',
|
|
- 'value' => 'true'));
|
|
- common_text(_('My text and files are available under '));
|
|
- common_element('a', array(href => common_config('license', 'url')),
|
|
- common_config('license', 'title'));
|
|
- common_text(_(' except this private data: password, email address, IM address, phone number.'));
|
|
- common_element_end('p');
|
|
- common_submit('create', _('Create'));
|
|
- common_element('h2', NULL,
|
|
- _('Connect existing account'));
|
|
- common_element('p', NULL,
|
|
- _('If you already have an account, login with your username and password to connect it to your OpenID.'));
|
|
- common_input('nickname', _('Existing nickname'));
|
|
- common_password('password', _('Password'));
|
|
- common_submit('connect', _('Connect'));
|
|
- common_element_end('form');
|
|
- common_show_footer();
|
|
- }
|
|
+ common_element_start('form', array('method' => 'post',
|
|
+ 'id' => 'account_connect',
|
|
+ 'action' => common_local_url('finishopenidlogin')));
|
|
+ common_hidden('token', common_session_token());
|
|
+ common_element('h2', NULL,
|
|
+ _('Create new account'));
|
|
+ common_element('p', NULL,
|
|
+ _('Create a new user with this nickname.'));
|
|
+ common_input('newname', _('New nickname'),
|
|
+ ($username) ? $username : '',
|
|
+ _('1-64 lowercase letters or numbers, no punctuation or spaces'));
|
|
+ common_element_start('p');
|
|
+ common_element('input', array('type' => 'checkbox',
|
|
+ 'id' => 'license',
|
|
+ 'name' => 'license',
|
|
+ 'value' => 'true'));
|
|
+ common_text(_('My text and files are available under '));
|
|
+ common_element('a', array(href => common_config('license', 'url')),
|
|
+ common_config('license', 'title'));
|
|
+ common_text(_(' except this private data: password, email address, IM address, phone number.'));
|
|
+ common_element_end('p');
|
|
+ common_submit('create', _('Create'));
|
|
+ common_element('h2', NULL,
|
|
+ _('Connect existing account'));
|
|
+ common_element('p', NULL,
|
|
+ _('If you already have an account, login with your username and password to connect it to your OpenID.'));
|
|
+ common_input('nickname', _('Existing nickname'));
|
|
+ common_password('password', _('Password'));
|
|
+ common_submit('connect', _('Connect'));
|
|
+ common_element_end('form');
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 102
|
|
- function try_login() {
|
|
+ function try_login() {
|
|
hunk ./actions/finishopenidlogin.php 104
|
|
- $consumer = oid_consumer();
|
|
+ $consumer = oid_consumer();
|
|
hunk ./actions/finishopenidlogin.php 106
|
|
- $response = $consumer->complete(common_local_url('finishopenidlogin'));
|
|
+ $response = $consumer->complete(common_local_url('finishopenidlogin'));
|
|
hunk ./actions/finishopenidlogin.php 108
|
|
- if ($response->status == Auth_OpenID_CANCEL) {
|
|
- $this->message(_('OpenID authentication cancelled.'));
|
|
- return;
|
|
- } else if ($response->status == Auth_OpenID_FAILURE) {
|
|
- // Authentication failed; display the error message.
|
|
- $this->message(sprintf(_('OpenID authentication failed: %s'), $response->message));
|
|
- } else if ($response->status == Auth_OpenID_SUCCESS) {
|
|
- // This means the authentication succeeded; extract the
|
|
- // identity URL and Simple Registration data (if it was
|
|
- // returned).
|
|
- $display = $response->getDisplayIdentifier();
|
|
- $canonical = ($response->endpoint->canonicalID) ?
|
|
- $response->endpoint->canonicalID : $response->getDisplayIdentifier();
|
|
+ if ($response->status == Auth_OpenID_CANCEL) {
|
|
+ $this->message(_('OpenID authentication cancelled.'));
|
|
+ return;
|
|
+ } else if ($response->status == Auth_OpenID_FAILURE) {
|
|
+ // Authentication failed; display the error message.
|
|
+ $this->message(sprintf(_('OpenID authentication failed: %s'), $response->message));
|
|
+ } else if ($response->status == Auth_OpenID_SUCCESS) {
|
|
+ // This means the authentication succeeded; extract the
|
|
+ // identity URL and Simple Registration data (if it was
|
|
+ // returned).
|
|
+ $display = $response->getDisplayIdentifier();
|
|
+ $canonical = ($response->endpoint->canonicalID) ?
|
|
+ $response->endpoint->canonicalID : $response->getDisplayIdentifier();
|
|
hunk ./actions/finishopenidlogin.php 122
|
|
- $sreg_resp = Auth_OpenID_SRegResponse::fromSuccessResponse($response);
|
|
+ $sreg_resp = Auth_OpenID_SRegResponse::fromSuccessResponse($response);
|
|
hunk ./actions/finishopenidlogin.php 124
|
|
- if ($sreg_resp) {
|
|
- $sreg = $sreg_resp->contents();
|
|
- }
|
|
+ if ($sreg_resp) {
|
|
+ $sreg = $sreg_resp->contents();
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 128
|
|
- $user = oid_get_user($canonical);
|
|
+ $user = oid_get_user($canonical);
|
|
hunk ./actions/finishopenidlogin.php 130
|
|
- if ($user) {
|
|
- oid_set_last($display);
|
|
- # XXX: commented out at @edd's request until better
|
|
- # control over how data flows from OpenID provider.
|
|
- # oid_update_user($user, $sreg);
|
|
- common_set_user($user);
|
|
- common_real_login(true);
|
|
- if (isset($_SESSION['openid_rememberme']) && $_SESSION['openid_rememberme']) {
|
|
- common_rememberme($user);
|
|
- }
|
|
+ if ($user) {
|
|
+ oid_set_last($display);
|
|
+ # XXX: commented out at @edd's request until better
|
|
+ # control over how data flows from OpenID provider.
|
|
+ # oid_update_user($user, $sreg);
|
|
+ common_set_user($user);
|
|
+ common_real_login(true);
|
|
+ if (isset($_SESSION['openid_rememberme']) && $_SESSION['openid_rememberme']) {
|
|
+ common_rememberme($user);
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 141
|
|
- $this->go_home($user->nickname);
|
|
- } else {
|
|
- $this->save_values($display, $canonical, $sreg);
|
|
- $this->show_form(NULL, $this->best_new_nickname($display, $sreg));
|
|
- }
|
|
- }
|
|
- }
|
|
+ $this->go_home($user->nickname);
|
|
+ } else {
|
|
+ $this->save_values($display, $canonical, $sreg);
|
|
+ $this->show_form(NULL, $this->best_new_nickname($display, $sreg));
|
|
+ }
|
|
+ }
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 149
|
|
- function message($msg) {
|
|
- common_show_header(_('OpenID Login'));
|
|
- common_element('p', NULL, $msg);
|
|
- common_show_footer();
|
|
- }
|
|
+ function message($msg) {
|
|
+ common_show_header(_('OpenID Login'));
|
|
+ common_element('p', NULL, $msg);
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 155
|
|
- function save_values($display, $canonical, $sreg) {
|
|
- common_ensure_session();
|
|
- $_SESSION['openid_display'] = $display;
|
|
- $_SESSION['openid_canonical'] = $canonical;
|
|
- $_SESSION['openid_sreg'] = $sreg;
|
|
- }
|
|
+ function save_values($display, $canonical, $sreg) {
|
|
+ common_ensure_session();
|
|
+ $_SESSION['openid_display'] = $display;
|
|
+ $_SESSION['openid_canonical'] = $canonical;
|
|
+ $_SESSION['openid_sreg'] = $sreg;
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 162
|
|
- function get_saved_values() {
|
|
- return array($_SESSION['openid_display'],
|
|
- $_SESSION['openid_canonical'],
|
|
- $_SESSION['openid_sreg']);
|
|
- }
|
|
+ function get_saved_values() {
|
|
+ return array($_SESSION['openid_display'],
|
|
+ $_SESSION['openid_canonical'],
|
|
+ $_SESSION['openid_sreg']);
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 168
|
|
- function create_new_user() {
|
|
+ function create_new_user() {
|
|
hunk ./actions/finishopenidlogin.php 172
|
|
- if (common_config('site', 'closed') || common_config('site', 'inviteonly')) {
|
|
- common_user_error(_('Registration not allowed.'));
|
|
+ if (common_config('site', 'closed') || common_config('site', 'inviteonly')) {
|
|
+ common_user_error(_('Registration not allowed.'));
|
|
hunk ./actions/finishopenidlogin.php 177
|
|
- $nickname = $this->trimmed('newname');
|
|
+ $nickname = $this->trimmed('newname');
|
|
hunk ./actions/finishopenidlogin.php 179
|
|
- if (!Validate::string($nickname, array('min_length' => 1,
|
|
- 'max_length' => 64,
|
|
- 'format' => VALIDATE_NUM . VALIDATE_ALPHA_LOWER))) {
|
|
- $this->show_form(_('Nickname must have only lowercase letters and numbers and no spaces.'));
|
|
- return;
|
|
- }
|
|
+ if (!Validate::string($nickname, array('min_length' => 1,
|
|
+ 'max_length' => 64,
|
|
+ 'format' => VALIDATE_NUM . VALIDATE_ALPHA_LOWER))) {
|
|
+ $this->show_form(_('Nickname must have only lowercase letters and numbers and no spaces.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 186
|
|
- if (!User::allowed_nickname($nickname)) {
|
|
- $this->show_form(_('Nickname not allowed.'));
|
|
- return;
|
|
- }
|
|
+ if (!User::allowed_nickname($nickname)) {
|
|
+ $this->show_form(_('Nickname not allowed.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 191
|
|
- if (User::staticGet('nickname', $nickname)) {
|
|
- $this->show_form(_('Nickname already in use. Try another one.'));
|
|
- return;
|
|
- }
|
|
+ if (User::staticGet('nickname', $nickname)) {
|
|
+ $this->show_form(_('Nickname already in use. Try another one.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 196
|
|
- list($display, $canonical, $sreg) = $this->get_saved_values();
|
|
+ list($display, $canonical, $sreg) = $this->get_saved_values();
|
|
hunk ./actions/finishopenidlogin.php 198
|
|
- if (!$display || !$canonical) {
|
|
- common_server_error(_('Stored OpenID not found.'));
|
|
- return;
|
|
- }
|
|
+ if (!$display || !$canonical) {
|
|
+ common_server_error(_('Stored OpenID not found.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 203
|
|
- # Possible race condition... let's be paranoid
|
|
+ # Possible race condition... let's be paranoid
|
|
hunk ./actions/finishopenidlogin.php 205
|
|
- $other = oid_get_user($canonical);
|
|
+ $other = oid_get_user($canonical);
|
|
hunk ./actions/finishopenidlogin.php 207
|
|
- if ($other) {
|
|
- common_server_error(_('Creating new account for OpenID that already has a user.'));
|
|
- return;
|
|
- }
|
|
+ if ($other) {
|
|
+ common_server_error(_('Creating new account for OpenID that already has a user.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 212
|
|
- if ($sreg['country']) {
|
|
- if ($sreg['postcode']) {
|
|
- # XXX: use postcode to get city and region
|
|
- # XXX: also, store postcode somewhere -- it's valuable!
|
|
- $location = $sreg['postcode'] . ', ' . $sreg['country'];
|
|
- } else {
|
|
- $location = $sreg['country'];
|
|
- }
|
|
- }
|
|
+ if ($sreg['country']) {
|
|
+ if ($sreg['postcode']) {
|
|
+ # XXX: use postcode to get city and region
|
|
+ # XXX: also, store postcode somewhere -- it's valuable!
|
|
+ $location = $sreg['postcode'] . ', ' . $sreg['country'];
|
|
+ } else {
|
|
+ $location = $sreg['country'];
|
|
+ }
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 222
|
|
- if ($sreg['fullname'] && strlen($sreg['fullname']) <= 255) {
|
|
- $fullname = $sreg['fullname'];
|
|
- }
|
|
+ if ($sreg['fullname'] && strlen($sreg['fullname']) <= 255) {
|
|
+ $fullname = $sreg['fullname'];
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 226
|
|
- if ($sreg['email'] && Validate::email($sreg['email'], true)) {
|
|
- $email = $sreg['email'];
|
|
- }
|
|
+ if ($sreg['email'] && Validate::email($sreg['email'], true)) {
|
|
+ $email = $sreg['email'];
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 230
|
|
- # XXX: add language
|
|
- # XXX: add timezone
|
|
+ # XXX: add language
|
|
+ # XXX: add timezone
|
|
hunk ./actions/finishopenidlogin.php 233
|
|
- $user = User::register(array('nickname' => $nickname,
|
|
- 'email' => $email,
|
|
- 'fullname' => $fullname,
|
|
- 'location' => $location));
|
|
+ $user = User::register(array('nickname' => $nickname,
|
|
+ 'email' => $email,
|
|
+ 'fullname' => $fullname,
|
|
+ 'location' => $location));
|
|
hunk ./actions/finishopenidlogin.php 238
|
|
- $result = oid_link_user($user->id, $canonical, $display);
|
|
+ $result = oid_link_user($user->id, $canonical, $display);
|
|
hunk ./actions/finishopenidlogin.php 240
|
|
- oid_set_last($display);
|
|
- common_set_user($user);
|
|
- common_real_login(true);
|
|
+ oid_set_last($display);
|
|
+ common_set_user($user);
|
|
+ common_real_login(true);
|
|
hunk ./actions/finishopenidlogin.php 244
|
|
- common_rememberme($user);
|
|
- }
|
|
+ common_rememberme($user);
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 247
|
|
- common_redirect(common_local_url('showstream', array('nickname' => $user->nickname)));
|
|
- }
|
|
+ common_redirect(common_local_url('showstream', array('nickname' => $user->nickname)));
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 250
|
|
- function connect_user() {
|
|
+ function connect_user() {
|
|
hunk ./actions/finishopenidlogin.php 252
|
|
- $nickname = $this->trimmed('nickname');
|
|
- $password = $this->trimmed('password');
|
|
+ $nickname = $this->trimmed('nickname');
|
|
+ $password = $this->trimmed('password');
|
|
hunk ./actions/finishopenidlogin.php 255
|
|
- if (!common_check_user($nickname, $password)) {
|
|
- $this->show_form(_('Invalid username or password.'));
|
|
- return;
|
|
- }
|
|
+ if (!common_check_user($nickname, $password)) {
|
|
+ $this->show_form(_('Invalid username or password.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 260
|
|
- # They're legit!
|
|
+ # They're legit!
|
|
hunk ./actions/finishopenidlogin.php 262
|
|
- $user = User::staticGet('nickname', $nickname);
|
|
+ $user = User::staticGet('nickname', $nickname);
|
|
hunk ./actions/finishopenidlogin.php 264
|
|
- list($display, $canonical, $sreg) = $this->get_saved_values();
|
|
+ list($display, $canonical, $sreg) = $this->get_saved_values();
|
|
hunk ./actions/finishopenidlogin.php 266
|
|
- if (!$display || !$canonical) {
|
|
- common_server_error(_('Stored OpenID not found.'));
|
|
- return;
|
|
- }
|
|
+ if (!$display || !$canonical) {
|
|
+ common_server_error(_('Stored OpenID not found.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 271
|
|
- $result = oid_link_user($user->id, $canonical, $display);
|
|
+ $result = oid_link_user($user->id, $canonical, $display);
|
|
hunk ./actions/finishopenidlogin.php 273
|
|
- if (!$result) {
|
|
- common_server_error(_('Error connecting user to OpenID.'));
|
|
- return;
|
|
- }
|
|
+ if (!$result) {
|
|
+ common_server_error(_('Error connecting user to OpenID.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 278
|
|
- oid_update_user($user, $sreg);
|
|
- oid_set_last($display);
|
|
- common_set_user($user);
|
|
- common_real_login(true);
|
|
+ oid_update_user($user, $sreg);
|
|
+ oid_set_last($display);
|
|
+ common_set_user($user);
|
|
+ common_real_login(true);
|
|
hunk ./actions/finishopenidlogin.php 283
|
|
- common_rememberme($user);
|
|
- }
|
|
- unset($_SESSION['openid_rememberme']);
|
|
- $this->go_home($user->nickname);
|
|
- }
|
|
+ common_rememberme($user);
|
|
+ }
|
|
+ unset($_SESSION['openid_rememberme']);
|
|
+ $this->go_home($user->nickname);
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 289
|
|
- function go_home($nickname) {
|
|
- $url = common_get_returnto();
|
|
- if ($url) {
|
|
- # We don't have to return to it again
|
|
- common_set_returnto(NULL);
|
|
- } else {
|
|
- $url = common_local_url('all',
|
|
- array('nickname' =>
|
|
- $nickname));
|
|
- }
|
|
- common_redirect($url);
|
|
- }
|
|
+ function go_home($nickname) {
|
|
+ $url = common_get_returnto();
|
|
+ if ($url) {
|
|
+ # We don't have to return to it again
|
|
+ common_set_returnto(NULL);
|
|
+ } else {
|
|
+ $url = common_local_url('all',
|
|
+ array('nickname' =>
|
|
+ $nickname));
|
|
+ }
|
|
+ common_redirect($url);
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 302
|
|
- function best_new_nickname($display, $sreg) {
|
|
+ function best_new_nickname($display, $sreg) {
|
|
hunk ./actions/finishopenidlogin.php 304
|
|
- # Try the passed-in nickname
|
|
+ # Try the passed-in nickname
|
|
hunk ./actions/finishopenidlogin.php 306
|
|
- if ($sreg['nickname']) {
|
|
- $nickname = $this->nicknamize($sreg['nickname']);
|
|
- if ($this->is_new_nickname($nickname)) {
|
|
- return $nickname;
|
|
- }
|
|
- }
|
|
+ if ($sreg['nickname']) {
|
|
+ $nickname = $this->nicknamize($sreg['nickname']);
|
|
+ if ($this->is_new_nickname($nickname)) {
|
|
+ return $nickname;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 313
|
|
- # Try the full name
|
|
+ # Try the full name
|
|
hunk ./actions/finishopenidlogin.php 315
|
|
- if ($sreg['fullname']) {
|
|
- $fullname = $this->nicknamize($sreg['fullname']);
|
|
- if ($this->is_new_nickname($fullname)) {
|
|
- return $fullname;
|
|
- }
|
|
- }
|
|
+ if ($sreg['fullname']) {
|
|
+ $fullname = $this->nicknamize($sreg['fullname']);
|
|
+ if ($this->is_new_nickname($fullname)) {
|
|
+ return $fullname;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 322
|
|
- # Try the URL
|
|
+ # Try the URL
|
|
hunk ./actions/finishopenidlogin.php 324
|
|
- $from_url = $this->openid_to_nickname($display);
|
|
+ $from_url = $this->openid_to_nickname($display);
|
|
hunk ./actions/finishopenidlogin.php 326
|
|
- if ($from_url && $this->is_new_nickname($from_url)) {
|
|
- return $from_url;
|
|
- }
|
|
+ if ($from_url && $this->is_new_nickname($from_url)) {
|
|
+ return $from_url;
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 330
|
|
- # XXX: others?
|
|
+ # XXX: others?
|
|
hunk ./actions/finishopenidlogin.php 332
|
|
- return NULL;
|
|
- }
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 335
|
|
- function is_new_nickname($str) {
|
|
- if (!Validate::string($str, array('min_length' => 1,
|
|
- 'max_length' => 64,
|
|
- 'format' => VALIDATE_NUM . VALIDATE_ALPHA_LOWER))) {
|
|
- return false;
|
|
- }
|
|
- if (!User::allowed_nickname($str)) {
|
|
- return false;
|
|
- }
|
|
- if (User::staticGet('nickname', $str)) {
|
|
- return false;
|
|
- }
|
|
- return true;
|
|
- }
|
|
+ function is_new_nickname($str) {
|
|
+ if (!Validate::string($str, array('min_length' => 1,
|
|
+ 'max_length' => 64,
|
|
+ 'format' => VALIDATE_NUM . VALIDATE_ALPHA_LOWER))) {
|
|
+ return false;
|
|
+ }
|
|
+ if (!User::allowed_nickname($str)) {
|
|
+ return false;
|
|
+ }
|
|
+ if (User::staticGet('nickname', $str)) {
|
|
+ return false;
|
|
+ }
|
|
+ return true;
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 350
|
|
- function openid_to_nickname($openid) {
|
|
+ function openid_to_nickname($openid) {
|
|
hunk ./actions/finishopenidlogin.php 352
|
|
- return $this->xri_to_nickname($openid);
|
|
- } else {
|
|
- return $this->url_to_nickname($openid);
|
|
- }
|
|
- }
|
|
+ return $this->xri_to_nickname($openid);
|
|
+ } else {
|
|
+ return $this->url_to_nickname($openid);
|
|
+ }
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 358
|
|
- # We try to use an OpenID URL as a legal Laconica user name in this order
|
|
- # 1. Plain hostname, like http://evanp.myopenid.com/
|
|
- # 2. One element in path, like http://profile.typekey.com/EvanProdromou/
|
|
- # or http://getopenid.com/evanprodromou
|
|
+ # We try to use an OpenID URL as a legal Laconica user name in this order
|
|
+ # 1. Plain hostname, like http://evanp.myopenid.com/
|
|
+ # 2. One element in path, like http://profile.typekey.com/EvanProdromou/
|
|
+ # or http://getopenid.com/evanprodromou
|
|
hunk ./actions/finishopenidlogin.php 364
|
|
- static $bad = array('query', 'user', 'password', 'port', 'fragment');
|
|
+ static $bad = array('query', 'user', 'password', 'port', 'fragment');
|
|
hunk ./actions/finishopenidlogin.php 366
|
|
- $parts = parse_url($openid);
|
|
+ $parts = parse_url($openid);
|
|
hunk ./actions/finishopenidlogin.php 368
|
|
- # If any of these parts exist, this won't work
|
|
+ # If any of these parts exist, this won't work
|
|
hunk ./actions/finishopenidlogin.php 370
|
|
- foreach ($bad as $badpart) {
|
|
- if (array_key_exists($badpart, $parts)) {
|
|
- return NULL;
|
|
- }
|
|
- }
|
|
+ foreach ($bad as $badpart) {
|
|
+ if (array_key_exists($badpart, $parts)) {
|
|
+ return NULL;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 376
|
|
- # We just have host and/or path
|
|
+ # We just have host and/or path
|
|
hunk ./actions/finishopenidlogin.php 378
|
|
- # If it's just a host...
|
|
- if (array_key_exists('host', $parts) &&
|
|
- (!array_key_exists('path', $parts) || strcmp($parts['path'], '/') == 0))
|
|
- {
|
|
- $hostparts = explode('.', $parts['host']);
|
|
+ # If it's just a host...
|
|
+ if (array_key_exists('host', $parts) &&
|
|
+ (!array_key_exists('path', $parts) || strcmp($parts['path'], '/') == 0))
|
|
+ {
|
|
+ $hostparts = explode('.', $parts['host']);
|
|
hunk ./actions/finishopenidlogin.php 384
|
|
- # Try to catch common idiom of nickname.service.tld
|
|
+ # Try to catch common idiom of nickname.service.tld
|
|
hunk ./actions/finishopenidlogin.php 386
|
|
- if ((count($hostparts) > 2) &&
|
|
- (strlen($hostparts[count($hostparts) - 2]) > 3) && # try to skip .co.uk, .com.au
|
|
- (strcmp($hostparts[0], 'www') != 0))
|
|
- {
|
|
- return $this->nicknamize($hostparts[0]);
|
|
- } else {
|
|
- # Do the whole hostname
|
|
- return $this->nicknamize($parts['host']);
|
|
- }
|
|
- } else {
|
|
- if (array_key_exists('path', $parts)) {
|
|
- # Strip starting, ending slashes
|
|
- $path = preg_replace('@/$@', '', $parts['path']);
|
|
- $path = preg_replace('@^/@', '', $path);
|
|
- if (strpos($path, '/') === false) {
|
|
- return $this->nicknamize($path);
|
|
- }
|
|
- }
|
|
- }
|
|
+ if ((count($hostparts) > 2) &&
|
|
+ (strlen($hostparts[count($hostparts) - 2]) > 3) && # try to skip .co.uk, .com.au
|
|
+ (strcmp($hostparts[0], 'www') != 0))
|
|
+ {
|
|
+ return $this->nicknamize($hostparts[0]);
|
|
+ } else {
|
|
+ # Do the whole hostname
|
|
+ return $this->nicknamize($parts['host']);
|
|
+ }
|
|
+ } else {
|
|
+ if (array_key_exists('path', $parts)) {
|
|
+ # Strip starting, ending slashes
|
|
+ $path = preg_replace('@/$@', '', $parts['path']);
|
|
+ $path = preg_replace('@^/@', '', $path);
|
|
+ if (strpos($path, '/') === false) {
|
|
+ return $this->nicknamize($path);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 406
|
|
- return NULL;
|
|
- }
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 409
|
|
- function xri_to_nickname($xri) {
|
|
- $base = $this->xri_base($xri);
|
|
+ function xri_to_nickname($xri) {
|
|
+ $base = $this->xri_base($xri);
|
|
hunk ./actions/finishopenidlogin.php 412
|
|
- if (!$base) {
|
|
- return NULL;
|
|
- } else {
|
|
- # =evan.prodromou
|
|
- # or @gratis*evan.prodromou
|
|
- $parts = explode('*', substr($base, 1));
|
|
- return $this->nicknamize(array_pop($parts));
|
|
- }
|
|
- }
|
|
+ if (!$base) {
|
|
+ return NULL;
|
|
+ } else {
|
|
+ # =evan.prodromou
|
|
+ # or @gratis*evan.prodromou
|
|
+ $parts = explode('*', substr($base, 1));
|
|
+ return $this->nicknamize(array_pop($parts));
|
|
+ }
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 422
|
|
- function xri_base($xri) {
|
|
- if (substr($xri, 0, 6) == 'xri://') {
|
|
- return substr($xri, 6);
|
|
- } else {
|
|
- return $xri;
|
|
- }
|
|
- }
|
|
+ function xri_base($xri) {
|
|
+ if (substr($xri, 0, 6) == 'xri://') {
|
|
+ return substr($xri, 6);
|
|
+ } else {
|
|
+ return $xri;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/finishopenidlogin.php 430
|
|
- # Given a string, try to make it work as a nickname
|
|
+ # Given a string, try to make it work as a nickname
|
|
hunk ./actions/finishopenidlogin.php 432
|
|
- function nicknamize($str) {
|
|
- $str = preg_replace('/\W/', '', $str);
|
|
- return strtolower($str);
|
|
- }
|
|
+ function nicknamize($str) {
|
|
+ $str = preg_replace('/\W/', '', $str);
|
|
+ return strtolower($str);
|
|
+ }
|
|
hunk ./actions/finishremotesubscribe.php 26
|
|
- function handle($args) {
|
|
+ function handle($args) {
|
|
hunk ./actions/finishremotesubscribe.php 28
|
|
- parent::handle($args);
|
|
+ parent::handle($args);
|
|
hunk ./actions/finishremotesubscribe.php 30
|
|
- if (common_logged_in()) {
|
|
- common_user_error(_('You can use the local subscription!'));
|
|
- return;
|
|
- }
|
|
+ if (common_logged_in()) {
|
|
+ common_user_error(_('You can use the local subscription!'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/finishremotesubscribe.php 35
|
|
- $omb = $_SESSION['oauth_authorization_request'];
|
|
+ $omb = $_SESSION['oauth_authorization_request'];
|
|
hunk ./actions/finishremotesubscribe.php 37
|
|
- if (!$omb) {
|
|
- common_user_error(_('Not expecting this response!'));
|
|
- return;
|
|
- }
|
|
+ if (!$omb) {
|
|
+ common_user_error(_('Not expecting this response!'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/finishremotesubscribe.php 42
|
|
- common_debug('stored request: '.print_r($omb,true), __FILE__);
|
|
+ common_debug('stored request: '.print_r($omb,true), __FILE__);
|
|
hunk ./actions/finishremotesubscribe.php 44
|
|
- common_remove_magic_from_request();
|
|
- $req = OAuthRequest::from_request();
|
|
+ common_remove_magic_from_request();
|
|
+ $req = OAuthRequest::from_request();
|
|
hunk ./actions/finishremotesubscribe.php 47
|
|
- $token = $req->get_parameter('oauth_token');
|
|
+ $token = $req->get_parameter('oauth_token');
|
|
hunk ./actions/finishremotesubscribe.php 49
|
|
- # I think this is the success metric
|
|
+ # I think this is the success metric
|
|
hunk ./actions/finishremotesubscribe.php 51
|
|
- if ($token != $omb['token']) {
|
|
- common_user_error(_('Not authorized.'));
|
|
- return;
|
|
- }
|
|
+ if ($token != $omb['token']) {
|
|
+ common_user_error(_('Not authorized.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/finishremotesubscribe.php 56
|
|
- $version = $req->get_parameter('omb_version');
|
|
+ $version = $req->get_parameter('omb_version');
|
|
hunk ./actions/finishremotesubscribe.php 58
|
|
- if ($version != OMB_VERSION_01) {
|
|
- common_user_error(_('Unknown version of OMB protocol.'));
|
|
- return;
|
|
- }
|
|
+ if ($version != OMB_VERSION_01) {
|
|
+ common_user_error(_('Unknown version of OMB protocol.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/finishremotesubscribe.php 63
|
|
- $nickname = $req->get_parameter('omb_listener_nickname');
|
|
+ $nickname = $req->get_parameter('omb_listener_nickname');
|
|
hunk ./actions/finishremotesubscribe.php 65
|
|
- if (!$nickname) {
|
|
- common_user_error(_('No nickname provided by remote server.'));
|
|
- return;
|
|
- }
|
|
+ if (!$nickname) {
|
|
+ common_user_error(_('No nickname provided by remote server.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/finishremotesubscribe.php 70
|
|
- $profile_url = $req->get_parameter('omb_listener_profile');
|
|
+ $profile_url = $req->get_parameter('omb_listener_profile');
|
|
hunk ./actions/finishremotesubscribe.php 72
|
|
- if (!$profile_url) {
|
|
- common_user_error(_('No profile URL returned by server.'));
|
|
- return;
|
|
- }
|
|
+ if (!$profile_url) {
|
|
+ common_user_error(_('No profile URL returned by server.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/finishremotesubscribe.php 77
|
|
- if (!Validate::uri($profile_url, array('allowed_schemes' => array('http', 'https')))) {
|
|
- common_user_error(_('Invalid profile URL returned by server.'));
|
|
- return;
|
|
- }
|
|
+ if (!Validate::uri($profile_url, array('allowed_schemes' => array('http', 'https')))) {
|
|
+ common_user_error(_('Invalid profile URL returned by server.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/finishremotesubscribe.php 82
|
|
- if ($profile_url == common_local_url('showstream', array('nickname' => $nickname))) {
|
|
- common_user_error(_('You can use the local subscription!'));
|
|
- return;
|
|
- }
|
|
+ if ($profile_url == common_local_url('showstream', array('nickname' => $nickname))) {
|
|
+ common_user_error(_('You can use the local subscription!'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/finishremotesubscribe.php 87
|
|
- common_debug('listenee: "'.$omb['listenee'].'"', __FILE__);
|
|
+ common_debug('listenee: "'.$omb['listenee'].'"', __FILE__);
|
|
hunk ./actions/finishremotesubscribe.php 89
|
|
- $user = User::staticGet('nickname', $omb['listenee']);
|
|
+ $user = User::staticGet('nickname', $omb['listenee']);
|
|
hunk ./actions/finishremotesubscribe.php 91
|
|
- if (!$user) {
|
|
- common_user_error(_('User being listened to doesn\'t exist.'));
|
|
- return;
|
|
- }
|
|
+ if (!$user) {
|
|
+ common_user_error(_('User being listened to doesn\'t exist.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/finishremotesubscribe.php 96
|
|
- $other = User::staticGet('uri', $omb['listener']);
|
|
+ $other = User::staticGet('uri', $omb['listener']);
|
|
hunk ./actions/finishremotesubscribe.php 98
|
|
- if ($other) {
|
|
- common_user_error(_('You can use the local subscription!'));
|
|
- return;
|
|
- }
|
|
+ if ($other) {
|
|
+ common_user_error(_('You can use the local subscription!'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/finishremotesubscribe.php 103
|
|
- $fullname = $req->get_parameter('omb_listener_fullname');
|
|
- $homepage = $req->get_parameter('omb_listener_homepage');
|
|
- $bio = $req->get_parameter('omb_listener_bio');
|
|
- $location = $req->get_parameter('omb_listener_location');
|
|
- $avatar_url = $req->get_parameter('omb_listener_avatar');
|
|
+ $fullname = $req->get_parameter('omb_listener_fullname');
|
|
+ $homepage = $req->get_parameter('omb_listener_homepage');
|
|
+ $bio = $req->get_parameter('omb_listener_bio');
|
|
+ $location = $req->get_parameter('omb_listener_location');
|
|
+ $avatar_url = $req->get_parameter('omb_listener_avatar');
|
|
hunk ./actions/finishremotesubscribe.php 109
|
|
- list($newtok, $newsecret) = $this->access_token($omb);
|
|
+ list($newtok, $newsecret) = $this->access_token($omb);
|
|
hunk ./actions/finishremotesubscribe.php 111
|
|
- if (!$newtok || !$newsecret) {
|
|
- common_user_error(_('Couldn\'t convert request tokens to access tokens.'));
|
|
- return;
|
|
- }
|
|
+ if (!$newtok || !$newsecret) {
|
|
+ common_user_error(_('Couldn\'t convert request tokens to access tokens.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/finishremotesubscribe.php 116
|
|
- # XXX: possible attack point; subscribe and return someone else's profile URI
|
|
+ # XXX: possible attack point; subscribe and return someone else's profile URI
|
|
hunk ./actions/finishremotesubscribe.php 118
|
|
- $remote = Remote_profile::staticGet('uri', $omb['listener']);
|
|
+ $remote = Remote_profile::staticGet('uri', $omb['listener']);
|
|
hunk ./actions/finishremotesubscribe.php 120
|
|
- if ($remote) {
|
|
- $exists = true;
|
|
- $profile = Profile::staticGet($remote->id);
|
|
- $orig_remote = clone($remote);
|
|
- $orig_profile = clone($profile);
|
|
- # XXX: compare current postNotice and updateProfile URLs to the ones
|
|
- # stored in the DB to avoid (possibly...) above attack
|
|
- } else {
|
|
- $exists = false;
|
|
- $remote = new Remote_profile();
|
|
- $remote->uri = $omb['listener'];
|
|
- $profile = new Profile();
|
|
- }
|
|
+ if ($remote) {
|
|
+ $exists = true;
|
|
+ $profile = Profile::staticGet($remote->id);
|
|
+ $orig_remote = clone($remote);
|
|
+ $orig_profile = clone($profile);
|
|
+ # XXX: compare current postNotice and updateProfile URLs to the ones
|
|
+ # stored in the DB to avoid (possibly...) above attack
|
|
+ } else {
|
|
+ $exists = false;
|
|
+ $remote = new Remote_profile();
|
|
+ $remote->uri = $omb['listener'];
|
|
+ $profile = new Profile();
|
|
+ }
|
|
hunk ./actions/finishremotesubscribe.php 134
|
|
- $profile->nickname = $nickname;
|
|
- $profile->profileurl = $profile_url;
|
|
+ $profile->nickname = $nickname;
|
|
+ $profile->profileurl = $profile_url;
|
|
hunk ./actions/finishremotesubscribe.php 137
|
|
- if ($fullname) {
|
|
- $profile->fullname = $fullname;
|
|
- }
|
|
- if ($homepage) {
|
|
- $profile->homepage = $homepage;
|
|
- }
|
|
- if ($bio) {
|
|
- $profile->bio = $bio;
|
|
- }
|
|
- if ($location) {
|
|
- $profile->location = $location;
|
|
- }
|
|
+ if ($fullname) {
|
|
+ $profile->fullname = $fullname;
|
|
+ }
|
|
+ if ($homepage) {
|
|
+ $profile->homepage = $homepage;
|
|
+ }
|
|
+ if ($bio) {
|
|
+ $profile->bio = $bio;
|
|
+ }
|
|
+ if ($location) {
|
|
+ $profile->location = $location;
|
|
+ }
|
|
hunk ./actions/finishremotesubscribe.php 150
|
|
- if ($exists) {
|
|
- $profile->update($orig_profile);
|
|
- } else {
|
|
- $profile->created = DB_DataObject_Cast::dateTime(); # current time
|
|
- $id = $profile->insert();
|
|
- if (!$id) {
|
|
- common_server_error(_('Error inserting new profile'));
|
|
- return;
|
|
- }
|
|
- $remote->id = $id;
|
|
- }
|
|
+ if ($exists) {
|
|
+ $profile->update($orig_profile);
|
|
+ } else {
|
|
+ $profile->created = DB_DataObject_Cast::dateTime(); # current time
|
|
+ $id = $profile->insert();
|
|
+ if (!$id) {
|
|
+ common_server_error(_('Error inserting new profile'));
|
|
+ return;
|
|
+ }
|
|
+ $remote->id = $id;
|
|
+ }
|
|
hunk ./actions/finishremotesubscribe.php 162
|
|
- if ($avatar_url) {
|
|
- if (!$this->add_avatar($profile, $avatar_url)) {
|
|
- common_server_error(_('Error inserting avatar'));
|
|
- return;
|
|
- }
|
|
- }
|
|
+ if ($avatar_url) {
|
|
+ if (!$this->add_avatar($profile, $avatar_url)) {
|
|
+ common_server_error(_('Error inserting avatar'));
|
|
+ return;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/finishremotesubscribe.php 169
|
|
- $remote->postnoticeurl = $omb['post_notice_url'];
|
|
- $remote->updateprofileurl = $omb['update_profile_url'];
|
|
+ $remote->postnoticeurl = $omb['post_notice_url'];
|
|
+ $remote->updateprofileurl = $omb['update_profile_url'];
|
|
hunk ./actions/finishremotesubscribe.php 172
|
|
- if ($exists) {
|
|
- if (!$remote->update($orig_remote)) {
|
|
- common_server_error(_('Error updating remote profile'));
|
|
- return;
|
|
- }
|
|
- } else {
|
|
- $remote->created = DB_DataObject_Cast::dateTime(); # current time
|
|
- if (!$remote->insert()) {
|
|
- common_server_error(_('Error inserting remote profile'));
|
|
- return;
|
|
- }
|
|
- }
|
|
+ if ($exists) {
|
|
+ if (!$remote->update($orig_remote)) {
|
|
+ common_server_error(_('Error updating remote profile'));
|
|
+ return;
|
|
+ }
|
|
+ } else {
|
|
+ $remote->created = DB_DataObject_Cast::dateTime(); # current time
|
|
+ if (!$remote->insert()) {
|
|
+ common_server_error(_('Error inserting remote profile'));
|
|
+ return;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/finishremotesubscribe.php 190
|
|
- $sub = new Subscription();
|
|
+ $sub = new Subscription();
|
|
hunk ./actions/finishremotesubscribe.php 192
|
|
- $sub->subscriber = $remote->id;
|
|
- $sub->subscribed = $user->id;
|
|
+ $sub->subscriber = $remote->id;
|
|
+ $sub->subscribed = $user->id;
|
|
hunk ./actions/finishremotesubscribe.php 205
|
|
- $sub->token = $newtok;
|
|
- $sub->secret = $newsecret;
|
|
+ $sub->token = $newtok;
|
|
+ $sub->secret = $newsecret;
|
|
hunk ./actions/finishremotesubscribe.php 214
|
|
- if (!$result) {
|
|
+ if (!$result) {
|
|
hunk ./actions/finishremotesubscribe.php 216
|
|
- common_user_error(_('Couldn\'t insert new subscription.'));
|
|
- return;
|
|
- }
|
|
+ common_user_error(_('Couldn\'t insert new subscription.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/finishremotesubscribe.php 220
|
|
- # Notify user, if necessary
|
|
+ # Notify user, if necessary
|
|
hunk ./actions/finishremotesubscribe.php 222
|
|
- mail_subscribe_notify_profile($user, $profile);
|
|
+ mail_subscribe_notify_profile($user, $profile);
|
|
hunk ./actions/finishremotesubscribe.php 224
|
|
- # Clear the data
|
|
- unset($_SESSION['oauth_authorization_request']);
|
|
+ # Clear the data
|
|
+ unset($_SESSION['oauth_authorization_request']);
|
|
hunk ./actions/finishremotesubscribe.php 227
|
|
- # If we show subscriptions in reverse chron order, this should
|
|
- # show up close to the top of the page
|
|
+ # If we show subscriptions in reverse chron order, this should
|
|
+ # show up close to the top of the page
|
|
hunk ./actions/finishremotesubscribe.php 230
|
|
- common_redirect(common_local_url('subscribers', array('nickname' =>
|
|
- $user->nickname)));
|
|
- }
|
|
+ common_redirect(common_local_url('subscribers', array('nickname' =>
|
|
+ $user->nickname)));
|
|
+ }
|
|
hunk ./actions/finishremotesubscribe.php 234
|
|
- function add_avatar($profile, $url) {
|
|
- $temp_filename = tempnam(sys_get_temp_dir(), 'listener_avatar');
|
|
- copy($url, $temp_filename);
|
|
- return $profile->setOriginal($temp_filename);
|
|
- }
|
|
+ function add_avatar($profile, $url) {
|
|
+ $temp_filename = tempnam(sys_get_temp_dir(), 'listener_avatar');
|
|
+ copy($url, $temp_filename);
|
|
+ return $profile->setOriginal($temp_filename);
|
|
+ }
|
|
hunk ./actions/finishremotesubscribe.php 240
|
|
- function access_token($omb) {
|
|
+ function access_token($omb) {
|
|
hunk ./actions/finishremotesubscribe.php 242
|
|
- common_debug('starting request for access token', __FILE__);
|
|
+ common_debug('starting request for access token', __FILE__);
|
|
hunk ./actions/finishremotesubscribe.php 244
|
|
- $con = omb_oauth_consumer();
|
|
- $tok = new OAuthToken($omb['token'], $omb['secret']);
|
|
+ $con = omb_oauth_consumer();
|
|
+ $tok = new OAuthToken($omb['token'], $omb['secret']);
|
|
hunk ./actions/finishremotesubscribe.php 247
|
|
- common_debug('using request token "'.$tok.'"', __FILE__);
|
|
+ common_debug('using request token "'.$tok.'"', __FILE__);
|
|
hunk ./actions/finishremotesubscribe.php 249
|
|
- $url = $omb['access_token_url'];
|
|
+ $url = $omb['access_token_url'];
|
|
hunk ./actions/finishremotesubscribe.php 251
|
|
- common_debug('using access token url "'.$url.'"', __FILE__);
|
|
+ common_debug('using access token url "'.$url.'"', __FILE__);
|
|
hunk ./actions/finishremotesubscribe.php 253
|
|
- # XXX: Is this the right thing to do? Strip off GET params and make them
|
|
- # POST params? Seems wrong to me.
|
|
+ # XXX: Is this the right thing to do? Strip off GET params and make them
|
|
+ # POST params? Seems wrong to me.
|
|
hunk ./actions/finishremotesubscribe.php 256
|
|
- $parsed = parse_url($url);
|
|
- $params = array();
|
|
- parse_str($parsed['query'], $params);
|
|
+ $parsed = parse_url($url);
|
|
+ $params = array();
|
|
+ parse_str($parsed['query'], $params);
|
|
hunk ./actions/finishremotesubscribe.php 260
|
|
- $req = OAuthRequest::from_consumer_and_token($con, $tok, "POST", $url, $params);
|
|
+ $req = OAuthRequest::from_consumer_and_token($con, $tok, "POST", $url, $params);
|
|
hunk ./actions/finishremotesubscribe.php 262
|
|
- $req->set_parameter('omb_version', OMB_VERSION_01);
|
|
+ $req->set_parameter('omb_version', OMB_VERSION_01);
|
|
hunk ./actions/finishremotesubscribe.php 264
|
|
- # XXX: test to see if endpoint accepts this signature method
|
|
+ # XXX: test to see if endpoint accepts this signature method
|
|
hunk ./actions/finishremotesubscribe.php 266
|
|
- $req->sign_request(omb_hmac_sha1(), $con, $tok);
|
|
+ $req->sign_request(omb_hmac_sha1(), $con, $tok);
|
|
hunk ./actions/finishremotesubscribe.php 268
|
|
- # We re-use this tool's fetcher, since it's pretty good
|
|
+ # We re-use this tool's fetcher, since it's pretty good
|
|
hunk ./actions/finishremotesubscribe.php 270
|
|
- common_debug('posting to access token url "'.$req->get_normalized_http_url().'"', __FILE__);
|
|
- common_debug('posting request data "'.$req->to_postdata().'"', __FILE__);
|
|
+ common_debug('posting to access token url "'.$req->get_normalized_http_url().'"', __FILE__);
|
|
+ common_debug('posting request data "'.$req->to_postdata().'"', __FILE__);
|
|
hunk ./actions/finishremotesubscribe.php 273
|
|
- $fetcher = Auth_Yadis_Yadis::getHTTPFetcher();
|
|
- $result = $fetcher->post($req->get_normalized_http_url(),
|
|
- $req->to_postdata(),
|
|
+ $fetcher = Auth_Yadis_Yadis::getHTTPFetcher();
|
|
+ $result = $fetcher->post($req->get_normalized_http_url(),
|
|
+ $req->to_postdata(),
|
|
hunk ./actions/finishremotesubscribe.php 278
|
|
- common_debug('got result: "'.print_r($result,TRUE).'"', __FILE__);
|
|
+ common_debug('got result: "'.print_r($result,TRUE).'"', __FILE__);
|
|
hunk ./actions/finishremotesubscribe.php 280
|
|
- if ($result->status != 200) {
|
|
- return NULL;
|
|
- }
|
|
+ if ($result->status != 200) {
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./actions/finishremotesubscribe.php 284
|
|
- parse_str($result->body, $return);
|
|
+ parse_str($result->body, $return);
|
|
hunk ./actions/finishremotesubscribe.php 286
|
|
- return array($return['oauth_token'], $return['oauth_token_secret']);
|
|
- }
|
|
+ return array($return['oauth_token'], $return['oauth_token_secret']);
|
|
+ }
|
|
hunk ./actions/foaf.php 28
|
|
- function is_readonly() {
|
|
- return true;
|
|
- }
|
|
+ function is_readonly() {
|
|
+ return true;
|
|
+ }
|
|
hunk ./actions/foaf.php 32
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/foaf.php 35
|
|
- $nickname = $this->trimmed('nickname');
|
|
+ $nickname = $this->trimmed('nickname');
|
|
hunk ./actions/foaf.php 37
|
|
- $user = User::staticGet('nickname', $nickname);
|
|
+ $user = User::staticGet('nickname', $nickname);
|
|
hunk ./actions/foaf.php 39
|
|
- if (!$user) {
|
|
- common_user_error(_('No such user.'), 404);
|
|
- return;
|
|
- }
|
|
+ if (!$user) {
|
|
+ common_user_error(_('No such user.'), 404);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/foaf.php 44
|
|
- $profile = $user->getProfile();
|
|
+ $profile = $user->getProfile();
|
|
hunk ./actions/foaf.php 46
|
|
- if (!$profile) {
|
|
- common_server_error(_('User has no profile.'), 500);
|
|
- return;
|
|
- }
|
|
+ if (!$profile) {
|
|
+ common_server_error(_('User has no profile.'), 500);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/foaf.php 51
|
|
- header('Content-Type: application/rdf+xml');
|
|
+ header('Content-Type: application/rdf+xml');
|
|
hunk ./actions/foaf.php 53
|
|
- common_start_xml();
|
|
- common_element_start('rdf:RDF', array('xmlns:rdf' =>
|
|
- 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',
|
|
- 'xmlns:rdfs' =>
|
|
- 'http://www.w3.org/2000/01/rdf-schema#',
|
|
- 'xmlns:geo' =>
|
|
- 'http://www.w3.org/2003/01/geo/wgs84_pos#',
|
|
- 'xmlns' => 'http://xmlns.com/foaf/0.1/'));
|
|
+ common_start_xml();
|
|
+ common_element_start('rdf:RDF', array('xmlns:rdf' =>
|
|
+ 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',
|
|
+ 'xmlns:rdfs' =>
|
|
+ 'http://www.w3.org/2000/01/rdf-schema#',
|
|
+ 'xmlns:geo' =>
|
|
+ 'http://www.w3.org/2003/01/geo/wgs84_pos#',
|
|
+ 'xmlns' => 'http://xmlns.com/foaf/0.1/'));
|
|
hunk ./actions/foaf.php 62
|
|
- # This is the document about the user
|
|
+ # This is the document about the user
|
|
hunk ./actions/foaf.php 64
|
|
- $this->show_ppd('', $user->uri);
|
|
+ $this->show_ppd('', $user->uri);
|
|
hunk ./actions/foaf.php 66
|
|
- # XXX: might not be a person
|
|
- common_element_start('Person', array('rdf:about' =>
|
|
- $user->uri));
|
|
- common_element('mbox_sha1sum', NULL, sha1('mailto:' . $user->email));
|
|
- if ($profile->fullname) {
|
|
- common_element('name', NULL, $profile->fullname);
|
|
- }
|
|
- if ($profile->homepage) {
|
|
- common_element('homepage', array('rdf:resource' => $profile->homepage));
|
|
- }
|
|
- if ($profile->bio) {
|
|
- common_element('rdfs:comment', NULL, $profile->bio);
|
|
- }
|
|
- # XXX: more structured location data
|
|
- if ($profile->location) {
|
|
- common_element_start('based_near');
|
|
- common_element_start('geo:SpatialThing');
|
|
- common_element('name', NULL, $profile->location);
|
|
- common_element_end('geo:SpatialThing');
|
|
- common_element_end('based_near');
|
|
- }
|
|
+ # XXX: might not be a person
|
|
+ common_element_start('Person', array('rdf:about' =>
|
|
+ $user->uri));
|
|
+ common_element('mbox_sha1sum', NULL, sha1('mailto:' . $user->email));
|
|
+ if ($profile->fullname) {
|
|
+ common_element('name', NULL, $profile->fullname);
|
|
+ }
|
|
+ if ($profile->homepage) {
|
|
+ common_element('homepage', array('rdf:resource' => $profile->homepage));
|
|
+ }
|
|
+ if ($profile->bio) {
|
|
+ common_element('rdfs:comment', NULL, $profile->bio);
|
|
+ }
|
|
+ # XXX: more structured location data
|
|
+ if ($profile->location) {
|
|
+ common_element_start('based_near');
|
|
+ common_element_start('geo:SpatialThing');
|
|
+ common_element('name', NULL, $profile->location);
|
|
+ common_element_end('geo:SpatialThing');
|
|
+ common_element_end('based_near');
|
|
+ }
|
|
hunk ./actions/foaf.php 88
|
|
- $this->show_microblogging_account($profile, common_root_url());
|
|
+ $this->show_microblogging_account($profile, common_root_url());
|
|
hunk ./actions/foaf.php 90
|
|
- $avatar = $profile->getOriginalAvatar();
|
|
+ $avatar = $profile->getOriginalAvatar();
|
|
hunk ./actions/foaf.php 92
|
|
- if ($avatar) {
|
|
- common_element_start('img');
|
|
- common_element_start('Image', array('rdf:about' => $avatar->url));
|
|
- foreach (array(AVATAR_PROFILE_SIZE, AVATAR_STREAM_SIZE, AVATAR_MINI_SIZE) as $size) {
|
|
- $scaled = $profile->getAvatar($size);
|
|
- if (!$scaled->original) { # sometimes the original has one of our scaled sizes
|
|
- common_element_start('thumbnail');
|
|
- common_element('Image', array('rdf:about' => $scaled->url));
|
|
- common_element_end('thumbnail');
|
|
- }
|
|
- }
|
|
- common_element_end('Image');
|
|
- common_element_end('img');
|
|
- }
|
|
+ if ($avatar) {
|
|
+ common_element_start('img');
|
|
+ common_element_start('Image', array('rdf:about' => $avatar->url));
|
|
+ foreach (array(AVATAR_PROFILE_SIZE, AVATAR_STREAM_SIZE, AVATAR_MINI_SIZE) as $size) {
|
|
+ $scaled = $profile->getAvatar($size);
|
|
+ if (!$scaled->original) { # sometimes the original has one of our scaled sizes
|
|
+ common_element_start('thumbnail');
|
|
+ common_element('Image', array('rdf:about' => $scaled->url));
|
|
+ common_element_end('thumbnail');
|
|
+ }
|
|
+ }
|
|
+ common_element_end('Image');
|
|
+ common_element_end('img');
|
|
+ }
|
|
hunk ./actions/foaf.php 107
|
|
- # Get people user is subscribed to
|
|
+ # Get people user is subscribed to
|
|
hunk ./actions/foaf.php 109
|
|
- $person = array();
|
|
+ $person = array();
|
|
hunk ./actions/foaf.php 111
|
|
- $sub = new Subscription();
|
|
- $sub->subscriber = $profile->id;
|
|
- $sub->whereAdd('subscriber != subscribed');
|
|
-
|
|
- if ($sub->find()) {
|
|
- while ($sub->fetch()) {
|
|
- if ($sub->token) {
|
|
- $other = Remote_profile::staticGet('id', $sub->subscribed);
|
|
- } else {
|
|
- $other = User::staticGet('id', $sub->subscribed);
|
|
- }
|
|
- if (!$other) {
|
|
- common_debug('Got a bad subscription: '.print_r($sub,TRUE));
|
|
- continue;
|
|
- }
|
|
- common_element('knows', array('rdf:resource' => $other->uri));
|
|
- $person[$other->uri] = array(LISTENEE, $other);
|
|
- }
|
|
- }
|
|
+ $sub = new Subscription();
|
|
+ $sub->subscriber = $profile->id;
|
|
+ $sub->whereAdd('subscriber != subscribed');
|
|
+
|
|
+ if ($sub->find()) {
|
|
+ while ($sub->fetch()) {
|
|
+ if ($sub->token) {
|
|
+ $other = Remote_profile::staticGet('id', $sub->subscribed);
|
|
+ } else {
|
|
+ $other = User::staticGet('id', $sub->subscribed);
|
|
+ }
|
|
+ if (!$other) {
|
|
+ common_debug('Got a bad subscription: '.print_r($sub,TRUE));
|
|
+ continue;
|
|
+ }
|
|
+ common_element('knows', array('rdf:resource' => $other->uri));
|
|
+ $person[$other->uri] = array(LISTENEE, $other);
|
|
+ }
|
|
+ }
|
|
hunk ./actions/foaf.php 131
|
|
- # Get people who subscribe to user
|
|
+ # Get people who subscribe to user
|
|
hunk ./actions/foaf.php 133
|
|
- $sub = new Subscription();
|
|
- $sub->subscribed = $profile->id;
|
|
- $sub->whereAdd('subscriber != subscribed');
|
|
+ $sub = new Subscription();
|
|
+ $sub->subscribed = $profile->id;
|
|
+ $sub->whereAdd('subscriber != subscribed');
|
|
hunk ./actions/foaf.php 137
|
|
- if ($sub->find()) {
|
|
- while ($sub->fetch()) {
|
|
- if ($sub->token) {
|
|
- $other = Remote_profile::staticGet('id', $sub->subscriber);
|
|
- } else {
|
|
- $other = User::staticGet('id', $sub->subscriber);
|
|
- }
|
|
- if (!$other) {
|
|
- common_debug('Got a bad subscription: '.print_r($sub,TRUE));
|
|
- continue;
|
|
- }
|
|
- if (array_key_exists($other->uri, $person)) {
|
|
- $person[$other->uri][0] = BOTH;
|
|
- } else {
|
|
- $person[$other->uri] = array(LISTENER, $other);
|
|
- }
|
|
- }
|
|
- }
|
|
+ if ($sub->find()) {
|
|
+ while ($sub->fetch()) {
|
|
+ if ($sub->token) {
|
|
+ $other = Remote_profile::staticGet('id', $sub->subscriber);
|
|
+ } else {
|
|
+ $other = User::staticGet('id', $sub->subscriber);
|
|
+ }
|
|
+ if (!$other) {
|
|
+ common_debug('Got a bad subscription: '.print_r($sub,TRUE));
|
|
+ continue;
|
|
+ }
|
|
+ if (array_key_exists($other->uri, $person)) {
|
|
+ $person[$other->uri][0] = BOTH;
|
|
+ } else {
|
|
+ $person[$other->uri] = array(LISTENER, $other);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
hunk ./actions/foaf.php 156
|
|
- common_element_end('Person');
|
|
+ common_element_end('Person');
|
|
hunk ./actions/foaf.php 158
|
|
- foreach ($person as $uri => $p) {
|
|
- $foaf_url = NULL;
|
|
- if ($p[1] instanceof User) {
|
|
- $foaf_url = common_local_url('foaf', array('nickname' => $p[1]->nickname));
|
|
- }
|
|
- $profile = Profile::staticGet($p[1]->id);
|
|
- common_element_start('Person', array('rdf:about' => $uri));
|
|
- if ($p[0] == LISTENER || $p[0] == BOTH) {
|
|
- common_element('knows', array('rdf:resource' => $user->uri));
|
|
- }
|
|
- $this->show_microblogging_account($profile, ($p[1] instanceof User) ?
|
|
- common_root_url() : NULL);
|
|
- if ($foaf_url) {
|
|
- common_element('rdfs:seeAlso', array('rdf:resource' => $foaf_url));
|
|
- }
|
|
- common_element_end('Person');
|
|
- if ($foaf_url) {
|
|
- $this->show_ppd($foaf_url, $uri);
|
|
- }
|
|
- }
|
|
+ foreach ($person as $uri => $p) {
|
|
+ $foaf_url = NULL;
|
|
+ if ($p[1] instanceof User) {
|
|
+ $foaf_url = common_local_url('foaf', array('nickname' => $p[1]->nickname));
|
|
+ }
|
|
+ $profile = Profile::staticGet($p[1]->id);
|
|
+ common_element_start('Person', array('rdf:about' => $uri));
|
|
+ if ($p[0] == LISTENER || $p[0] == BOTH) {
|
|
+ common_element('knows', array('rdf:resource' => $user->uri));
|
|
+ }
|
|
+ $this->show_microblogging_account($profile, ($p[1] instanceof User) ?
|
|
+ common_root_url() : NULL);
|
|
+ if ($foaf_url) {
|
|
+ common_element('rdfs:seeAlso', array('rdf:resource' => $foaf_url));
|
|
+ }
|
|
+ common_element_end('Person');
|
|
+ if ($foaf_url) {
|
|
+ $this->show_ppd($foaf_url, $uri);
|
|
+ }
|
|
+ }
|
|
hunk ./actions/foaf.php 179
|
|
- common_element_end('rdf:RDF');
|
|
- }
|
|
+ common_element_end('rdf:RDF');
|
|
+ }
|
|
hunk ./actions/foaf.php 182
|
|
- function show_ppd($foaf_url, $person_uri) {
|
|
- common_element_start('PersonalProfileDocument', array('rdf:about' => $foaf_url));
|
|
- common_element('maker', array('rdf:resource' => $person_uri));
|
|
- common_element('primaryTopic', array('rdf:resource' => $person_uri));
|
|
- common_element_end('PersonalProfileDocument');
|
|
- }
|
|
+ function show_ppd($foaf_url, $person_uri) {
|
|
+ common_element_start('PersonalProfileDocument', array('rdf:about' => $foaf_url));
|
|
+ common_element('maker', array('rdf:resource' => $person_uri));
|
|
+ common_element('primaryTopic', array('rdf:resource' => $person_uri));
|
|
+ common_element_end('PersonalProfileDocument');
|
|
+ }
|
|
hunk ./actions/foaf.php 189
|
|
- function show_microblogging_account($profile, $service=NULL) {
|
|
- # Their account
|
|
- common_element_start('holdsAccount');
|
|
- common_element_start('OnlineAccount');
|
|
- if ($service) {
|
|
- common_element('accountServiceHomepage', array('rdf:resource' =>
|
|
- $service));
|
|
- }
|
|
- common_element('accountName', NULL, $profile->nickname);
|
|
- common_element('homepage', array('rdf:resource' => $profile->profileurl));
|
|
- common_element_end('OnlineAccount');
|
|
- common_element_end('holdsAccount');
|
|
- }
|
|
+ function show_microblogging_account($profile, $service=NULL) {
|
|
+ # Their account
|
|
+ common_element_start('holdsAccount');
|
|
+ common_element_start('OnlineAccount');
|
|
+ if ($service) {
|
|
+ common_element('accountServiceHomepage', array('rdf:resource' =>
|
|
+ $service));
|
|
+ }
|
|
+ common_element('accountName', NULL, $profile->nickname);
|
|
+ common_element('homepage', array('rdf:resource' => $profile->profileurl));
|
|
+ common_element_end('OnlineAccount');
|
|
+ common_element_end('holdsAccount');
|
|
+ }
|
|
hunk ./actions/imsettings.php 27
|
|
- function get_instructions() {
|
|
- return _('You can send and receive notices through Jabber/GTalk [instant messages](%%doc.im%%). Configure your address and settings below.');
|
|
- }
|
|
+ function get_instructions() {
|
|
+ return _('You can send and receive notices through Jabber/GTalk [instant messages](%%doc.im%%). Configure your address and settings below.');
|
|
+ }
|
|
hunk ./actions/imsettings.php 31
|
|
- function show_form($msg=NULL, $success=false) {
|
|
- $user = common_current_user();
|
|
- $this->form_header(_('IM Settings'), $msg, $success);
|
|
- common_element_start('form', array('method' => 'post',
|
|
- 'id' => 'imsettings',
|
|
- 'action' =>
|
|
- common_local_url('imsettings')));
|
|
- common_hidden('token', common_session_token());
|
|
+ function show_form($msg=NULL, $success=false) {
|
|
+ $user = common_current_user();
|
|
+ $this->form_header(_('IM Settings'), $msg, $success);
|
|
+ common_element_start('form', array('method' => 'post',
|
|
+ 'id' => 'imsettings',
|
|
+ 'action' =>
|
|
+ common_local_url('imsettings')));
|
|
+ common_hidden('token', common_session_token());
|
|
hunk ./actions/imsettings.php 40
|
|
- common_element('h2', NULL, _('Address'));
|
|
+ common_element('h2', NULL, _('Address'));
|
|
hunk ./actions/imsettings.php 42
|
|
- if ($user->jabber) {
|
|
- common_element_start('p');
|
|
- common_element('span', 'address confirmed', $user->jabber);
|
|
- common_element('span', 'input_instructions',
|
|
- _('Current confirmed Jabber/GTalk address.'));
|
|
- common_hidden('jabber', $user->jabber);
|
|
- common_element_end('p');
|
|
- common_submit('remove', _('Remove'));
|
|
- } else {
|
|
- $confirm = $this->get_confirmation();
|
|
- if ($confirm) {
|
|
- common_element_start('p');
|
|
- common_element('span', 'address unconfirmed', $confirm->address);
|
|
- common_element('span', 'input_instructions',
|
|
- sprintf(_('Awaiting confirmation on this address. Check your Jabber/GTalk account for a message with further instructions. (Did you add %s to your buddy list?)'), jabber_daemon_address()));
|
|
- common_hidden('jabber', $confirm->address);
|
|
- common_element_end('p');
|
|
- common_submit('cancel', _('Cancel'));
|
|
- } else {
|
|
- common_input('jabber', _('IM Address'),
|
|
- ($this->arg('jabber')) ? $this->arg('jabber') : NULL,
|
|
- sprintf(_('Jabber or GTalk address, like "UserName@example.org". First, make sure to add %s to your buddy list in your IM client or on GTalk.'), jabber_daemon_address()));
|
|
- common_submit('add', _('Add'));
|
|
- }
|
|
- }
|
|
+ if ($user->jabber) {
|
|
+ common_element_start('p');
|
|
+ common_element('span', 'address confirmed', $user->jabber);
|
|
+ common_element('span', 'input_instructions',
|
|
+ _('Current confirmed Jabber/GTalk address.'));
|
|
+ common_hidden('jabber', $user->jabber);
|
|
+ common_element_end('p');
|
|
+ common_submit('remove', _('Remove'));
|
|
+ } else {
|
|
+ $confirm = $this->get_confirmation();
|
|
+ if ($confirm) {
|
|
+ common_element_start('p');
|
|
+ common_element('span', 'address unconfirmed', $confirm->address);
|
|
+ common_element('span', 'input_instructions',
|
|
+ sprintf(_('Awaiting confirmation on this address. Check your Jabber/GTalk account for a message with further instructions. (Did you add %s to your buddy list?)'), jabber_daemon_address()));
|
|
+ common_hidden('jabber', $confirm->address);
|
|
+ common_element_end('p');
|
|
+ common_submit('cancel', _('Cancel'));
|
|
+ } else {
|
|
+ common_input('jabber', _('IM Address'),
|
|
+ ($this->arg('jabber')) ? $this->arg('jabber') : NULL,
|
|
+ sprintf(_('Jabber or GTalk address, like "UserName@example.org". First, make sure to add %s to your buddy list in your IM client or on GTalk.'), jabber_daemon_address()));
|
|
+ common_submit('add', _('Add'));
|
|
+ }
|
|
+ }
|
|
hunk ./actions/imsettings.php 68
|
|
- common_element('h2', NULL, _('Preferences'));
|
|
+ common_element('h2', NULL, _('Preferences'));
|
|
hunk ./actions/imsettings.php 70
|
|
- common_checkbox('jabbernotify',
|
|
- _('Send me notices through Jabber/GTalk.'),
|
|
- $user->jabbernotify);
|
|
- common_checkbox('updatefrompresence',
|
|
- _('Post a notice when my Jabber/GTalk status changes.'),
|
|
- $user->updatefrompresence);
|
|
- common_checkbox('jabberreplies',
|
|
- _('Send me replies through Jabber/GTalk from people I\'m not subscribed to.'),
|
|
- $user->jabberreplies);
|
|
- common_checkbox('jabbermicroid',
|
|
- _('Publish a MicroID for my Jabber/GTalk address.'),
|
|
- $user->jabbermicroid);
|
|
- common_submit('save', _('Save'));
|
|
+ common_checkbox('jabbernotify',
|
|
+ _('Send me notices through Jabber/GTalk.'),
|
|
+ $user->jabbernotify);
|
|
+ common_checkbox('updatefrompresence',
|
|
+ _('Post a notice when my Jabber/GTalk status changes.'),
|
|
+ $user->updatefrompresence);
|
|
+ common_checkbox('jabberreplies',
|
|
+ _('Send me replies through Jabber/GTalk from people I\'m not subscribed to.'),
|
|
+ $user->jabberreplies);
|
|
+ common_checkbox('jabbermicroid',
|
|
+ _('Publish a MicroID for my Jabber/GTalk address.'),
|
|
+ $user->jabbermicroid);
|
|
+ common_submit('save', _('Save'));
|
|
hunk ./actions/imsettings.php 84
|
|
- common_element_end('form');
|
|
- common_show_footer();
|
|
- }
|
|
+ common_element_end('form');
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/imsettings.php 88
|
|
- function get_confirmation() {
|
|
- $user = common_current_user();
|
|
- $confirm = new Confirm_address();
|
|
- $confirm->user_id = $user->id;
|
|
- $confirm->address_type = 'jabber';
|
|
- if ($confirm->find(TRUE)) {
|
|
- return $confirm;
|
|
- } else {
|
|
- return NULL;
|
|
- }
|
|
- }
|
|
+ function get_confirmation() {
|
|
+ $user = common_current_user();
|
|
+ $confirm = new Confirm_address();
|
|
+ $confirm->user_id = $user->id;
|
|
+ $confirm->address_type = 'jabber';
|
|
+ if ($confirm->find(TRUE)) {
|
|
+ return $confirm;
|
|
+ } else {
|
|
+ return NULL;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/imsettings.php 100
|
|
- function handle_post() {
|
|
+ function handle_post() {
|
|
hunk ./actions/imsettings.php 102
|
|
- # CSRF protection
|
|
- $token = $this->trimmed('token');
|
|
- if (!$token || $token != common_session_token()) {
|
|
- $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
- return;
|
|
- }
|
|
+ # CSRF protection
|
|
+ $token = $this->trimmed('token');
|
|
+ if (!$token || $token != common_session_token()) {
|
|
+ $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/imsettings.php 109
|
|
- if ($this->arg('save')) {
|
|
- $this->save_preferences();
|
|
- } else if ($this->arg('add')) {
|
|
- $this->add_address();
|
|
- } else if ($this->arg('cancel')) {
|
|
- $this->cancel_confirmation();
|
|
- } else if ($this->arg('remove')) {
|
|
- $this->remove_address();
|
|
- } else {
|
|
- $this->show_form(_('Unexpected form submission.'));
|
|
- }
|
|
- }
|
|
+ if ($this->arg('save')) {
|
|
+ $this->save_preferences();
|
|
+ } else if ($this->arg('add')) {
|
|
+ $this->add_address();
|
|
+ } else if ($this->arg('cancel')) {
|
|
+ $this->cancel_confirmation();
|
|
+ } else if ($this->arg('remove')) {
|
|
+ $this->remove_address();
|
|
+ } else {
|
|
+ $this->show_form(_('Unexpected form submission.'));
|
|
+ }
|
|
+ }
|
|
hunk ./actions/imsettings.php 122
|
|
- function save_preferences() {
|
|
+ function save_preferences() {
|
|
hunk ./actions/imsettings.php 124
|
|
- $jabbernotify = $this->boolean('jabbernotify');
|
|
- $updatefrompresence = $this->boolean('updatefrompresence');
|
|
- $jabberreplies = $this->boolean('jabberreplies');
|
|
- $jabbermicroid = $this->boolean('jabbermicroid');
|
|
+ $jabbernotify = $this->boolean('jabbernotify');
|
|
+ $updatefrompresence = $this->boolean('updatefrompresence');
|
|
+ $jabberreplies = $this->boolean('jabberreplies');
|
|
+ $jabbermicroid = $this->boolean('jabbermicroid');
|
|
hunk ./actions/imsettings.php 129
|
|
- $user = common_current_user();
|
|
+ $user = common_current_user();
|
|
hunk ./actions/imsettings.php 131
|
|
- assert(!is_null($user)); # should already be checked
|
|
+ assert(!is_null($user)); # should already be checked
|
|
hunk ./actions/imsettings.php 133
|
|
- $user->query('BEGIN');
|
|
+ $user->query('BEGIN');
|
|
hunk ./actions/imsettings.php 135
|
|
- $original = clone($user);
|
|
+ $original = clone($user);
|
|
hunk ./actions/imsettings.php 137
|
|
- $user->jabbernotify = $jabbernotify;
|
|
- $user->updatefrompresence = $updatefrompresence;
|
|
- $user->jabberreplies = $jabberreplies;
|
|
- $user->jabbermicroid = $jabbermicroid;
|
|
+ $user->jabbernotify = $jabbernotify;
|
|
+ $user->updatefrompresence = $updatefrompresence;
|
|
+ $user->jabberreplies = $jabberreplies;
|
|
+ $user->jabbermicroid = $jabbermicroid;
|
|
hunk ./actions/imsettings.php 142
|
|
- $result = $user->update($original);
|
|
+ $result = $user->update($original);
|
|
hunk ./actions/imsettings.php 144
|
|
- if ($result === FALSE) {
|
|
- common_log_db_error($user, 'UPDATE', __FILE__);
|
|
- common_server_error(_('Couldn\'t update user.'));
|
|
- return;
|
|
- }
|
|
+ if ($result === FALSE) {
|
|
+ common_log_db_error($user, 'UPDATE', __FILE__);
|
|
+ common_server_error(_('Couldn\'t update user.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/imsettings.php 150
|
|
- $user->query('COMMIT');
|
|
+ $user->query('COMMIT');
|
|
hunk ./actions/imsettings.php 152
|
|
- $this->show_form(_('Preferences saved.'), true);
|
|
- }
|
|
+ $this->show_form(_('Preferences saved.'), true);
|
|
+ }
|
|
hunk ./actions/imsettings.php 155
|
|
- function add_address() {
|
|
+ function add_address() {
|
|
hunk ./actions/imsettings.php 157
|
|
- $user = common_current_user();
|
|
+ $user = common_current_user();
|
|
hunk ./actions/imsettings.php 159
|
|
- $jabber = $this->trimmed('jabber');
|
|
+ $jabber = $this->trimmed('jabber');
|
|
hunk ./actions/imsettings.php 161
|
|
- # Some validation
|
|
+ # Some validation
|
|
hunk ./actions/imsettings.php 163
|
|
- if (!$jabber) {
|
|
- $this->show_form(_('No Jabber ID.'));
|
|
- return;
|
|
- }
|
|
+ if (!$jabber) {
|
|
+ $this->show_form(_('No Jabber ID.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/imsettings.php 168
|
|
- $jabber = jabber_normalize_jid($jabber);
|
|
+ $jabber = jabber_normalize_jid($jabber);
|
|
hunk ./actions/imsettings.php 170
|
|
- if (!$jabber) {
|
|
- $this->show_form(_('Cannot normalize that Jabber ID'));
|
|
- return;
|
|
- }
|
|
- if (!jabber_valid_base_jid($jabber)) {
|
|
- $this->show_form(_('Not a valid Jabber ID'));
|
|
- return;
|
|
- } else if ($user->jabber == $jabber) {
|
|
- $this->show_form(_('That is already your Jabber ID.'));
|
|
- return;
|
|
- } else if ($this->jabber_exists($jabber)) {
|
|
- $this->show_form(_('Jabber ID already belongs to another user.'));
|
|
- return;
|
|
- }
|
|
+ if (!$jabber) {
|
|
+ $this->show_form(_('Cannot normalize that Jabber ID'));
|
|
+ return;
|
|
+ }
|
|
+ if (!jabber_valid_base_jid($jabber)) {
|
|
+ $this->show_form(_('Not a valid Jabber ID'));
|
|
+ return;
|
|
+ } else if ($user->jabber == $jabber) {
|
|
+ $this->show_form(_('That is already your Jabber ID.'));
|
|
+ return;
|
|
+ } else if ($this->jabber_exists($jabber)) {
|
|
+ $this->show_form(_('Jabber ID already belongs to another user.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/imsettings.php 185
|
|
- $confirm = new Confirm_address();
|
|
- $confirm->address = $jabber;
|
|
- $confirm->address_type = 'jabber';
|
|
- $confirm->user_id = $user->id;
|
|
- $confirm->code = common_confirmation_code(64);
|
|
+ $confirm = new Confirm_address();
|
|
+ $confirm->address = $jabber;
|
|
+ $confirm->address_type = 'jabber';
|
|
+ $confirm->user_id = $user->id;
|
|
+ $confirm->code = common_confirmation_code(64);
|
|
hunk ./actions/imsettings.php 191
|
|
- $result = $confirm->insert();
|
|
+ $result = $confirm->insert();
|
|
hunk ./actions/imsettings.php 193
|
|
- if ($result === FALSE) {
|
|
- common_log_db_error($confirm, 'INSERT', __FILE__);
|
|
- common_server_error(_('Couldn\'t insert confirmation code.'));
|
|
- return;
|
|
- }
|
|
+ if ($result === FALSE) {
|
|
+ common_log_db_error($confirm, 'INSERT', __FILE__);
|
|
+ common_server_error(_('Couldn\'t insert confirmation code.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/imsettings.php 199
|
|
- if (!common_config('queue', 'enabled')) {
|
|
- jabber_confirm_address($confirm->code,
|
|
- $user->nickname,
|
|
- $jabber);
|
|
- }
|
|
+ if (!common_config('queue', 'enabled')) {
|
|
+ jabber_confirm_address($confirm->code,
|
|
+ $user->nickname,
|
|
+ $jabber);
|
|
+ }
|
|
hunk ./actions/imsettings.php 205
|
|
- $msg = sprintf(_('A confirmation code was sent to the IM address you added. You must approve %s for sending messages to you.'), jabber_daemon_address());
|
|
+ $msg = sprintf(_('A confirmation code was sent to the IM address you added. You must approve %s for sending messages to you.'), jabber_daemon_address());
|
|
hunk ./actions/imsettings.php 207
|
|
- $this->show_form($msg, TRUE);
|
|
- }
|
|
+ $this->show_form($msg, TRUE);
|
|
+ }
|
|
hunk ./actions/imsettings.php 210
|
|
- function cancel_confirmation() {
|
|
- $jabber = $this->arg('jabber');
|
|
- $confirm = $this->get_confirmation();
|
|
- if (!$confirm) {
|
|
- $this->show_form(_('No pending confirmation to cancel.'));
|
|
- return;
|
|
- }
|
|
- if ($confirm->address != $jabber) {
|
|
- $this->show_form(_('That is the wrong IM address.'));
|
|
- return;
|
|
- }
|
|
+ function cancel_confirmation() {
|
|
+ $jabber = $this->arg('jabber');
|
|
+ $confirm = $this->get_confirmation();
|
|
+ if (!$confirm) {
|
|
+ $this->show_form(_('No pending confirmation to cancel.'));
|
|
+ return;
|
|
+ }
|
|
+ if ($confirm->address != $jabber) {
|
|
+ $this->show_form(_('That is the wrong IM address.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/imsettings.php 225
|
|
- common_log_db_error($confirm, 'DELETE', __FILE__);
|
|
+ common_log_db_error($confirm, 'DELETE', __FILE__);
|
|
hunk ./actions/imsettings.php 231
|
|
- }
|
|
+ }
|
|
hunk ./actions/imsettings.php 233
|
|
- function remove_address() {
|
|
+ function remove_address() {
|
|
hunk ./actions/imsettings.php 235
|
|
- $user = common_current_user();
|
|
- $jabber = $this->arg('jabber');
|
|
+ $user = common_current_user();
|
|
+ $jabber = $this->arg('jabber');
|
|
hunk ./actions/imsettings.php 238
|
|
- # Maybe an old tab open...?
|
|
+ # Maybe an old tab open...?
|
|
hunk ./actions/imsettings.php 240
|
|
- if ($user->jabber != $jabber) {
|
|
- $this->show_form(_('That is not your Jabber ID.'));
|
|
- return;
|
|
- }
|
|
+ if ($user->jabber != $jabber) {
|
|
+ $this->show_form(_('That is not your Jabber ID.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/imsettings.php 245
|
|
- $user->query('BEGIN');
|
|
- $original = clone($user);
|
|
- $user->jabber = NULL;
|
|
- $result = $user->updateKeys($original);
|
|
- if (!$result) {
|
|
- common_log_db_error($user, 'UPDATE', __FILE__);
|
|
- common_server_error(_('Couldn\'t update user.'));
|
|
- return;
|
|
- }
|
|
- $user->query('COMMIT');
|
|
+ $user->query('BEGIN');
|
|
+ $original = clone($user);
|
|
+ $user->jabber = NULL;
|
|
+ $result = $user->updateKeys($original);
|
|
+ if (!$result) {
|
|
+ common_log_db_error($user, 'UPDATE', __FILE__);
|
|
+ common_server_error(_('Couldn\'t update user.'));
|
|
+ return;
|
|
+ }
|
|
+ $user->query('COMMIT');
|
|
hunk ./actions/imsettings.php 256
|
|
- # XXX: unsubscribe to the old address
|
|
+ # XXX: unsubscribe to the old address
|
|
hunk ./actions/imsettings.php 258
|
|
- $this->show_form(_('The address was removed.'), TRUE);
|
|
- }
|
|
+ $this->show_form(_('The address was removed.'), TRUE);
|
|
+ }
|
|
hunk ./actions/imsettings.php 261
|
|
- function jabber_exists($jabber) {
|
|
- $user = common_current_user();
|
|
- $other = User::staticGet('jabber', $jabber);
|
|
- if (!$other) {
|
|
- return false;
|
|
- } else {
|
|
- return $other->id != $user->id;
|
|
- }
|
|
- }
|
|
+ function jabber_exists($jabber) {
|
|
+ $user = common_current_user();
|
|
+ $other = User::staticGet('jabber', $jabber);
|
|
+ if (!$other) {
|
|
+ return false;
|
|
+ } else {
|
|
+ return $other->id != $user->id;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/invite.php 24
|
|
- function is_readonly() {
|
|
- return false;
|
|
- }
|
|
+ function is_readonly() {
|
|
+ return false;
|
|
+ }
|
|
hunk ./actions/invite.php 30
|
|
- if (!common_logged_in()) {
|
|
- $this->client_error(sprintf(_('You must be logged in to invite other users to use %s'),
|
|
- common_config('site', 'name')));
|
|
- return;
|
|
- } else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
|
- $this->send_invitations();
|
|
- } else {
|
|
- $this->show_form();
|
|
- }
|
|
- }
|
|
+ if (!common_logged_in()) {
|
|
+ $this->client_error(sprintf(_('You must be logged in to invite other users to use %s'),
|
|
+ common_config('site', 'name')));
|
|
+ return;
|
|
+ } else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
|
+ $this->send_invitations();
|
|
+ } else {
|
|
+ $this->show_form();
|
|
+ }
|
|
+ }
|
|
hunk ./actions/invite.php 41
|
|
- function send_invitations() {
|
|
+ function send_invitations() {
|
|
hunk ./actions/invite.php 43
|
|
- # CSRF protection
|
|
- $token = $this->trimmed('token');
|
|
- if (!$token || $token != common_session_token()) {
|
|
- $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
- return;
|
|
- }
|
|
+ # CSRF protection
|
|
+ $token = $this->trimmed('token');
|
|
+ if (!$token || $token != common_session_token()) {
|
|
+ $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/invite.php 50
|
|
- $user = common_current_user();
|
|
- $profile = $user->getProfile();
|
|
+ $user = common_current_user();
|
|
+ $profile = $user->getProfile();
|
|
hunk ./actions/invite.php 53
|
|
- $bestname = $profile->getBestName();
|
|
- $sitename = common_config('site', 'name');
|
|
- $personal = $this->trimmed('personal');
|
|
+ $bestname = $profile->getBestName();
|
|
+ $sitename = common_config('site', 'name');
|
|
+ $personal = $this->trimmed('personal');
|
|
hunk ./actions/invite.php 57
|
|
- $addresses = explode("\n", $this->trimmed('addresses'));
|
|
+ $addresses = explode("\n", $this->trimmed('addresses'));
|
|
hunk ./actions/invite.php 59
|
|
- foreach ($addresses as $email) {
|
|
- $email = trim($email);
|
|
- if (!Validate::email($email, true)) {
|
|
- $this->show_form(sprintf(_('Invalid email address: %s'), $email));
|
|
- return;
|
|
- }
|
|
- }
|
|
+ foreach ($addresses as $email) {
|
|
+ $email = trim($email);
|
|
+ if (!Validate::email($email, true)) {
|
|
+ $this->show_form(sprintf(_('Invalid email address: %s'), $email));
|
|
+ return;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/invite.php 67
|
|
- $already = array();
|
|
- $subbed = array();
|
|
+ $already = array();
|
|
+ $subbed = array();
|
|
hunk ./actions/invite.php 70
|
|
- foreach ($addresses as $email) {
|
|
- $email = common_canonical_email($email);
|
|
- $other = User::staticGet('email', $email);
|
|
- if ($other) {
|
|
- if ($user->isSubscribed($other)) {
|
|
- $already[] = $other;
|
|
- } else {
|
|
- subs_subscribe_to($user, $other);
|
|
- $subbed[] = $other;
|
|
- }
|
|
- } else {
|
|
- $sent[] = $email;
|
|
- $this->send_invitation($email, $user, $personal);
|
|
- }
|
|
- }
|
|
+ foreach ($addresses as $email) {
|
|
+ $email = common_canonical_email($email);
|
|
+ $other = User::staticGet('email', $email);
|
|
+ if ($other) {
|
|
+ if ($user->isSubscribed($other)) {
|
|
+ $already[] = $other;
|
|
+ } else {
|
|
+ subs_subscribe_to($user, $other);
|
|
+ $subbed[] = $other;
|
|
+ }
|
|
+ } else {
|
|
+ $sent[] = $email;
|
|
+ $this->send_invitation($email, $user, $personal);
|
|
+ }
|
|
+ }
|
|
hunk ./actions/invite.php 86
|
|
- common_show_header(_('Invitation(s) sent'));
|
|
- if ($already) {
|
|
- common_element('p', NULL, _('You are already subscribed to these users:'));
|
|
- common_element_start('ul');
|
|
- foreach ($already as $other) {
|
|
- common_element('li', NULL, sprintf(_('%s (%s)'), $other->nickname, $other->email));
|
|
- }
|
|
- common_element_end('ul');
|
|
- }
|
|
- if ($subbed) {
|
|
- common_element('p', NULL, _('These people are already users and you were automatically subscribed to them:'));
|
|
- common_element_start('ul');
|
|
- foreach ($subbed as $other) {
|
|
- common_element('li', NULL, sprintf(_('%s (%s)'), $other->nickname, $other->email));
|
|
- }
|
|
- common_element_end('ul');
|
|
- }
|
|
- if ($sent) {
|
|
- common_element('p', NULL, _('Invitation(s) sent to the following people:'));
|
|
- common_element_start('ul');
|
|
- foreach ($sent as $other) {
|
|
- common_element('li', NULL, $other);
|
|
- }
|
|
- common_element_end('ul');
|
|
- common_element('p', NULL, _('You will be notified when your invitees accept the invitation and register on the site. Thanks for growing the community!'));
|
|
- }
|
|
- common_show_footer();
|
|
- }
|
|
+ common_show_header(_('Invitation(s) sent'));
|
|
+ if ($already) {
|
|
+ common_element('p', NULL, _('You are already subscribed to these users:'));
|
|
+ common_element_start('ul');
|
|
+ foreach ($already as $other) {
|
|
+ common_element('li', NULL, sprintf(_('%s (%s)'), $other->nickname, $other->email));
|
|
+ }
|
|
+ common_element_end('ul');
|
|
+ }
|
|
+ if ($subbed) {
|
|
+ common_element('p', NULL, _('These people are already users and you were automatically subscribed to them:'));
|
|
+ common_element_start('ul');
|
|
+ foreach ($subbed as $other) {
|
|
+ common_element('li', NULL, sprintf(_('%s (%s)'), $other->nickname, $other->email));
|
|
+ }
|
|
+ common_element_end('ul');
|
|
+ }
|
|
+ if ($sent) {
|
|
+ common_element('p', NULL, _('Invitation(s) sent to the following people:'));
|
|
+ common_element_start('ul');
|
|
+ foreach ($sent as $other) {
|
|
+ common_element('li', NULL, $other);
|
|
+ }
|
|
+ common_element_end('ul');
|
|
+ common_element('p', NULL, _('You will be notified when your invitees accept the invitation and register on the site. Thanks for growing the community!'));
|
|
+ }
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/invite.php 115
|
|
- function show_top($error=NULL) {
|
|
- if ($error) {
|
|
- common_element('p', 'error', $error);
|
|
- } else {
|
|
- common_element_start('div', 'instructions');
|
|
- common_element('p', NULL,
|
|
- _('Use this form to invite your friends and colleagues to use this service.'));
|
|
- common_element_end('div');
|
|
- }
|
|
- }
|
|
+ function show_top($error=NULL) {
|
|
+ if ($error) {
|
|
+ common_element('p', 'error', $error);
|
|
+ } else {
|
|
+ common_element_start('div', 'instructions');
|
|
+ common_element('p', NULL,
|
|
+ _('Use this form to invite your friends and colleagues to use this service.'));
|
|
+ common_element_end('div');
|
|
+ }
|
|
+ }
|
|
hunk ./actions/invite.php 126
|
|
- function show_form($error=NULL) {
|
|
+ function show_form($error=NULL) {
|
|
hunk ./actions/invite.php 128
|
|
- global $config;
|
|
+ global $config;
|
|
hunk ./actions/invite.php 130
|
|
- common_show_header(_('Invite new users'), NULL, $error, array($this, 'show_top'));
|
|
+ common_show_header(_('Invite new users'), NULL, $error, array($this, 'show_top'));
|
|
hunk ./actions/invite.php 132
|
|
- common_element_start('form', array('method' => 'post',
|
|
- 'id' => 'invite',
|
|
- 'action' => common_local_url('invite')));
|
|
- common_hidden('token', common_session_token());
|
|
+ common_element_start('form', array('method' => 'post',
|
|
+ 'id' => 'invite',
|
|
+ 'action' => common_local_url('invite')));
|
|
+ common_hidden('token', common_session_token());
|
|
hunk ./actions/invite.php 137
|
|
- common_textarea('addresses', _('Email addresses'),
|
|
- $this->trimmed('addresses'),
|
|
- _('Addresses of friends to invite (one per line)'));
|
|
+ common_textarea('addresses', _('Email addresses'),
|
|
+ $this->trimmed('addresses'),
|
|
+ _('Addresses of friends to invite (one per line)'));
|
|
hunk ./actions/invite.php 141
|
|
- common_textarea('personal', _('Personal message'),
|
|
- $this->trimmed('personal'),
|
|
- _('Optionally add a personal message to the invitation.'));
|
|
+ common_textarea('personal', _('Personal message'),
|
|
+ $this->trimmed('personal'),
|
|
+ _('Optionally add a personal message to the invitation.'));
|
|
hunk ./actions/invite.php 145
|
|
- common_submit('send', _('Send'));
|
|
+ common_submit('send', _('Send'));
|
|
hunk ./actions/invite.php 147
|
|
- common_element_end('form');
|
|
+ common_element_end('form');
|
|
hunk ./actions/invite.php 149
|
|
- common_show_footer();
|
|
- }
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/invite.php 152
|
|
- function send_invitation($email, $user, $personal) {
|
|
+ function send_invitation($email, $user, $personal) {
|
|
hunk ./actions/invite.php 154
|
|
- $profile = $user->getProfile();
|
|
- $bestname = $profile->getBestName();
|
|
+ $profile = $user->getProfile();
|
|
+ $bestname = $profile->getBestName();
|
|
hunk ./actions/invite.php 157
|
|
- $sitename = common_config('site', 'name');
|
|
+ $sitename = common_config('site', 'name');
|
|
hunk ./actions/invite.php 159
|
|
- $invite = new Invitation();
|
|
+ $invite = new Invitation();
|
|
hunk ./actions/invite.php 161
|
|
- $invite->address = $email;
|
|
- $invite->address_type = 'email';
|
|
- $invite->code = common_confirmation_code(128);
|
|
- $invite->user_id = $user->id;
|
|
- $invite->created = common_sql_now();
|
|
+ $invite->address = $email;
|
|
+ $invite->address_type = 'email';
|
|
+ $invite->code = common_confirmation_code(128);
|
|
+ $invite->user_id = $user->id;
|
|
+ $invite->created = common_sql_now();
|
|
hunk ./actions/invite.php 167
|
|
- if (!$invite->insert()) {
|
|
- common_log_db_error($invite, 'INSERT', __FILE__);
|
|
- return false;
|
|
- }
|
|
+ if (!$invite->insert()) {
|
|
+ common_log_db_error($invite, 'INSERT', __FILE__);
|
|
+ return false;
|
|
+ }
|
|
hunk ./actions/invite.php 172
|
|
- $recipients = array($email);
|
|
+ $recipients = array($email);
|
|
hunk ./actions/invite.php 174
|
|
- $headers['From'] = mail_notify_from();
|
|
- $headers['To'] = $email;
|
|
- $headers['Subject'] = sprintf(_('%1$s has invited you to join them on %2$s'), $bestname, $sitename);
|
|
+ $headers['From'] = mail_notify_from();
|
|
+ $headers['To'] = $email;
|
|
+ $headers['Subject'] = sprintf(_('%1$s has invited you to join them on %2$s'), $bestname, $sitename);
|
|
hunk ./actions/invite.php 178
|
|
- $body = sprintf(_("%1\$s has invited you to join them on %2\$s (%3\$s).\n\n".
|
|
- "%2\$s is a micro-blogging service that lets you keep up-to-date with people you know and people who interest you.\n\n".
|
|
- "You can also share news about yourself, your thoughts, or your life online with people who know about you. ".
|
|
- "It's also great for meeting new people who share your interests.\n\n".
|
|
- "%1\$s said:\n\n%4\$s\n\n".
|
|
- "You can see %1\$s's profile page on %2\$s here:\n\n".
|
|
- "%5\$s\n\n".
|
|
- "If you'd like to try the service, click on the link below to accept the invitation.\n\n".
|
|
- "%6\$s\n\n".
|
|
- "If not, you can ignore this message. Thanks for your patience and your time.\n\n".
|
|
- "Sincerely, %2\$s\n"),
|
|
- $bestname,
|
|
- $sitename,
|
|
- common_root_url(),
|
|
- $personal,
|
|
- common_local_url('showstream', array('nickname' => $user->nickname)),
|
|
- common_local_url('register', array('code' => $invite->code)));
|
|
+ $body = sprintf(_("%1\$s has invited you to join them on %2\$s (%3\$s).\n\n".
|
|
+ "%2\$s is a micro-blogging service that lets you keep up-to-date with people you know and people who interest you.\n\n".
|
|
+ "You can also share news about yourself, your thoughts, or your life online with people who know about you. ".
|
|
+ "It's also great for meeting new people who share your interests.\n\n".
|
|
+ "%1\$s said:\n\n%4\$s\n\n".
|
|
+ "You can see %1\$s's profile page on %2\$s here:\n\n".
|
|
+ "%5\$s\n\n".
|
|
+ "If you'd like to try the service, click on the link below to accept the invitation.\n\n".
|
|
+ "%6\$s\n\n".
|
|
+ "If not, you can ignore this message. Thanks for your patience and your time.\n\n".
|
|
+ "Sincerely, %2\$s\n"),
|
|
+ $bestname,
|
|
+ $sitename,
|
|
+ common_root_url(),
|
|
+ $personal,
|
|
+ common_local_url('showstream', array('nickname' => $user->nickname)),
|
|
+ common_local_url('register', array('code' => $invite->code)));
|
|
hunk ./actions/invite.php 196
|
|
- mail_send($recipients, $headers, $body);
|
|
- }
|
|
+ mail_send($recipients, $headers, $body);
|
|
+ }
|
|
hunk ./actions/login.php 24
|
|
- function is_readonly() {
|
|
- return true;
|
|
- }
|
|
+ function is_readonly() {
|
|
+ return true;
|
|
+ }
|
|
hunk ./actions/login.php 28
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
- if (common_is_real_login()) {
|
|
- common_user_error(_('Already logged in.'));
|
|
- } else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
|
- $this->check_login();
|
|
- } else {
|
|
- $this->show_form();
|
|
- }
|
|
- }
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
+ if (common_is_real_login()) {
|
|
+ common_user_error(_('Already logged in.'));
|
|
+ } else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
|
+ $this->check_login();
|
|
+ } else {
|
|
+ $this->show_form();
|
|
+ }
|
|
+ }
|
|
hunk ./actions/login.php 39
|
|
- function check_login() {
|
|
- # XXX: login throttle
|
|
+ function check_login() {
|
|
+ # XXX: login throttle
|
|
hunk ./actions/login.php 42
|
|
- # CSRF protection - token set in common_notice_form()
|
|
- $token = $this->trimmed('token');
|
|
- if (!$token || $token != common_session_token()) {
|
|
- $this->client_error(_('There was a problem with your session token. Try again, please.'));
|
|
- return;
|
|
- }
|
|
+ # CSRF protection - token set in common_notice_form()
|
|
+ $token = $this->trimmed('token');
|
|
+ if (!$token || $token != common_session_token()) {
|
|
+ $this->client_error(_('There was a problem with your session token. Try again, please.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/login.php 49
|
|
- $nickname = common_canonical_nickname($this->trimmed('nickname'));
|
|
- $password = $this->arg('password');
|
|
- if (common_check_user($nickname, $password)) {
|
|
- # success!
|
|
- if (!common_set_user($nickname)) {
|
|
- common_server_error(_('Error setting user.'));
|
|
- return;
|
|
- }
|
|
- common_real_login(true);
|
|
- if ($this->boolean('rememberme')) {
|
|
- common_debug('Adding rememberme cookie for ' . $nickname);
|
|
- common_rememberme();
|
|
- }
|
|
- # success!
|
|
- $url = common_get_returnto();
|
|
- if ($url) {
|
|
- # We don't have to return to it again
|
|
- common_set_returnto(NULL);
|
|
- } else {
|
|
- $url = common_local_url('all',
|
|
- array('nickname' =>
|
|
- $nickname));
|
|
- }
|
|
- common_redirect($url);
|
|
- } else {
|
|
- $this->show_form(_('Incorrect username or password.'));
|
|
- return;
|
|
- }
|
|
+ $nickname = common_canonical_nickname($this->trimmed('nickname'));
|
|
+ $password = $this->arg('password');
|
|
+ if (common_check_user($nickname, $password)) {
|
|
+ # success!
|
|
+ if (!common_set_user($nickname)) {
|
|
+ common_server_error(_('Error setting user.'));
|
|
+ return;
|
|
+ }
|
|
+ common_real_login(true);
|
|
+ if ($this->boolean('rememberme')) {
|
|
+ common_debug('Adding rememberme cookie for ' . $nickname);
|
|
+ common_rememberme();
|
|
+ }
|
|
+ # success!
|
|
+ $url = common_get_returnto();
|
|
+ if ($url) {
|
|
+ # We don't have to return to it again
|
|
+ common_set_returnto(NULL);
|
|
+ } else {
|
|
+ $url = common_local_url('all',
|
|
+ array('nickname' =>
|
|
+ $nickname));
|
|
+ }
|
|
+ common_redirect($url);
|
|
+ } else {
|
|
+ $this->show_form(_('Incorrect username or password.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/login.php 78
|
|
- # success!
|
|
- if (!common_set_user($user)) {
|
|
- common_server_error(_('Error setting user.'));
|
|
- return;
|
|
- }
|
|
+ # success!
|
|
+ if (!common_set_user($user)) {
|
|
+ common_server_error(_('Error setting user.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/login.php 84
|
|
- common_real_login(true);
|
|
+ common_real_login(true);
|
|
hunk ./actions/login.php 86
|
|
- if ($this->boolean('rememberme')) {
|
|
- common_debug('Adding rememberme cookie for ' . $nickname);
|
|
- common_rememberme($user);
|
|
- }
|
|
- # success!
|
|
- $url = common_get_returnto();
|
|
- if ($url) {
|
|
- # We don't have to return to it again
|
|
- common_set_returnto(NULL);
|
|
- } else {
|
|
- $url = common_local_url('all',
|
|
- array('nickname' =>
|
|
- $nickname));
|
|
- }
|
|
- common_redirect($url);
|
|
- }
|
|
+ if ($this->boolean('rememberme')) {
|
|
+ common_debug('Adding rememberme cookie for ' . $nickname);
|
|
+ common_rememberme($user);
|
|
+ }
|
|
+ # success!
|
|
+ $url = common_get_returnto();
|
|
+ if ($url) {
|
|
+ # We don't have to return to it again
|
|
+ common_set_returnto(NULL);
|
|
+ } else {
|
|
+ $url = common_local_url('all',
|
|
+ array('nickname' =>
|
|
+ $nickname));
|
|
+ }
|
|
+ common_redirect($url);
|
|
+ }
|
|
hunk ./actions/login.php 103
|
|
- function show_form($error=NULL) {
|
|
- common_show_header(_('Login'), NULL, $error, array($this, 'show_top'));
|
|
- common_element_start('form', array('method' => 'post',
|
|
- 'id' => 'login',
|
|
- 'action' => common_local_url('login')));
|
|
- common_input('nickname', _('Nickname'));
|
|
- common_password('password', _('Password'));
|
|
- common_checkbox('rememberme', _('Remember me'), false,
|
|
- _('Automatically login in the future; ' .
|
|
- 'not for shared computers!'));
|
|
- common_submit('submit', _('Login'));
|
|
- common_hidden('token', common_session_token());
|
|
- common_element_end('form');
|
|
- common_element_start('p');
|
|
- common_element('a', array('href' => common_local_url('recoverpassword')),
|
|
- _('Lost or forgotten password?'));
|
|
- common_element_end('p');
|
|
- common_show_footer();
|
|
- }
|
|
+ function show_form($error=NULL) {
|
|
+ common_show_header(_('Login'), NULL, $error, array($this, 'show_top'));
|
|
+ common_element_start('form', array('method' => 'post',
|
|
+ 'id' => 'login',
|
|
+ 'action' => common_local_url('login')));
|
|
+ common_input('nickname', _('Nickname'));
|
|
+ common_password('password', _('Password'));
|
|
+ common_checkbox('rememberme', _('Remember me'), false,
|
|
+ _('Automatically login in the future; ' .
|
|
+ 'not for shared computers!'));
|
|
+ common_submit('submit', _('Login'));
|
|
+ common_hidden('token', common_session_token());
|
|
+ common_element_end('form');
|
|
+ common_element_start('p');
|
|
+ common_element('a', array('href' => common_local_url('recoverpassword')),
|
|
+ _('Lost or forgotten password?'));
|
|
+ common_element_end('p');
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/login.php 123
|
|
- function get_instructions() {
|
|
- if (common_logged_in() &&
|
|
- !common_is_real_login() &&
|
|
- common_get_returnto())
|
|
- {
|
|
- # rememberme logins have to reauthenticate before
|
|
- # changing any profile settings (cookie-stealing protection)
|
|
- return _('For security reasons, please re-enter your ' .
|
|
- 'user name and password ' .
|
|
- 'before changing your settings.');
|
|
- } else {
|
|
- return _('Login with your username and password. ' .
|
|
- 'Don\'t have a username yet? ' .
|
|
- '[Register](%%action.register%%) a new account, or ' .
|
|
- 'try [OpenID](%%action.openidlogin%%). ');
|
|
- }
|
|
- }
|
|
+ function get_instructions() {
|
|
+ if (common_logged_in() &&
|
|
+ !common_is_real_login() &&
|
|
+ common_get_returnto())
|
|
+ {
|
|
+ # rememberme logins have to reauthenticate before
|
|
+ # changing any profile settings (cookie-stealing protection)
|
|
+ return _('For security reasons, please re-enter your ' .
|
|
+ 'user name and password ' .
|
|
+ 'before changing your settings.');
|
|
+ } else {
|
|
+ return _('Login with your username and password. ' .
|
|
+ 'Don\'t have a username yet? ' .
|
|
+ '[Register](%%action.register%%) a new account, or ' .
|
|
+ 'try [OpenID](%%action.openidlogin%%). ');
|
|
+ }
|
|
+ }
|
|
hunk ./actions/login.php 141
|
|
- function show_top($error=NULL) {
|
|
- if ($error) {
|
|
- common_element('p', 'error', $error);
|
|
- } else {
|
|
- $instr = $this->get_instructions();
|
|
- $output = common_markup_to_html($instr);
|
|
- common_element_start('div', 'instructions');
|
|
- common_raw($output);
|
|
- common_element_end('div');
|
|
- }
|
|
- }
|
|
+ function show_top($error=NULL) {
|
|
+ if ($error) {
|
|
+ common_element('p', 'error', $error);
|
|
+ } else {
|
|
+ $instr = $this->get_instructions();
|
|
+ $output = common_markup_to_html($instr);
|
|
+ common_element_start('div', 'instructions');
|
|
+ common_raw($output);
|
|
+ common_element_end('div');
|
|
+ }
|
|
+ }
|
|
hunk ./actions/logout.php 25
|
|
-
|
|
- function is_readonly() {
|
|
- return true;
|
|
- }
|
|
-
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
- if (!common_logged_in()) {
|
|
- common_user_error(_('Not logged in.'));
|
|
- } else {
|
|
- common_set_user(NULL);
|
|
- common_real_login(false); # not logged in
|
|
- common_forgetme(); # don't log back in!
|
|
- common_redirect(common_local_url('public'));
|
|
- }
|
|
- }
|
|
+
|
|
+ function is_readonly() {
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
+ if (!common_logged_in()) {
|
|
+ common_user_error(_('Not logged in.'));
|
|
+ } else {
|
|
+ common_set_user(NULL);
|
|
+ common_real_login(false); # not logged in
|
|
+ common_forgetme(); # don't log back in!
|
|
+ common_redirect(common_local_url('public'));
|
|
+ }
|
|
+ }
|
|
hunk ./actions/microsummary.php 24
|
|
- function handle($args) {
|
|
+ function handle($args) {
|
|
hunk ./actions/microsummary.php 26
|
|
- parent::handle($args);
|
|
+ parent::handle($args);
|
|
hunk ./actions/microsummary.php 28
|
|
- $nickname = common_canonical_nickname($this->arg('nickname'));
|
|
- $user = User::staticGet('nickname', $nickname);
|
|
+ $nickname = common_canonical_nickname($this->arg('nickname'));
|
|
+ $user = User::staticGet('nickname', $nickname);
|
|
hunk ./actions/microsummary.php 31
|
|
- if (!$user) {
|
|
- $this->client_error(_('No such user'), 404);
|
|
- return;
|
|
- }
|
|
-
|
|
- $notice = $user->getCurrentNotice();
|
|
-
|
|
- if (!$notice) {
|
|
- $this->client_error(_('No current status'), 404);
|
|
- }
|
|
-
|
|
- header('Content-Type: text/plain');
|
|
-
|
|
- print $user->nickname . ': ' . $notice->content;
|
|
- }
|
|
+ if (!$user) {
|
|
+ $this->client_error(_('No such user'), 404);
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ $notice = $user->getCurrentNotice();
|
|
+
|
|
+ if (!$notice) {
|
|
+ $this->client_error(_('No current status'), 404);
|
|
+ }
|
|
+
|
|
+ header('Content-Type: text/plain');
|
|
+
|
|
+ print $user->nickname . ': ' . $notice->content;
|
|
+ }
|
|
hunk ./actions/newmessage.php 23
|
|
-
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
+
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/newmessage.php 27
|
|
- if (!common_logged_in()) {
|
|
- $this->client_error(_('Not logged in.'), 403);
|
|
- } else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
|
- $this->save_new_message();
|
|
- } else {
|
|
- $this->show_form();
|
|
- }
|
|
- }
|
|
+ if (!common_logged_in()) {
|
|
+ $this->client_error(_('Not logged in.'), 403);
|
|
+ } else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
|
+ $this->save_new_message();
|
|
+ } else {
|
|
+ $this->show_form();
|
|
+ }
|
|
+ }
|
|
hunk ./actions/newmessage.php 36
|
|
- function save_new_message() {
|
|
- $user = common_current_user();
|
|
- assert($user); # XXX: maybe an error instead...
|
|
+ function save_new_message() {
|
|
+ $user = common_current_user();
|
|
+ assert($user); # XXX: maybe an error instead...
|
|
hunk ./actions/newmessage.php 40
|
|
- # CSRF protection
|
|
-
|
|
- $token = $this->trimmed('token');
|
|
- if (!$token || $token != common_session_token()) {
|
|
- $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
- return;
|
|
- }
|
|
-
|
|
- $content = $this->trimmed('content');
|
|
- $to = $this->trimmed('to');
|
|
-
|
|
- if (!$content) {
|
|
- $this->show_form(_('No content!'));
|
|
- return;
|
|
- } else {
|
|
- $content_shortened = common_shorten_links($content);
|
|
+ # CSRF protection
|
|
+
|
|
+ $token = $this->trimmed('token');
|
|
+ if (!$token || $token != common_session_token()) {
|
|
+ $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ $content = $this->trimmed('content');
|
|
+ $to = $this->trimmed('to');
|
|
+
|
|
+ if (!$content) {
|
|
+ $this->show_form(_('No content!'));
|
|
+ return;
|
|
+ } else {
|
|
+ $content_shortened = common_shorten_links($content);
|
|
hunk ./actions/newmessage.php 57
|
|
- if (mb_strlen($content_shortened) > 140) {
|
|
- common_debug("Content = '$content_shortened'", __FILE__);
|
|
- common_debug("mb_strlen(\$content) = " . mb_strlen($content_shortened), __FILE__);
|
|
- $this->show_form(_('That\'s too long. Max message size is 140 chars.'));
|
|
- return;
|
|
- }
|
|
- }
|
|
+ if (mb_strlen($content_shortened) > 140) {
|
|
+ common_debug("Content = '$content_shortened'", __FILE__);
|
|
+ common_debug("mb_strlen(\$content) = " . mb_strlen($content_shortened), __FILE__);
|
|
+ $this->show_form(_('That\'s too long. Max message size is 140 chars.'));
|
|
+ return;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/newmessage.php 65
|
|
- $other = User::staticGet('id', $to);
|
|
-
|
|
- if (!$other) {
|
|
- $this->show_form(_('No recipient specified.'));
|
|
- return;
|
|
- } else if (!$user->mutuallySubscribed($other)) {
|
|
- $this->client_error(_('You can\'t send a message to this user.'), 404);
|
|
- return;
|
|
- } else if ($user->id == $other->id) {
|
|
- $this->client_error(_('Don\'t send a message to yourself; just say it to yourself quietly instead.'), 403);
|
|
- return;
|
|
- }
|
|
-
|
|
- $message = Message::saveNew($user->id, $other->id, $content, 'web');
|
|
-
|
|
- if (is_string($message)) {
|
|
- $this->show_form($message);
|
|
- return;
|
|
- }
|
|
+ $other = User::staticGet('id', $to);
|
|
+
|
|
+ if (!$other) {
|
|
+ $this->show_form(_('No recipient specified.'));
|
|
+ return;
|
|
+ } else if (!$user->mutuallySubscribed($other)) {
|
|
+ $this->client_error(_('You can\'t send a message to this user.'), 404);
|
|
+ return;
|
|
+ } else if ($user->id == $other->id) {
|
|
+ $this->client_error(_('Don\'t send a message to yourself; just say it to yourself quietly instead.'), 403);
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ $message = Message::saveNew($user->id, $other->id, $content, 'web');
|
|
+
|
|
+ if (is_string($message)) {
|
|
+ $this->show_form($message);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/newmessage.php 85
|
|
- $this->notify($user, $other, $message);
|
|
+ $this->notify($user, $other, $message);
|
|
hunk ./actions/newmessage.php 87
|
|
- $url = common_local_url('outbox', array('nickname' => $user->nickname));
|
|
+ $url = common_local_url('outbox', array('nickname' => $user->nickname));
|
|
hunk ./actions/newmessage.php 89
|
|
- common_redirect($url, 303);
|
|
- }
|
|
+ common_redirect($url, 303);
|
|
+ }
|
|
hunk ./actions/newmessage.php 92
|
|
- function show_top($params) {
|
|
+ function show_top($params) {
|
|
hunk ./actions/newmessage.php 94
|
|
- list($content, $user, $to) = $params;
|
|
-
|
|
- assert(!is_null($user));
|
|
+ list($content, $user, $to) = $params;
|
|
+
|
|
+ assert(!is_null($user));
|
|
hunk ./actions/newmessage.php 98
|
|
- common_message_form($content, $user, $to);
|
|
- }
|
|
+ common_message_form($content, $user, $to);
|
|
+ }
|
|
hunk ./actions/newmessage.php 101
|
|
- function show_form($msg=NULL) {
|
|
-
|
|
- $content = $this->trimmed('content');
|
|
- $user = common_current_user();
|
|
+ function show_form($msg=NULL) {
|
|
+
|
|
+ $content = $this->trimmed('content');
|
|
+ $user = common_current_user();
|
|
hunk ./actions/newmessage.php 106
|
|
- $to = $this->trimmed('to');
|
|
-
|
|
- $other = User::staticGet('id', $to);
|
|
+ $to = $this->trimmed('to');
|
|
+
|
|
+ $other = User::staticGet('id', $to);
|
|
hunk ./actions/newmessage.php 110
|
|
- if (!$other) {
|
|
- $this->client_error(_('No such user'), 404);
|
|
- return;
|
|
- }
|
|
+ if (!$other) {
|
|
+ $this->client_error(_('No such user'), 404);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/newmessage.php 115
|
|
- if (!$user->mutuallySubscribed($other)) {
|
|
- $this->client_error(_('You can\'t send a message to this user.'), 404);
|
|
- return;
|
|
- }
|
|
-
|
|
- common_show_header(_('New message'), NULL,
|
|
- array($content, $user, $other),
|
|
- array($this, 'show_top'));
|
|
-
|
|
- if ($msg) {
|
|
- common_element('p', array('id'=>'error'), $msg);
|
|
- }
|
|
-
|
|
- common_show_footer();
|
|
- }
|
|
-
|
|
- function notify($from, $to, $message) {
|
|
- mail_notify_message($message, $from, $to);
|
|
- # XXX: Jabber, SMS notifications... probably queued
|
|
- }
|
|
+ if (!$user->mutuallySubscribed($other)) {
|
|
+ $this->client_error(_('You can\'t send a message to this user.'), 404);
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ common_show_header(_('New message'), NULL,
|
|
+ array($content, $user, $other),
|
|
+ array($this, 'show_top'));
|
|
+
|
|
+ if ($msg) {
|
|
+ common_element('p', array('id'=>'error'), $msg);
|
|
+ }
|
|
+
|
|
+ common_show_footer();
|
|
+ }
|
|
+
|
|
+ function notify($from, $to, $message) {
|
|
+ mail_notify_message($message, $from, $to);
|
|
+ # XXX: Jabber, SMS notifications... probably queued
|
|
+ }
|
|
hunk ./actions/newnotice.php 13
|
|
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
hunk ./actions/newnotice.php 17
|
|
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
hunk ./actions/newnotice.php 26
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/newnotice.php 29
|
|
- if (!common_logged_in()) {
|
|
- common_user_error(_('Not logged in.'));
|
|
- } else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
|
+ if (!common_logged_in()) {
|
|
+ common_user_error(_('Not logged in.'));
|
|
+ } else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
|
hunk ./actions/newnotice.php 33
|
|
- # CSRF protection - token set in common_notice_form()
|
|
- $token = $this->trimmed('token');
|
|
- if (!$token || $token != common_session_token()) {
|
|
- $this->client_error(_('There was a problem with your session token. Try again, please.'));
|
|
- return;
|
|
- }
|
|
+ # CSRF protection - token set in common_notice_form()
|
|
+ $token = $this->trimmed('token');
|
|
+ if (!$token || $token != common_session_token()) {
|
|
+ $this->client_error(_('There was a problem with your session token. Try again, please.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/newnotice.php 40
|
|
- $this->save_new_notice();
|
|
- } else {
|
|
- $this->show_form();
|
|
- }
|
|
- }
|
|
+ $this->save_new_notice();
|
|
+ } else {
|
|
+ $this->show_form();
|
|
+ }
|
|
+ }
|
|
hunk ./actions/newnotice.php 46
|
|
- function save_new_notice() {
|
|
+ function save_new_notice() {
|
|
hunk ./actions/newnotice.php 48
|
|
- $user = common_current_user();
|
|
- assert($user); # XXX: maybe an error instead...
|
|
- $content = $this->trimmed('status_textarea');
|
|
+ $user = common_current_user();
|
|
+ assert($user); # XXX: maybe an error instead...
|
|
+ $content = $this->trimmed('status_textarea');
|
|
hunk ./actions/newnotice.php 52
|
|
- if (!$content) {
|
|
- $this->show_form(_('No content!'));
|
|
- return;
|
|
- } else {
|
|
- $content_shortened = common_shorten_links($content);
|
|
+ if (!$content) {
|
|
+ $this->show_form(_('No content!'));
|
|
+ return;
|
|
+ } else {
|
|
+ $content_shortened = common_shorten_links($content);
|
|
hunk ./actions/newnotice.php 58
|
|
- if (mb_strlen($content_shortened) > 140) {
|
|
- common_debug("Content = '$content_shortened'", __FILE__);
|
|
- common_debug("mb_strlen(\$content) = " . mb_strlen($content_shortened), __FILE__);
|
|
- $this->show_form(_('That\'s too long. Max notice size is 140 chars.'));
|
|
- return;
|
|
- }
|
|
- }
|
|
+ if (mb_strlen($content_shortened) > 140) {
|
|
+ common_debug("Content = '$content_shortened'", __FILE__);
|
|
+ common_debug("mb_strlen(\$content) = " . mb_strlen($content_shortened), __FILE__);
|
|
+ $this->show_form(_('That\'s too long. Max notice size is 140 chars.'));
|
|
+ return;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/newnotice.php 66
|
|
- $inter = new CommandInterpreter();
|
|
+ $inter = new CommandInterpreter();
|
|
hunk ./actions/newnotice.php 68
|
|
- $cmd = $inter->handle_command($user, $content_shortened);
|
|
+ $cmd = $inter->handle_command($user, $content_shortened);
|
|
hunk ./actions/newnotice.php 70
|
|
- if ($cmd) {
|
|
- if ($this->boolean('ajax')) {
|
|
- $cmd->execute(new AjaxWebChannel());
|
|
- } else {
|
|
- $cmd->execute(new WebChannel());
|
|
- }
|
|
- return;
|
|
- }
|
|
+ if ($cmd) {
|
|
+ if ($this->boolean('ajax')) {
|
|
+ $cmd->execute(new AjaxWebChannel());
|
|
+ } else {
|
|
+ $cmd->execute(new WebChannel());
|
|
+ }
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/newnotice.php 79
|
|
- $replyto = $this->trimmed('inreplyto');
|
|
+ $replyto = $this->trimmed('inreplyto');
|
|
hunk ./actions/newnotice.php 81
|
|
- $notice = Notice::saveNew($user->id, $content, 'web', 1, ($replyto == 'false') ? NULL : $replyto);
|
|
+ $notice = Notice::saveNew($user->id, $content, 'web', 1, ($replyto == 'false') ? NULL : $replyto);
|
|
hunk ./actions/newnotice.php 83
|
|
- if (is_string($notice)) {
|
|
- $this->show_form($notice);
|
|
- return;
|
|
- }
|
|
+ if (is_string($notice)) {
|
|
+ $this->show_form($notice);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/newnotice.php 88
|
|
- common_broadcast_notice($notice);
|
|
+ common_broadcast_notice($notice);
|
|
hunk ./actions/newnotice.php 90
|
|
- if ($this->boolean('ajax')) {
|
|
- common_start_html('text/xml;charset=utf-8', true);
|
|
- common_element_start('head');
|
|
- common_element('title', null, _('Notice posted'));
|
|
- common_element_end('head');
|
|
- common_element_start('body');
|
|
- $this->show_notice($notice);
|
|
- common_element_end('body');
|
|
- common_element_end('html');
|
|
- } else {
|
|
- $returnto = $this->trimmed('returnto');
|
|
+ if ($this->boolean('ajax')) {
|
|
+ common_start_html('text/xml;charset=utf-8', true);
|
|
+ common_element_start('head');
|
|
+ common_element('title', null, _('Notice posted'));
|
|
+ common_element_end('head');
|
|
+ common_element_start('body');
|
|
+ $this->show_notice($notice);
|
|
+ common_element_end('body');
|
|
+ common_element_end('html');
|
|
+ } else {
|
|
+ $returnto = $this->trimmed('returnto');
|
|
hunk ./actions/newnotice.php 102
|
|
- if ($returnto) {
|
|
- $url = common_local_url($returnto,
|
|
- array('nickname' => $user->nickname));
|
|
- } else {
|
|
- $url = common_local_url('shownotice',
|
|
- array('notice' => $notice->id));
|
|
- }
|
|
- common_redirect($url, 303);
|
|
- }
|
|
- }
|
|
+ if ($returnto) {
|
|
+ $url = common_local_url($returnto,
|
|
+ array('nickname' => $user->nickname));
|
|
+ } else {
|
|
+ $url = common_local_url('shownotice',
|
|
+ array('notice' => $notice->id));
|
|
+ }
|
|
+ common_redirect($url, 303);
|
|
+ }
|
|
+ }
|
|
hunk ./actions/newnotice.php 113
|
|
- function ajax_error_msg($msg) {
|
|
- common_start_html('text/xml;charset=utf-8', true);
|
|
- common_element_start('head');
|
|
- common_element('title', null, _('Ajax Error'));
|
|
- common_element_end('head');
|
|
- common_element_start('body');
|
|
- common_element('p', array('id' => 'error'), $msg);
|
|
- common_element_end('body');
|
|
- common_element_end('html');
|
|
- }
|
|
+ function ajax_error_msg($msg) {
|
|
+ common_start_html('text/xml;charset=utf-8', true);
|
|
+ common_element_start('head');
|
|
+ common_element('title', null, _('Ajax Error'));
|
|
+ common_element_end('head');
|
|
+ common_element_start('body');
|
|
+ common_element('p', array('id' => 'error'), $msg);
|
|
+ common_element_end('body');
|
|
+ common_element_end('html');
|
|
+ }
|
|
hunk ./actions/newnotice.php 124
|
|
- function show_top($content=NULL) {
|
|
- common_notice_form(NULL, $content);
|
|
- }
|
|
+ function show_top($content=NULL) {
|
|
+ common_notice_form(NULL, $content);
|
|
+ }
|
|
hunk ./actions/newnotice.php 128
|
|
- function show_form($msg=NULL) {
|
|
- if ($msg && $this->boolean('ajax')) {
|
|
- $this->ajax_error_msg($msg);
|
|
- return;
|
|
- }
|
|
- $content = $this->trimmed('status_textarea');
|
|
- if (!$content) {
|
|
- $replyto = $this->trimmed('replyto');
|
|
- $profile = Profile::staticGet('nickname', $replyto);
|
|
- if ($profile) {
|
|
- $content = '@' . $profile->nickname . ' ';
|
|
- }
|
|
- }
|
|
- common_show_header(_('New notice'), NULL, $content,
|
|
- array($this, 'show_top'));
|
|
- if ($msg) {
|
|
- common_element('p', array('id' => 'error'), $msg);
|
|
- }
|
|
- common_show_footer();
|
|
- }
|
|
+ function show_form($msg=NULL) {
|
|
+ if ($msg && $this->boolean('ajax')) {
|
|
+ $this->ajax_error_msg($msg);
|
|
+ return;
|
|
+ }
|
|
+ $content = $this->trimmed('status_textarea');
|
|
+ if (!$content) {
|
|
+ $replyto = $this->trimmed('replyto');
|
|
+ $profile = Profile::staticGet('nickname', $replyto);
|
|
+ if ($profile) {
|
|
+ $content = '@' . $profile->nickname . ' ';
|
|
+ }
|
|
+ }
|
|
+ common_show_header(_('New notice'), NULL, $content,
|
|
+ array($this, 'show_top'));
|
|
+ if ($msg) {
|
|
+ common_element('p', array('id' => 'error'), $msg);
|
|
+ }
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/newnotice.php 149
|
|
- function show_notice($notice) {
|
|
+ function show_notice($notice) {
|
|
hunk ./actions/newnotice.php 152
|
|
- }
|
|
+ }
|
|
hunk ./actions/noticesearch.php 28
|
|
- function get_instructions() {
|
|
- return _('Search for notices on %%site.name%% by their contents. Separate search terms by spaces; they must be 3 characters or more.');
|
|
- }
|
|
+ function get_instructions() {
|
|
+ return _('Search for notices on %%site.name%% by their contents. Separate search terms by spaces; they must be 3 characters or more.');
|
|
+ }
|
|
hunk ./actions/noticesearch.php 32
|
|
- function get_title() {
|
|
- return _('Text search');
|
|
- }
|
|
+ function get_title() {
|
|
+ return _('Text search');
|
|
+ }
|
|
hunk ./actions/noticesearch.php 36
|
|
- function show_results($q, $page) {
|
|
+ function show_results($q, $page) {
|
|
hunk ./actions/noticesearch.php 38
|
|
- $notice = new Notice();
|
|
+ $notice = new Notice();
|
|
hunk ./actions/noticesearch.php 40
|
|
- # lcase it for comparison
|
|
- $q = strtolower($q);
|
|
+ # lcase it for comparison
|
|
+ $q = strtolower($q);
|
|
hunk ./actions/noticesearch.php 46
|
|
- # Ask for an extra to see if there's more.
|
|
- $search_engine->limit((($page-1)*NOTICES_PER_PAGE), NOTICES_PER_PAGE + 1);
|
|
+ # Ask for an extra to see if there's more.
|
|
+ $search_engine->limit((($page-1)*NOTICES_PER_PAGE), NOTICES_PER_PAGE + 1);
|
|
hunk ./actions/noticesearch.php 53
|
|
- $cnt = $notice->find();
|
|
+ $cnt = $notice->find();
|
|
+ }
|
|
+ if ($cnt > 0) {
|
|
+ $terms = preg_split('/[\s,]+/', $q);
|
|
+ common_element_start('ul', array('id' => 'notices'));
|
|
+ for ($i = 0; $i < min($cnt, NOTICES_PER_PAGE); $i++) {
|
|
+ if ($notice->fetch()) {
|
|
+ $this->show_notice($notice, $terms);
|
|
+ } else {
|
|
+ // shouldn't happen!
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
+ common_element_end('ul');
|
|
+ } else {
|
|
+ common_element('p', 'error', _('No results'));
|
|
hunk ./actions/noticesearch.php 70
|
|
- if ($cnt > 0) {
|
|
- $terms = preg_split('/[\s,]+/', $q);
|
|
- common_element_start('ul', array('id' => 'notices'));
|
|
- for ($i = 0; $i < min($cnt, NOTICES_PER_PAGE); $i++) {
|
|
- if ($notice->fetch()) {
|
|
- $this->show_notice($notice, $terms);
|
|
- } else {
|
|
- // shouldn't happen!
|
|
- break;
|
|
- }
|
|
- }
|
|
- common_element_end('ul');
|
|
- } else {
|
|
- common_element('p', 'error', _('No results'));
|
|
- }
|
|
hunk ./actions/noticesearch.php 71
|
|
- common_pagination($page > 1, $cnt > NOTICES_PER_PAGE,
|
|
- $page, 'noticesearch', array('q' => $q));
|
|
- }
|
|
+ common_pagination($page > 1, $cnt > NOTICES_PER_PAGE,
|
|
+ $page, 'noticesearch', array('q' => $q));
|
|
+ }
|
|
hunk ./actions/noticesearch.php 75
|
|
- function show_header($arr) {
|
|
- if ($arr) {
|
|
- $q = $arr[0];
|
|
- }
|
|
- if ($q) {
|
|
- common_element('link', array('rel' => 'alternate',
|
|
- 'href' => common_local_url('noticesearchrss',
|
|
- array('q' => $q)),
|
|
- 'type' => 'application/rss+xml',
|
|
- 'title' => _('Search Stream Feed')));
|
|
- }
|
|
- }
|
|
+ function show_header($arr) {
|
|
+ if ($arr) {
|
|
+ $q = $arr[0];
|
|
+ }
|
|
+ if ($q) {
|
|
+ common_element('link', array('rel' => 'alternate',
|
|
+ 'href' => common_local_url('noticesearchrss',
|
|
+ array('q' => $q)),
|
|
+ 'type' => 'application/rss+xml',
|
|
+ 'title' => _('Search Stream Feed')));
|
|
+ }
|
|
+ }
|
|
hunk ./actions/noticesearch.php 88
|
|
- # XXX: refactor and combine with StreamAction::show_notice()
|
|
+ # XXX: refactor and combine with StreamAction::show_notice()
|
|
hunk ./actions/noticesearch.php 90
|
|
- function show_notice($notice, $terms) {
|
|
- $profile = $notice->getProfile();
|
|
- if (!$profile) {
|
|
- common_log_db_error($notice, 'SELECT', __FILE__);
|
|
- $this->server_error(_('Notice without matching profile'));
|
|
- return;
|
|
- }
|
|
- # XXX: RDFa
|
|
- common_element_start('li', array('class' => 'notice_single',
|
|
- 'id' => 'notice-' . $notice->id));
|
|
- $avatar = $profile->getAvatar(AVATAR_STREAM_SIZE);
|
|
- common_element_start('a', array('href' => $profile->profileurl));
|
|
- common_element('img', array('src' => ($avatar) ? common_avatar_display_url($avatar) : common_default_avatar(AVATAR_STREAM_SIZE),
|
|
- 'class' => 'avatar stream',
|
|
- 'width' => AVATAR_STREAM_SIZE,
|
|
- 'height' => AVATAR_STREAM_SIZE,
|
|
- 'alt' =>
|
|
- ($profile->fullname) ? $profile->fullname :
|
|
- $profile->nickname));
|
|
- common_element_end('a');
|
|
- common_element('a', array('href' => $profile->profileurl,
|
|
- 'class' => 'nickname'),
|
|
- $profile->nickname);
|
|
- # FIXME: URL, image, video, audio
|
|
- common_element_start('p', array('class' => 'content'));
|
|
- if ($notice->rendered) {
|
|
- common_raw($this->highlight($notice->rendered, $terms));
|
|
- } else {
|
|
- # XXX: may be some uncooked notices in the DB,
|
|
- # we cook them right now. This should probably disappear in future
|
|
- # versions (>> 0.4.x)
|
|
- common_raw($this->highlight(common_render_content($notice->content, $notice), $terms));
|
|
- }
|
|
- common_element_end('p');
|
|
- $noticeurl = common_local_url('shownotice', array('notice' => $notice->id));
|
|
- common_element_start('p', 'time');
|
|
- common_element('a', array('class' => 'permalink',
|
|
- 'href' => $noticeurl,
|
|
- 'title' => common_exact_date($notice->created)),
|
|
- common_date_string($notice->created));
|
|
- if ($notice->reply_to) {
|
|
- $replyurl = common_local_url('shownotice', array('notice' => $notice->reply_to));
|
|
- common_text(' (');
|
|
- common_element('a', array('class' => 'inreplyto',
|
|
- 'href' => $replyurl),
|
|
- _('in reply to...'));
|
|
- common_text(')');
|
|
- }
|
|
- common_element_start('a',
|
|
- array('href' => common_local_url('newnotice',
|
|
- array('replyto' => $profile->nickname)),
|
|
- 'onclick' => 'doreply("'.$profile->nickname.'"); return false',
|
|
- 'title' => _('reply'),
|
|
- 'class' => 'replybutton'));
|
|
- common_hidden('posttoken', common_session_token());
|
|
-
|
|
- common_raw('→');
|
|
- common_element_end('a');
|
|
- common_element_end('p');
|
|
- common_element_end('li');
|
|
- }
|
|
+ function show_notice($notice, $terms) {
|
|
+ $profile = $notice->getProfile();
|
|
+ if (!$profile) {
|
|
+ common_log_db_error($notice, 'SELECT', __FILE__);
|
|
+ $this->server_error(_('Notice without matching profile'));
|
|
+ return;
|
|
+ }
|
|
+ # XXX: RDFa
|
|
+ common_element_start('li', array('class' => 'notice_single',
|
|
+ 'id' => 'notice-' . $notice->id));
|
|
+ $avatar = $profile->getAvatar(AVATAR_STREAM_SIZE);
|
|
+ common_element_start('a', array('href' => $profile->profileurl));
|
|
+ common_element('img', array('src' => ($avatar) ? common_avatar_display_url($avatar) : common_default_avatar(AVATAR_STREAM_SIZE),
|
|
+ 'class' => 'avatar stream',
|
|
+ 'width' => AVATAR_STREAM_SIZE,
|
|
+ 'height' => AVATAR_STREAM_SIZE,
|
|
+ 'alt' =>
|
|
+ ($profile->fullname) ? $profile->fullname :
|
|
+ $profile->nickname));
|
|
+ common_element_end('a');
|
|
+ common_element('a', array('href' => $profile->profileurl,
|
|
+ 'class' => 'nickname'),
|
|
+ $profile->nickname);
|
|
+ # FIXME: URL, image, video, audio
|
|
+ common_element_start('p', array('class' => 'content'));
|
|
+ if ($notice->rendered) {
|
|
+ common_raw($this->highlight($notice->rendered, $terms));
|
|
+ } else {
|
|
+ # XXX: may be some uncooked notices in the DB,
|
|
+ # we cook them right now. This should probably disappear in future
|
|
+ # versions (>> 0.4.x)
|
|
+ common_raw($this->highlight(common_render_content($notice->content, $notice), $terms));
|
|
+ }
|
|
+ common_element_end('p');
|
|
+ $noticeurl = common_local_url('shownotice', array('notice' => $notice->id));
|
|
+ common_element_start('p', 'time');
|
|
+ common_element('a', array('class' => 'permalink',
|
|
+ 'href' => $noticeurl,
|
|
+ 'title' => common_exact_date($notice->created)),
|
|
+ common_date_string($notice->created));
|
|
+ if ($notice->reply_to) {
|
|
+ $replyurl = common_local_url('shownotice', array('notice' => $notice->reply_to));
|
|
+ common_text(' (');
|
|
+ common_element('a', array('class' => 'inreplyto',
|
|
+ 'href' => $replyurl),
|
|
+ _('in reply to...'));
|
|
+ common_text(')');
|
|
+ }
|
|
+ common_element_start('a',
|
|
+ array('href' => common_local_url('newnotice',
|
|
+ array('replyto' => $profile->nickname)),
|
|
+ 'onclick' => 'doreply("'.$profile->nickname.'"); return false',
|
|
+ 'title' => _('reply'),
|
|
+ 'class' => 'replybutton'));
|
|
+ common_hidden('posttoken', common_session_token());
|
|
+
|
|
+ common_raw('→');
|
|
+ common_element_end('a');
|
|
+ common_element_end('p');
|
|
+ common_element_end('li');
|
|
+ }
|
|
hunk ./actions/noticesearch.php 152
|
|
- function highlight($text, $terms) {
|
|
- /* Highligh serach terms */
|
|
- $pattern = '/('.implode('|',array_map('htmlspecialchars', $terms)).')/i';
|
|
- $result = preg_replace($pattern, '<strong>\\1</strong>', $text);
|
|
+ function highlight($text, $terms) {
|
|
+ /* Highligh serach terms */
|
|
+ $pattern = '/('.implode('|',array_map('htmlspecialchars', $terms)).')/i';
|
|
+ $result = preg_replace($pattern, '<strong>\\1</strong>', $text);
|
|
hunk ./actions/noticesearch.php 157
|
|
- /* Remove highlighting from inside links, loop incase multiple highlights in links */
|
|
- $pattern = '/(href="[^"]*)<strong>('.implode('|',array_map('htmlspecialchars', $terms)).')<\/strong>([^"]*")/iU';
|
|
- do {
|
|
- $result = preg_replace($pattern, '\\1\\2\\3', $result, -1, $count);
|
|
- } while ($count);
|
|
- return $result;
|
|
- }
|
|
+ /* Remove highlighting from inside links, loop incase multiple highlights in links */
|
|
+ $pattern = '/(href="[^"]*)<strong>('.implode('|',array_map('htmlspecialchars', $terms)).')<\/strong>([^"]*")/iU';
|
|
+ do {
|
|
+ $result = preg_replace($pattern, '\\1\\2\\3', $result, -1, $count);
|
|
+ } while ($count);
|
|
+ return $result;
|
|
+ }
|
|
hunk ./actions/noticesearchrss.php 28
|
|
- function init() {
|
|
- return true;
|
|
- }
|
|
+ function init() {
|
|
+ return true;
|
|
+ }
|
|
hunk ./actions/noticesearchrss.php 32
|
|
- function get_notices($limit=0) {
|
|
+ function get_notices($limit=0) {
|
|
hunk ./actions/noticesearchrss.php 34
|
|
- $q = $this->trimmed('q');
|
|
- $notices = array();
|
|
+ $q = $this->trimmed('q');
|
|
+ $notices = array();
|
|
hunk ./actions/noticesearchrss.php 37
|
|
- $notice = new Notice();
|
|
+ $notice = new Notice();
|
|
hunk ./actions/noticesearchrss.php 39
|
|
- # lcase it for comparison
|
|
- $q = strtolower($q);
|
|
+ # lcase it for comparison
|
|
+ $q = strtolower($q);
|
|
hunk ./actions/noticesearchrss.php 45
|
|
- if (!$limit) $limit = 20;
|
|
+ if (!$limit) $limit = 20;
|
|
hunk ./actions/noticesearchrss.php 48
|
|
- $notice->find();
|
|
+ $notice->find();
|
|
hunk ./actions/noticesearchrss.php 50
|
|
- while ($notice->fetch()) {
|
|
- $notices[] = clone($notice);
|
|
- }
|
|
+ while ($notice->fetch()) {
|
|
+ $notices[] = clone($notice);
|
|
+ }
|
|
hunk ./actions/noticesearchrss.php 54
|
|
- return $notices;
|
|
- }
|
|
+ return $notices;
|
|
+ }
|
|
hunk ./actions/noticesearchrss.php 57
|
|
- function get_channel() {
|
|
- global $config;
|
|
- $q = $this->trimmed('q');
|
|
- $c = array('url' => common_local_url('noticesearchrss', array('q' => $q)),
|
|
- 'title' => $config['site']['name'] . sprintf(_(' Search Stream for "%s"'), $q),
|
|
- 'link' => common_local_url('noticesearch', array('q' => $q)),
|
|
- 'description' => sprintf(_('All updates matching search term "%s"'), $q));
|
|
- return $c;
|
|
- }
|
|
+ function get_channel() {
|
|
+ global $config;
|
|
+ $q = $this->trimmed('q');
|
|
+ $c = array('url' => common_local_url('noticesearchrss', array('q' => $q)),
|
|
+ 'title' => $config['site']['name'] . sprintf(_(' Search Stream for "%s"'), $q),
|
|
+ 'link' => common_local_url('noticesearch', array('q' => $q)),
|
|
+ 'description' => sprintf(_('All updates matching search term "%s"'), $q));
|
|
+ return $c;
|
|
+ }
|
|
hunk ./actions/noticesearchrss.php 67
|
|
- function get_image() {
|
|
- return NULL;
|
|
- }
|
|
+ function get_image() {
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./actions/nudge.php 26
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/nudge.php 29
|
|
- if (!common_logged_in()) {
|
|
- $this->client_error(_('Not logged in.'));
|
|
- return;
|
|
- }
|
|
+ if (!common_logged_in()) {
|
|
+ $this->client_error(_('Not logged in.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/nudge.php 34
|
|
- $user = common_current_user();
|
|
- $other = User::staticGet('nickname', $this->arg('nickname'));
|
|
+ $user = common_current_user();
|
|
+ $other = User::staticGet('nickname', $this->arg('nickname'));
|
|
hunk ./actions/nudge.php 37
|
|
- if ($_SERVER['REQUEST_METHOD'] != 'POST') {
|
|
- common_redirect(common_local_url('showstream', array('nickname' => $other->nickname)));
|
|
- return;
|
|
- }
|
|
+ if ($_SERVER['REQUEST_METHOD'] != 'POST') {
|
|
+ common_redirect(common_local_url('showstream', array('nickname' => $other->nickname)));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/nudge.php 42
|
|
- # CSRF protection
|
|
+ # CSRF protection
|
|
hunk ./actions/nudge.php 44
|
|
- $token = $this->trimmed('token');
|
|
-
|
|
- if (!$token || $token != common_session_token()) {
|
|
- $this->client_error(_('There was a problem with your session token. Try again, please.'));
|
|
- return;
|
|
- }
|
|
+ $token = $this->trimmed('token');
|
|
+
|
|
+ if (!$token || $token != common_session_token()) {
|
|
+ $this->client_error(_('There was a problem with your session token. Try again, please.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/nudge.php 56
|
|
- $this->notify($user, $other);
|
|
+ $this->notify($user, $other);
|
|
hunk ./actions/nudge.php 58
|
|
- if ($this->boolean('ajax')) {
|
|
- common_start_html('text/xml;charset=utf-8', true);
|
|
- common_element_start('head');
|
|
- common_element('title', null, _('Nudge sent'));
|
|
- common_element_end('head');
|
|
- common_element_start('body');
|
|
- common_nudge_response();
|
|
- common_element_end('body');
|
|
- common_element_end('html');
|
|
- } else {
|
|
+ if ($this->boolean('ajax')) {
|
|
+ common_start_html('text/xml;charset=utf-8', true);
|
|
+ common_element_start('head');
|
|
+ common_element('title', null, _('Nudge sent'));
|
|
+ common_element_end('head');
|
|
+ common_element_start('body');
|
|
+ common_nudge_response();
|
|
+ common_element_end('body');
|
|
+ common_element_end('html');
|
|
+ } else {
|
|
hunk ./actions/nudge.php 69
|
|
- common_redirect(common_local_url('showstream',
|
|
- array('nickname' => $other->nickname)));
|
|
- }
|
|
- }
|
|
+ common_redirect(common_local_url('showstream',
|
|
+ array('nickname' => $other->nickname)));
|
|
+ }
|
|
+ }
|
|
hunk ./actions/nudge.php 74
|
|
- function notify($user, $other) {
|
|
- if ($other->id != $user->id) {
|
|
- if ($other->email && $other->emailnotifynudge) {
|
|
- mail_notify_nudge($user, $other);
|
|
- }
|
|
- # XXX: notify by IM
|
|
- # XXX: notify by SMS
|
|
- }
|
|
- }
|
|
+ function notify($user, $other) {
|
|
+ if ($other->id != $user->id) {
|
|
+ if ($other->email && $other->emailnotifynudge) {
|
|
+ mail_notify_nudge($user, $other);
|
|
+ }
|
|
+ # XXX: notify by IM
|
|
+ # XXX: notify by SMS
|
|
+ }
|
|
+ }
|
|
hunk ./actions/openidlogin.php 26
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
- if (common_logged_in()) {
|
|
- common_user_error(_('Already logged in.'));
|
|
- } else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
|
- $openid_url = $this->trimmed('openid_url');
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
+ if (common_logged_in()) {
|
|
+ common_user_error(_('Already logged in.'));
|
|
+ } else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
|
+ $openid_url = $this->trimmed('openid_url');
|
|
hunk ./actions/openidlogin.php 33
|
|
- # CSRF protection
|
|
- $token = $this->trimmed('token');
|
|
- if (!$token || $token != common_session_token()) {
|
|
- $this->show_form(_('There was a problem with your session token. Try again, please.'), $openid_url);
|
|
- return;
|
|
- }
|
|
+ # CSRF protection
|
|
+ $token = $this->trimmed('token');
|
|
+ if (!$token || $token != common_session_token()) {
|
|
+ $this->show_form(_('There was a problem with your session token. Try again, please.'), $openid_url);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/openidlogin.php 40
|
|
- $rememberme = $this->boolean('rememberme');
|
|
-
|
|
- common_ensure_session();
|
|
-
|
|
- $_SESSION['openid_rememberme'] = $rememberme;
|
|
-
|
|
- $result = oid_authenticate($openid_url,
|
|
- 'finishopenidlogin');
|
|
-
|
|
- if (is_string($result)) { # error message
|
|
- unset($_SESSION['openid_rememberme']);
|
|
- $this->show_form($result, $openid_url);
|
|
- }
|
|
- } else {
|
|
- $openid_url = oid_get_last();
|
|
- $this->show_form(NULL, $openid_url);
|
|
- }
|
|
- }
|
|
+ $rememberme = $this->boolean('rememberme');
|
|
+
|
|
+ common_ensure_session();
|
|
+
|
|
+ $_SESSION['openid_rememberme'] = $rememberme;
|
|
+
|
|
+ $result = oid_authenticate($openid_url,
|
|
+ 'finishopenidlogin');
|
|
+
|
|
+ if (is_string($result)) { # error message
|
|
+ unset($_SESSION['openid_rememberme']);
|
|
+ $this->show_form($result, $openid_url);
|
|
+ }
|
|
+ } else {
|
|
+ $openid_url = oid_get_last();
|
|
+ $this->show_form(NULL, $openid_url);
|
|
+ }
|
|
+ }
|
|
hunk ./actions/openidlogin.php 59
|
|
- function get_instructions() {
|
|
- return _('Login with an [OpenID](%%doc.openid%%) account.');
|
|
- }
|
|
+ function get_instructions() {
|
|
+ return _('Login with an [OpenID](%%doc.openid%%) account.');
|
|
+ }
|
|
hunk ./actions/openidlogin.php 63
|
|
- function show_top($error=NULL) {
|
|
- if ($error) {
|
|
- common_element('div', array('class' => 'error'), $error);
|
|
- } else {
|
|
- $instr = $this->get_instructions();
|
|
- $output = common_markup_to_html($instr);
|
|
- common_element_start('div', 'instructions');
|
|
- common_raw($output);
|
|
- common_element_end('div');
|
|
- }
|
|
- }
|
|
+ function show_top($error=NULL) {
|
|
+ if ($error) {
|
|
+ common_element('div', array('class' => 'error'), $error);
|
|
+ } else {
|
|
+ $instr = $this->get_instructions();
|
|
+ $output = common_markup_to_html($instr);
|
|
+ common_element_start('div', 'instructions');
|
|
+ common_raw($output);
|
|
+ common_element_end('div');
|
|
+ }
|
|
+ }
|
|
hunk ./actions/openidlogin.php 75
|
|
- function show_form($error=NULL, $openid_url) {
|
|
- common_show_header(_('OpenID Login'), NULL, $error, array($this, 'show_top'));
|
|
- $formaction = common_local_url('openidlogin');
|
|
- common_element_start('form', array('method' => 'post',
|
|
- 'id' => 'openidlogin',
|
|
- 'action' => $formaction));
|
|
- common_hidden('token', common_session_token());
|
|
- common_input('openid_url', _('OpenID URL'),
|
|
- $openid_url,
|
|
- _('Your OpenID URL'));
|
|
- common_checkbox('rememberme', _('Remember me'), false,
|
|
- _('Automatically login in the future; ' .
|
|
- 'not for shared computers!'));
|
|
- common_submit('submit', _('Login'));
|
|
- common_element_end('form');
|
|
- common_show_footer();
|
|
- }
|
|
+ function show_form($error=NULL, $openid_url) {
|
|
+ common_show_header(_('OpenID Login'), NULL, $error, array($this, 'show_top'));
|
|
+ $formaction = common_local_url('openidlogin');
|
|
+ common_element_start('form', array('method' => 'post',
|
|
+ 'id' => 'openidlogin',
|
|
+ 'action' => $formaction));
|
|
+ common_hidden('token', common_session_token());
|
|
+ common_input('openid_url', _('OpenID URL'),
|
|
+ $openid_url,
|
|
+ _('Your OpenID URL'));
|
|
+ common_checkbox('rememberme', _('Remember me'), false,
|
|
+ _('Automatically login in the future; ' .
|
|
+ 'not for shared computers!'));
|
|
+ common_submit('submit', _('Login'));
|
|
+ common_element_end('form');
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/openidsettings.php 27
|
|
- function get_instructions() {
|
|
- return _('[OpenID](%%doc.openid%%) lets you log into many sites ' .
|
|
- ' with the same user account. '.
|
|
- ' Manage your associated OpenIDs from here.');
|
|
- }
|
|
+ function get_instructions() {
|
|
+ return _('[OpenID](%%doc.openid%%) lets you log into many sites ' .
|
|
+ ' with the same user account. '.
|
|
+ ' Manage your associated OpenIDs from here.');
|
|
+ }
|
|
hunk ./actions/openidsettings.php 33
|
|
- function show_form($msg=NULL, $success=false) {
|
|
+ function show_form($msg=NULL, $success=false) {
|
|
hunk ./actions/openidsettings.php 35
|
|
- $user = common_current_user();
|
|
+ $user = common_current_user();
|
|
hunk ./actions/openidsettings.php 37
|
|
- $this->form_header(_('OpenID settings'), $msg, $success);
|
|
+ $this->form_header(_('OpenID settings'), $msg, $success);
|
|
hunk ./actions/openidsettings.php 39
|
|
- common_element_start('form', array('method' => 'post',
|
|
- 'id' => 'openidadd',
|
|
- 'action' =>
|
|
- common_local_url('openidsettings')));
|
|
- common_hidden('token', common_session_token());
|
|
- common_element('h2', NULL, _('Add OpenID'));
|
|
- common_element('p', NULL,
|
|
- _('If you want to add an OpenID to your account, ' .
|
|
- 'enter it in the box below and click "Add".'));
|
|
- common_element_start('p');
|
|
- common_element('label', array('for' => 'openid_url'),
|
|
- _('OpenID URL'));
|
|
- common_element('input', array('name' => 'openid_url',
|
|
- 'type' => 'text',
|
|
- 'id' => 'openid_url'));
|
|
- common_element('input', array('type' => 'submit',
|
|
- 'id' => 'add',
|
|
- 'name' => 'add',
|
|
- 'class' => 'submit',
|
|
- 'value' => _('Add')));
|
|
- common_element_end('p');
|
|
- common_element_end('form');
|
|
+ common_element_start('form', array('method' => 'post',
|
|
+ 'id' => 'openidadd',
|
|
+ 'action' =>
|
|
+ common_local_url('openidsettings')));
|
|
+ common_hidden('token', common_session_token());
|
|
+ common_element('h2', NULL, _('Add OpenID'));
|
|
+ common_element('p', NULL,
|
|
+ _('If you want to add an OpenID to your account, ' .
|
|
+ 'enter it in the box below and click "Add".'));
|
|
+ common_element_start('p');
|
|
+ common_element('label', array('for' => 'openid_url'),
|
|
+ _('OpenID URL'));
|
|
+ common_element('input', array('name' => 'openid_url',
|
|
+ 'type' => 'text',
|
|
+ 'id' => 'openid_url'));
|
|
+ common_element('input', array('type' => 'submit',
|
|
+ 'id' => 'add',
|
|
+ 'name' => 'add',
|
|
+ 'class' => 'submit',
|
|
+ 'value' => _('Add')));
|
|
+ common_element_end('p');
|
|
+ common_element_end('form');
|
|
hunk ./actions/openidsettings.php 62
|
|
- $oid = new User_openid();
|
|
- $oid->user_id = $user->id;
|
|
+ $oid = new User_openid();
|
|
+ $oid->user_id = $user->id;
|
|
hunk ./actions/openidsettings.php 65
|
|
- $cnt = $oid->find();
|
|
+ $cnt = $oid->find();
|
|
hunk ./actions/openidsettings.php 67
|
|
- if ($cnt > 0) {
|
|
+ if ($cnt > 0) {
|
|
hunk ./actions/openidsettings.php 69
|
|
- common_element('h2', NULL, _('Remove OpenID'));
|
|
+ common_element('h2', NULL, _('Remove OpenID'));
|
|
hunk ./actions/openidsettings.php 71
|
|
- if ($cnt == 1 && !$user->password) {
|
|
+ if ($cnt == 1 && !$user->password) {
|
|
hunk ./actions/openidsettings.php 73
|
|
- common_element('p', NULL,
|
|
- _('Removing your only OpenID would make it impossible to log in! ' .
|
|
- 'If you need to remove it, add another OpenID first.'));
|
|
+ common_element('p', NULL,
|
|
+ _('Removing your only OpenID would make it impossible to log in! ' .
|
|
+ 'If you need to remove it, add another OpenID first.'));
|
|
hunk ./actions/openidsettings.php 77
|
|
- if ($oid->fetch()) {
|
|
- common_element_start('p');
|
|
- common_element('a', array('href' => $oid->canonical),
|
|
- $oid->display);
|
|
- common_element_end('p');
|
|
- }
|
|
+ if ($oid->fetch()) {
|
|
+ common_element_start('p');
|
|
+ common_element('a', array('href' => $oid->canonical),
|
|
+ $oid->display);
|
|
+ common_element_end('p');
|
|
+ }
|
|
hunk ./actions/openidsettings.php 84
|
|
- } else {
|
|
+ } else {
|
|
hunk ./actions/openidsettings.php 86
|
|
- common_element('p', NULL,
|
|
- _('You can remove an OpenID from your account '.
|
|
- 'by clicking the button marked "Remove".'));
|
|
- $idx = 0;
|
|
+ common_element('p', NULL,
|
|
+ _('You can remove an OpenID from your account '.
|
|
+ 'by clicking the button marked "Remove".'));
|
|
+ $idx = 0;
|
|
hunk ./actions/openidsettings.php 91
|
|
- while ($oid->fetch()) {
|
|
- common_element_start('form', array('method' => 'POST',
|
|
- 'id' => 'openiddelete' . $idx,
|
|
- 'action' =>
|
|
- common_local_url('openidsettings')));
|
|
- common_element_start('p');
|
|
- common_hidden('token', common_session_token());
|
|
- common_element('a', array('href' => $oid->canonical),
|
|
- $oid->display);
|
|
- common_element('input', array('type' => 'hidden',
|
|
- 'id' => 'openid_url'.$idx,
|
|
- 'name' => 'openid_url',
|
|
- 'value' => $oid->canonical));
|
|
- common_element('input', array('type' => 'submit',
|
|
- 'id' => 'remove'.$idx,
|
|
- 'name' => 'remove',
|
|
- 'class' => 'submit',
|
|
- 'value' => _('Remove')));
|
|
- common_element_end('p');
|
|
- common_element_end('form');
|
|
- $idx++;
|
|
- }
|
|
- }
|
|
- }
|
|
+ while ($oid->fetch()) {
|
|
+ common_element_start('form', array('method' => 'POST',
|
|
+ 'id' => 'openiddelete' . $idx,
|
|
+ 'action' =>
|
|
+ common_local_url('openidsettings')));
|
|
+ common_element_start('p');
|
|
+ common_hidden('token', common_session_token());
|
|
+ common_element('a', array('href' => $oid->canonical),
|
|
+ $oid->display);
|
|
+ common_element('input', array('type' => 'hidden',
|
|
+ 'id' => 'openid_url'.$idx,
|
|
+ 'name' => 'openid_url',
|
|
+ 'value' => $oid->canonical));
|
|
+ common_element('input', array('type' => 'submit',
|
|
+ 'id' => 'remove'.$idx,
|
|
+ 'name' => 'remove',
|
|
+ 'class' => 'submit',
|
|
+ 'value' => _('Remove')));
|
|
+ common_element_end('p');
|
|
+ common_element_end('form');
|
|
+ $idx++;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
hunk ./actions/openidsettings.php 116
|
|
- common_show_footer();
|
|
- }
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/openidsettings.php 119
|
|
- function handle_post() {
|
|
- # CSRF protection
|
|
- $token = $this->trimmed('token');
|
|
- if (!$token || $token != common_session_token()) {
|
|
- $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
- return;
|
|
- }
|
|
+ function handle_post() {
|
|
+ # CSRF protection
|
|
+ $token = $this->trimmed('token');
|
|
+ if (!$token || $token != common_session_token()) {
|
|
+ $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/openidsettings.php 127
|
|
- if ($this->arg('add')) {
|
|
- $result = oid_authenticate($this->trimmed('openid_url'), 'finishaddopenid');
|
|
- if (is_string($result)) { # error message
|
|
- $this->show_form($result);
|
|
- }
|
|
- } else if ($this->arg('remove')) {
|
|
- $this->remove_openid();
|
|
- } else {
|
|
- $this->show_form(_('Something weird happened.'));
|
|
- }
|
|
- }
|
|
+ if ($this->arg('add')) {
|
|
+ $result = oid_authenticate($this->trimmed('openid_url'), 'finishaddopenid');
|
|
+ if (is_string($result)) { # error message
|
|
+ $this->show_form($result);
|
|
+ }
|
|
+ } else if ($this->arg('remove')) {
|
|
+ $this->remove_openid();
|
|
+ } else {
|
|
+ $this->show_form(_('Something weird happened.'));
|
|
+ }
|
|
+ }
|
|
hunk ./actions/openidsettings.php 139
|
|
- function remove_openid() {
|
|
+ function remove_openid() {
|
|
hunk ./actions/openidsettings.php 141
|
|
- $openid_url = $this->trimmed('openid_url');
|
|
- $oid = User_openid::staticGet('canonical', $openid_url);
|
|
- if (!$oid) {
|
|
- $this->show_form(_('No such OpenID.'));
|
|
- return;
|
|
- }
|
|
- $cur = common_current_user();
|
|
- if (!$cur || $oid->user_id != $cur->id) {
|
|
- $this->show_form(_('That OpenID does not belong to you.'));
|
|
- return;
|
|
- }
|
|
- $oid->delete();
|
|
- $this->show_form(_('OpenID removed.'), true);
|
|
- return;
|
|
- }
|
|
+ $openid_url = $this->trimmed('openid_url');
|
|
+ $oid = User_openid::staticGet('canonical', $openid_url);
|
|
+ if (!$oid) {
|
|
+ $this->show_form(_('No such OpenID.'));
|
|
+ return;
|
|
+ }
|
|
+ $cur = common_current_user();
|
|
+ if (!$cur || $oid->user_id != $cur->id) {
|
|
+ $this->show_form(_('That OpenID does not belong to you.'));
|
|
+ return;
|
|
+ }
|
|
+ $oid->delete();
|
|
+ $this->show_form(_('OpenID removed.'), true);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/opensearch.php 24
|
|
- function handle($args) {
|
|
+ function handle($args) {
|
|
hunk ./actions/opensearch.php 26
|
|
- parent::handle($args);
|
|
+ parent::handle($args);
|
|
hunk ./actions/opensearch.php 28
|
|
- $type = $this->trimmed('type');
|
|
+ $type = $this->trimmed('type');
|
|
hunk ./actions/opensearch.php 30
|
|
- $short_name = '';
|
|
- if ($type == 'people') {
|
|
- $type = 'peoplesearch';
|
|
- $short_name = _('People Search');
|
|
- } else {
|
|
- $short_name = _('Notice Search');
|
|
- $type = 'noticesearch';
|
|
- }
|
|
+ $short_name = '';
|
|
+ if ($type == 'people') {
|
|
+ $type = 'peoplesearch';
|
|
+ $short_name = _('People Search');
|
|
+ } else {
|
|
+ $short_name = _('Notice Search');
|
|
+ $type = 'noticesearch';
|
|
+ }
|
|
hunk ./actions/opensearch.php 39
|
|
- header('Content-Type: text/html');
|
|
+ header('Content-Type: text/html');
|
|
hunk ./actions/opensearch.php 41
|
|
- common_start_xml();
|
|
- common_element_start('OpenSearchDescription', array('xmlns' => 'http://a9.com/-/spec/opensearch/1.1/'));
|
|
+ common_start_xml();
|
|
+ common_element_start('OpenSearchDescription', array('xmlns' => 'http://a9.com/-/spec/opensearch/1.1/'));
|
|
hunk ./actions/opensearch.php 44
|
|
- $short_name = common_config('site', 'name').' '.$short_name;
|
|
- common_element('ShortName', NULL, $short_name);
|
|
- common_element('Contact', NULL, common_config('site', 'email'));
|
|
- common_element('Url', array('type' => 'text/html', 'method' => 'get',
|
|
- 'template' => str_replace('---', '{searchTerms}', common_local_url($type, array('q' => '---')))));
|
|
- common_element('Image', array('height' => 16, 'width' => 16, 'type' => 'image/vnd.microsoft.icon'), common_path('favicon.ico'));
|
|
- common_element('Image', array('height' => 50, 'width' => 50, 'type' => 'image/png'), theme_path('logo.png'));
|
|
- common_element('AdultContent', NULL, 'false');
|
|
- common_element('Language', NULL, common_language());
|
|
- common_element('OutputEncoding', NULL, 'UTF-8');
|
|
- common_element('InputEncoding', NULL, 'UTF-8');
|
|
+ $short_name = common_config('site', 'name').' '.$short_name;
|
|
+ common_element('ShortName', NULL, $short_name);
|
|
+ common_element('Contact', NULL, common_config('site', 'email'));
|
|
+ common_element('Url', array('type' => 'text/html', 'method' => 'get',
|
|
+ 'template' => str_replace('---', '{searchTerms}', common_local_url($type, array('q' => '---')))));
|
|
+ common_element('Image', array('height' => 16, 'width' => 16, 'type' => 'image/vnd.microsoft.icon'), common_path('favicon.ico'));
|
|
+ common_element('Image', array('height' => 50, 'width' => 50, 'type' => 'image/png'), theme_path('logo.png'));
|
|
+ common_element('AdultContent', NULL, 'false');
|
|
+ common_element('Language', NULL, common_language());
|
|
+ common_element('OutputEncoding', NULL, 'UTF-8');
|
|
+ common_element('InputEncoding', NULL, 'UTF-8');
|
|
hunk ./actions/opensearch.php 56
|
|
- common_element_end('OpenSearchDescription');
|
|
- common_end_xml();
|
|
- }
|
|
+ common_element_end('OpenSearchDescription');
|
|
+ common_end_xml();
|
|
+ }
|
|
hunk ./actions/othersettings.php 26
|
|
- function get_instructions() {
|
|
- return _('Manage various other options.');
|
|
- }
|
|
+ function get_instructions() {
|
|
+ return _('Manage various other options.');
|
|
+ }
|
|
hunk ./actions/othersettings.php 30
|
|
- function show_form($msg=NULL, $success=false) {
|
|
- $user = common_current_user();
|
|
+ function show_form($msg=NULL, $success=false) {
|
|
+ $user = common_current_user();
|
|
hunk ./actions/othersettings.php 33
|
|
- $this->form_header(_('Other Settings'), $msg, $success);
|
|
+ $this->form_header(_('Other Settings'), $msg, $success);
|
|
hunk ./actions/othersettings.php 35
|
|
- common_element('h2', NULL, _('URL Auto-shortening'));
|
|
- common_element_start('form', array('method' => 'post',
|
|
- 'id' => 'othersettings',
|
|
- 'action' =>
|
|
- common_local_url('othersettings')));
|
|
- common_hidden('token', common_session_token());
|
|
+ common_element('h2', NULL, _('URL Auto-shortening'));
|
|
+ common_element_start('form', array('method' => 'post',
|
|
+ 'id' => 'othersettings',
|
|
+ 'action' =>
|
|
+ common_local_url('othersettings')));
|
|
+ common_hidden('token', common_session_token());
|
|
hunk ./actions/othersettings.php 42
|
|
- $services = array(
|
|
- '' => 'None',
|
|
+ $services = array(
|
|
+ '' => 'None',
|
|
hunk ./actions/othersettings.php 48
|
|
- 'tinyurl.com' => 'tinyurl.com',
|
|
- 'is.gd' => 'is.gd',
|
|
- 'snipr.com' => 'snipr.com',
|
|
- 'metamark.net' => 'metamark.net'
|
|
- );
|
|
+ 'tinyurl.com' => 'tinyurl.com',
|
|
+ 'is.gd' => 'is.gd',
|
|
+ 'snipr.com' => 'snipr.com',
|
|
+ 'metamark.net' => 'metamark.net'
|
|
+ );
|
|
hunk ./actions/othersettings.php 54
|
|
- common_dropdown('urlshorteningservice', _('Service'), $services, _('Automatic shortening service to use.'), FALSE, $user->urlshorteningservice);
|
|
+ common_dropdown('urlshorteningservice', _('Service'), $services, _('Automatic shortening service to use.'), FALSE, $user->urlshorteningservice);
|
|
hunk ./actions/othersettings.php 56
|
|
- common_submit('save', _('Save'));
|
|
+ common_submit('save', _('Save'));
|
|
hunk ./actions/othersettings.php 58
|
|
- common_element_end('form');
|
|
+ common_element_end('form');
|
|
hunk ./actions/othersettings.php 60
|
|
-// common_element('h2', NULL, _('Delete my account'));
|
|
-// $this->show_delete_form();
|
|
+// common_element('h2', NULL, _('Delete my account'));
|
|
+// $this->show_delete_form();
|
|
hunk ./actions/othersettings.php 63
|
|
- common_show_footer();
|
|
- }
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/othersettings.php 66
|
|
- function show_feeds_list($feeds) {
|
|
- common_element_start('div', array('class' => 'feedsdel'));
|
|
- common_element('p', null, 'Feeds:');
|
|
- common_element_start('ul', array('class' => 'xoxo'));
|
|
+ function show_feeds_list($feeds) {
|
|
+ common_element_start('div', array('class' => 'feedsdel'));
|
|
+ common_element('p', null, 'Feeds:');
|
|
+ common_element_start('ul', array('class' => 'xoxo'));
|
|
hunk ./actions/othersettings.php 71
|
|
- foreach ($feeds as $key => $value) {
|
|
- $this->common_feed_item($feeds[$key]);
|
|
- }
|
|
- common_element_end('ul');
|
|
- common_element_end('div');
|
|
- }
|
|
+ foreach ($feeds as $key => $value) {
|
|
+ $this->common_feed_item($feeds[$key]);
|
|
+ }
|
|
+ common_element_end('ul');
|
|
+ common_element_end('div');
|
|
+ }
|
|
hunk ./actions/othersettings.php 79
|
|
- function common_feed_item($feed) {
|
|
+ function common_feed_item($feed) {
|
|
hunk ./actions/othersettings.php 81
|
|
- $nickname = $user->nickname;
|
|
+ $nickname = $user->nickname;
|
|
hunk ./actions/othersettings.php 83
|
|
- switch($feed['item']) {
|
|
- case 'notices': default:
|
|
- $feed_classname = $feed['type'];
|
|
- $feed_mimetype = "application/".$feed['type']."+xml";
|
|
- $feed_title = "$nickname's ".$feed['version']." notice feed";
|
|
- $feed['textContent'] = "RSS";
|
|
- break;
|
|
+ switch($feed['item']) {
|
|
+ case 'notices': default:
|
|
+ $feed_classname = $feed['type'];
|
|
+ $feed_mimetype = "application/".$feed['type']."+xml";
|
|
+ $feed_title = "$nickname's ".$feed['version']." notice feed";
|
|
+ $feed['textContent'] = "RSS";
|
|
+ break;
|
|
hunk ./actions/othersettings.php 91
|
|
- case 'foaf':
|
|
- $feed_classname = "foaf";
|
|
- $feed_mimetype = "application/".$feed['type']."+xml";
|
|
- $feed_title = "$nickname's FOAF file";
|
|
- $feed['textContent'] = "FOAF";
|
|
- break;
|
|
- }
|
|
- common_element_start('li');
|
|
- common_element('a', array('href' => $feed['href'],
|
|
- 'class' => $feed_classname,
|
|
- 'type' => $feed_mimetype,
|
|
- 'title' => $feed_title),
|
|
- $feed['textContent']);
|
|
- common_element_end('li');
|
|
- }
|
|
+ case 'foaf':
|
|
+ $feed_classname = "foaf";
|
|
+ $feed_mimetype = "application/".$feed['type']."+xml";
|
|
+ $feed_title = "$nickname's FOAF file";
|
|
+ $feed['textContent'] = "FOAF";
|
|
+ break;
|
|
+ }
|
|
+ common_element_start('li');
|
|
+ common_element('a', array('href' => $feed['href'],
|
|
+ 'class' => $feed_classname,
|
|
+ 'type' => $feed_mimetype,
|
|
+ 'title' => $feed_title),
|
|
+ $feed['textContent']);
|
|
+ common_element_end('li');
|
|
+ }
|
|
hunk ./actions/othersettings.php 107
|
|
-// function show_delete_form() {
|
|
-// $user = common_current_user();
|
|
+// function show_delete_form() {
|
|
+// $user = common_current_user();
|
|
hunk ./actions/othersettings.php 113
|
|
-// common_element_start('form', array('method' => 'POST',
|
|
-// 'id' => 'delete',
|
|
-// 'action' =>
|
|
-// common_local_url('deleteprofile')));
|
|
+// common_element_start('form', array('method' => 'POST',
|
|
+// 'id' => 'delete',
|
|
+// 'action' =>
|
|
+// common_local_url('deleteprofile')));
|
|
hunk ./actions/othersettings.php 118
|
|
-// common_hidden('token', common_session_token());
|
|
+// common_hidden('token', common_session_token());
|
|
hunk ./actions/othersettings.php 121
|
|
-// $this->show_feeds_list(array(0=>array('href'=>common_local_url('userrss', array('limit' => $notice_count, 'nickname' => $user->nickname)),
|
|
-// 'type' => 'rss',
|
|
-// 'version' => 'RSS 1.0',
|
|
-// 'item' => 'notices'),
|
|
-// 1=>array('href'=>common_local_url('foaf',array('nickname' => $user->nickname)),
|
|
-// 'type' => 'rdf',
|
|
-// 'version' => 'FOAF',
|
|
-// 'item' => 'foaf')));
|
|
+// $this->show_feeds_list(array(0=>array('href'=>common_local_url('userrss', array('limit' => $notice_count, 'nickname' => $user->nickname)),
|
|
+// 'type' => 'rss',
|
|
+// 'version' => 'RSS 1.0',
|
|
+// 'item' => 'notices'),
|
|
+// 1=>array('href'=>common_local_url('foaf',array('nickname' => $user->nickname)),
|
|
+// 'type' => 'rdf',
|
|
+// 'version' => 'FOAF',
|
|
+// 'item' => 'foaf')));
|
|
hunk ./actions/othersettings.php 130
|
|
-// common_submit('deleteaccount', _('Delete my account'));
|
|
-// common_element_end('form');
|
|
-// }
|
|
+// common_submit('deleteaccount', _('Delete my account'));
|
|
+// common_element_end('form');
|
|
+// }
|
|
hunk ./actions/othersettings.php 134
|
|
- function handle_post() {
|
|
+ function handle_post() {
|
|
hunk ./actions/othersettings.php 136
|
|
- # CSRF protection
|
|
- $token = $this->trimmed('token');
|
|
- if (!$token || $token != common_session_token()) {
|
|
- $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
- return;
|
|
- }
|
|
+ # CSRF protection
|
|
+ $token = $this->trimmed('token');
|
|
+ if (!$token || $token != common_session_token()) {
|
|
+ $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/othersettings.php 143
|
|
- if ($this->arg('save')) {
|
|
- $this->save_preferences();
|
|
- }else {
|
|
- $this->show_form(_('Unexpected form submission.'));
|
|
- }
|
|
- }
|
|
+ if ($this->arg('save')) {
|
|
+ $this->save_preferences();
|
|
+ }else {
|
|
+ $this->show_form(_('Unexpected form submission.'));
|
|
+ }
|
|
+ }
|
|
hunk ./actions/othersettings.php 150
|
|
- function save_preferences() {
|
|
+ function save_preferences() {
|
|
hunk ./actions/othersettings.php 152
|
|
- $urlshorteningservice = $this->trimmed('urlshorteningservice');
|
|
+ $urlshorteningservice = $this->trimmed('urlshorteningservice');
|
|
hunk ./actions/othersettings.php 154
|
|
- if (!is_null($urlshorteningservice) && strlen($urlshorteningservice) > 50) {
|
|
- $this->show_form(_('URL shortening service is too long (max 50 chars).'));
|
|
- return;
|
|
- }
|
|
+ if (!is_null($urlshorteningservice) && strlen($urlshorteningservice) > 50) {
|
|
+ $this->show_form(_('URL shortening service is too long (max 50 chars).'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/othersettings.php 159
|
|
- $user = common_current_user();
|
|
+ $user = common_current_user();
|
|
hunk ./actions/othersettings.php 161
|
|
- assert(!is_null($user)); # should already be checked
|
|
+ assert(!is_null($user)); # should already be checked
|
|
hunk ./actions/othersettings.php 163
|
|
- $user->query('BEGIN');
|
|
+ $user->query('BEGIN');
|
|
hunk ./actions/othersettings.php 165
|
|
- $original = clone($user);
|
|
+ $original = clone($user);
|
|
hunk ./actions/othersettings.php 167
|
|
- $user->urlshorteningservice = $urlshorteningservice;
|
|
+ $user->urlshorteningservice = $urlshorteningservice;
|
|
hunk ./actions/othersettings.php 169
|
|
- $result = $user->update($original);
|
|
+ $result = $user->update($original);
|
|
hunk ./actions/othersettings.php 171
|
|
- if ($result === FALSE) {
|
|
- common_log_db_error($user, 'UPDATE', __FILE__);
|
|
- common_server_error(_('Couldn\'t update user.'));
|
|
- return;
|
|
- }
|
|
+ if ($result === FALSE) {
|
|
+ common_log_db_error($user, 'UPDATE', __FILE__);
|
|
+ common_server_error(_('Couldn\'t update user.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/othersettings.php 177
|
|
- $user->query('COMMIT');
|
|
+ $user->query('COMMIT');
|
|
hunk ./actions/othersettings.php 179
|
|
- $this->show_form(_('Preferences saved.'), true);
|
|
- }
|
|
+ $this->show_form(_('Preferences saved.'), true);
|
|
+ }
|
|
hunk ./actions/peoplesearch.php 27
|
|
- function get_instructions() {
|
|
- return _('Search for people on %%site.name%% by their name, location, or interests. ' .
|
|
- 'Separate the terms by spaces; they must be 3 characters or more.');
|
|
- }
|
|
+ function get_instructions() {
|
|
+ return _('Search for people on %%site.name%% by their name, location, or interests. ' .
|
|
+ 'Separate the terms by spaces; they must be 3 characters or more.');
|
|
+ }
|
|
hunk ./actions/peoplesearch.php 32
|
|
- function get_title() {
|
|
- return _('People search');
|
|
- }
|
|
+ function get_title() {
|
|
+ return _('People search');
|
|
+ }
|
|
hunk ./actions/peoplesearch.php 36
|
|
- function show_results($q, $page) {
|
|
+ function show_results($q, $page) {
|
|
hunk ./actions/peoplesearch.php 38
|
|
- $profile = new Profile();
|
|
+ $profile = new Profile();
|
|
hunk ./actions/peoplesearch.php 40
|
|
- # lcase it for comparison
|
|
- $q = strtolower($q);
|
|
+ # lcase it for comparison
|
|
+ $q = strtolower($q);
|
|
hunk ./actions/peoplesearch.php 46
|
|
- # Ask for an extra to see if there's more.
|
|
+ # Ask for an extra to see if there's more.
|
|
hunk ./actions/peoplesearch.php 52
|
|
- $cnt = $profile->find();
|
|
+ $cnt = $profile->find();
|
|
+ }
|
|
+ if ($cnt > 0) {
|
|
+ $terms = preg_split('/[\s,]+/', $q);
|
|
+ $results = new PeopleSearchResults($profile, $terms);
|
|
+ $results->show_list();
|
|
+ } else {
|
|
+ common_element('p', 'error', _('No results'));
|
|
hunk ./actions/peoplesearch.php 61
|
|
- if ($cnt > 0) {
|
|
- $terms = preg_split('/[\s,]+/', $q);
|
|
- $results = new PeopleSearchResults($profile, $terms);
|
|
- $results->show_list();
|
|
- } else {
|
|
- common_element('p', 'error', _('No results'));
|
|
- }
|
|
hunk ./actions/peoplesearch.php 62
|
|
- $profile->free();
|
|
-
|
|
- common_pagination($page > 1, $cnt > PROFILES_PER_PAGE,
|
|
- $page, 'peoplesearch', array('q' => $q));
|
|
- }
|
|
+ $profile->free();
|
|
+
|
|
+ common_pagination($page > 1, $cnt > PROFILES_PER_PAGE,
|
|
+ $page, 'peoplesearch', array('q' => $q));
|
|
+ }
|
|
hunk ./actions/peoplesearch.php 71
|
|
- var $terms = NULL;
|
|
- var $pattern = NULL;
|
|
-
|
|
- function __construct($profile, $terms) {
|
|
- parent::__construct($profile);
|
|
- $this->terms = array_map('preg_quote',
|
|
- array_map('htmlspecialchars', $terms));
|
|
- $this->pattern = '/('.implode('|',$terms).')/i';
|
|
- }
|
|
-
|
|
- function highlight($text) {
|
|
- return preg_replace($this->pattern, '<strong>\\1</strong>', htmlspecialchars($text));
|
|
- }
|
|
+ var $terms = NULL;
|
|
+ var $pattern = NULL;
|
|
+
|
|
+ function __construct($profile, $terms) {
|
|
+ parent::__construct($profile);
|
|
+ $this->terms = array_map('preg_quote',
|
|
+ array_map('htmlspecialchars', $terms));
|
|
+ $this->pattern = '/('.implode('|',$terms).')/i';
|
|
+ }
|
|
+
|
|
+ function highlight($text) {
|
|
+ return preg_replace($this->pattern, '<strong>\\1</strong>', htmlspecialchars($text));
|
|
+ }
|
|
hunk ./actions/peopletag.php 25
|
|
-
|
|
- function handle($args) {
|
|
+
|
|
+ function handle($args) {
|
|
hunk ./actions/peopletag.php 28
|
|
- parent::handle($args);
|
|
+ parent::handle($args);
|
|
hunk ./actions/peopletag.php 30
|
|
- $tag = $this->trimmed('tag');
|
|
-
|
|
- if (!common_valid_profile_tag($tag)) {
|
|
- $this->client_error(sprintf(_('Not a valid people tag: %s'), $tag));
|
|
- return;
|
|
- }
|
|
+ $tag = $this->trimmed('tag');
|
|
+
|
|
+ if (!common_valid_profile_tag($tag)) {
|
|
+ $this->client_error(sprintf(_('Not a valid people tag: %s'), $tag));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/peopletag.php 37
|
|
- $page = $this->trimmed('page');
|
|
-
|
|
- if (!$page) {
|
|
- $page = 1;
|
|
- }
|
|
-
|
|
- # Looks like we're good; show the header
|
|
+ $page = $this->trimmed('page');
|
|
+
|
|
+ if (!$page) {
|
|
+ $page = 1;
|
|
+ }
|
|
+
|
|
+ # Looks like we're good; show the header
|
|
hunk ./actions/peopletag.php 45
|
|
- common_show_header(sprintf(_('Users self-tagged with %s - page %d'), $tag, $page),
|
|
- NULL, $tag, array($this, 'show_top'));
|
|
+ common_show_header(sprintf(_('Users self-tagged with %s - page %d'), $tag, $page),
|
|
+ NULL, $tag, array($this, 'show_top'));
|
|
hunk ./actions/peopletag.php 48
|
|
- $this->show_people($tag, $page);
|
|
+ $this->show_people($tag, $page);
|
|
hunk ./actions/peopletag.php 50
|
|
- common_show_footer();
|
|
- }
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/peopletag.php 53
|
|
- function show_people($tag, $page) {
|
|
-
|
|
- $profile = new Profile();
|
|
+ function show_people($tag, $page) {
|
|
+
|
|
+ $profile = new Profile();
|
|
hunk ./actions/peopletag.php 57
|
|
- $offset = ($page-1)*PROFILES_PER_PAGE;
|
|
- $limit = PROFILES_PER_PAGE + 1;
|
|
-
|
|
- if (common_config('db','type') == 'pgsql') {
|
|
- $lim = ' LIMIT ' . $limit . ' OFFSET ' . $offset;
|
|
- } else {
|
|
- $lim = ' LIMIT ' . $offset . ', ' . $limit;
|
|
- }
|
|
+ $offset = ($page-1)*PROFILES_PER_PAGE;
|
|
+ $limit = PROFILES_PER_PAGE + 1;
|
|
+
|
|
+ if (common_config('db','type') == 'pgsql') {
|
|
+ $lim = ' LIMIT ' . $limit . ' OFFSET ' . $offset;
|
|
+ } else {
|
|
+ $lim = ' LIMIT ' . $offset . ', ' . $limit;
|
|
+ }
|
|
hunk ./actions/peopletag.php 66
|
|
- # XXX: memcached this
|
|
-
|
|
- $profile->query(sprintf('SELECT profile.* ' .
|
|
- 'FROM profile JOIN profile_tag ' .
|
|
- 'ON profile.id = profile_tag.tagger ' .
|
|
- 'WHERE profile_tag.tagger = profile_tag.tagged ' .
|
|
- 'AND tag = "%s" ' .
|
|
- 'ORDER BY profile_tag.modified DESC ' .
|
|
- $lim, $tag));
|
|
+ # XXX: memcached this
|
|
+
|
|
+ $profile->query(sprintf('SELECT profile.* ' .
|
|
+ 'FROM profile JOIN profile_tag ' .
|
|
+ 'ON profile.id = profile_tag.tagger ' .
|
|
+ 'WHERE profile_tag.tagger = profile_tag.tagged ' .
|
|
+ 'AND tag = "%s" ' .
|
|
+ 'ORDER BY profile_tag.modified DESC ' .
|
|
+ $lim, $tag));
|
|
hunk ./actions/peopletag.php 76
|
|
- $pl = new ProfileList($profile);
|
|
- $cnt = $pl->show_list();
|
|
-
|
|
- common_pagination($page > 1,
|
|
- $cnt > PROFILES_PER_PAGE,
|
|
- $page,
|
|
- $this->trimmed('action'),
|
|
- array('tag' => $tag));
|
|
- }
|
|
-
|
|
- function show_top($tag) {
|
|
- $instr = sprintf(_('These are users who have tagged themselves "%s" ' .
|
|
- 'to show a common interest, characteristic, hobby or job.'), $tag);
|
|
- common_element_start('div', 'instructions');
|
|
- common_element_start('p');
|
|
- common_text($instr);
|
|
- common_element_end('p');
|
|
- common_element_end('div');
|
|
- }
|
|
+ $pl = new ProfileList($profile);
|
|
+ $cnt = $pl->show_list();
|
|
+
|
|
+ common_pagination($page > 1,
|
|
+ $cnt > PROFILES_PER_PAGE,
|
|
+ $page,
|
|
+ $this->trimmed('action'),
|
|
+ array('tag' => $tag));
|
|
+ }
|
|
+
|
|
+ function show_top($tag) {
|
|
+ $instr = sprintf(_('These are users who have tagged themselves "%s" ' .
|
|
+ 'to show a common interest, characteristic, hobby or job.'), $tag);
|
|
+ common_element_start('div', 'instructions');
|
|
+ common_element_start('p');
|
|
+ common_text($instr);
|
|
+ common_element_end('p');
|
|
+ common_element_end('div');
|
|
+ }
|
|
hunk ./actions/peopletag.php 96
|
|
- function get_title() {
|
|
- return NULL;
|
|
- }
|
|
+ function get_title() {
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./actions/peopletag.php 100
|
|
- function show_header($arr) {
|
|
- return;
|
|
- }
|
|
+ function show_header($arr) {
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/postnotice.php 25
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
- try {
|
|
- common_remove_magic_from_request();
|
|
- $req = OAuthRequest::from_request();
|
|
- # Note: server-to-server function!
|
|
- $server = omb_oauth_server();
|
|
- list($consumer, $token) = $server->verify_request($req);
|
|
- if ($this->save_notice($req, $consumer, $token)) {
|
|
- print "omb_version=".OMB_VERSION_01;
|
|
- }
|
|
- } catch (OAuthException $e) {
|
|
- common_server_error($e->getMessage());
|
|
- return;
|
|
- }
|
|
- }
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
+ try {
|
|
+ common_remove_magic_from_request();
|
|
+ $req = OAuthRequest::from_request();
|
|
+ # Note: server-to-server function!
|
|
+ $server = omb_oauth_server();
|
|
+ list($consumer, $token) = $server->verify_request($req);
|
|
+ if ($this->save_notice($req, $consumer, $token)) {
|
|
+ print "omb_version=".OMB_VERSION_01;
|
|
+ }
|
|
+ } catch (OAuthException $e) {
|
|
+ common_server_error($e->getMessage());
|
|
+ return;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/postnotice.php 42
|
|
- function save_notice(&$req, &$consumer, &$token) {
|
|
- $version = $req->get_parameter('omb_version');
|
|
- if ($version != OMB_VERSION_01) {
|
|
- common_user_error(_('Unsupported OMB version'), 400);
|
|
- return false;
|
|
- }
|
|
- # First, check to see
|
|
- $listenee = $req->get_parameter('omb_listenee');
|
|
- $remote_profile = Remote_profile::staticGet('uri', $listenee);
|
|
- if (!$remote_profile) {
|
|
- common_user_error(_('Profile unknown'), 403);
|
|
- return false;
|
|
- }
|
|
- $sub = Subscription::staticGet('token', $token->key);
|
|
- if (!$sub) {
|
|
- common_user_error(_('No such subscription'), 403);
|
|
- return false;
|
|
- }
|
|
- $content = $req->get_parameter('omb_notice_content');
|
|
+ function save_notice(&$req, &$consumer, &$token) {
|
|
+ $version = $req->get_parameter('omb_version');
|
|
+ if ($version != OMB_VERSION_01) {
|
|
+ common_user_error(_('Unsupported OMB version'), 400);
|
|
+ return false;
|
|
+ }
|
|
+ # First, check to see
|
|
+ $listenee = $req->get_parameter('omb_listenee');
|
|
+ $remote_profile = Remote_profile::staticGet('uri', $listenee);
|
|
+ if (!$remote_profile) {
|
|
+ common_user_error(_('Profile unknown'), 403);
|
|
+ return false;
|
|
+ }
|
|
+ $sub = Subscription::staticGet('token', $token->key);
|
|
+ if (!$sub) {
|
|
+ common_user_error(_('No such subscription'), 403);
|
|
+ return false;
|
|
+ }
|
|
+ $content = $req->get_parameter('omb_notice_content');
|
|
hunk ./actions/postnotice.php 66
|
|
- $notice_uri = $req->get_parameter('omb_notice');
|
|
- if (!Validate::uri($notice_uri) &&
|
|
- !common_valid_tag($notice_uri)) {
|
|
- common_user_error(_('Invalid notice uri'), 400);
|
|
- return false;
|
|
- }
|
|
- $notice_url = $req->get_parameter('omb_notice_url');
|
|
- if ($notice_url && !common_valid_http_url($notice_url)) {
|
|
- common_user_error(_('Invalid notice url'), 400);
|
|
- return false;
|
|
- }
|
|
- $notice = Notice::staticGet('uri', $notice_uri);
|
|
- if (!$notice) {
|
|
- $notice = Notice::saveNew($remote_profile->id, $content, 'omb', false, 0, $notice_uri);
|
|
- if (is_string($notice)) {
|
|
- common_server_serror($notice, 500);
|
|
- return false;
|
|
- }
|
|
- common_broadcast_notice($notice, true);
|
|
- }
|
|
- return true;
|
|
- }
|
|
+ $notice_uri = $req->get_parameter('omb_notice');
|
|
+ if (!Validate::uri($notice_uri) &&
|
|
+ !common_valid_tag($notice_uri)) {
|
|
+ common_user_error(_('Invalid notice uri'), 400);
|
|
+ return false;
|
|
+ }
|
|
+ $notice_url = $req->get_parameter('omb_notice_url');
|
|
+ if ($notice_url && !common_valid_http_url($notice_url)) {
|
|
+ common_user_error(_('Invalid notice url'), 400);
|
|
+ return false;
|
|
+ }
|
|
+ $notice = Notice::staticGet('uri', $notice_uri);
|
|
+ if (!$notice) {
|
|
+ $notice = Notice::saveNew($remote_profile->id, $content, 'omb', false, 0, $notice_uri);
|
|
+ if (is_string($notice)) {
|
|
+ common_server_serror($notice, 500);
|
|
+ return false;
|
|
+ }
|
|
+ common_broadcast_notice($notice, true);
|
|
+ }
|
|
+ return true;
|
|
+ }
|
|
hunk ./actions/profilesettings.php 26
|
|
- function get_instructions() {
|
|
- return _('You can update your personal profile info here '.
|
|
- 'so people know more about you.');
|
|
- }
|
|
+ function get_instructions() {
|
|
+ return _('You can update your personal profile info here '.
|
|
+ 'so people know more about you.');
|
|
+ }
|
|
hunk ./actions/profilesettings.php 31
|
|
- function show_form($msg=NULL, $success=false) {
|
|
- $this->form_header(_('Profile settings'), $msg, $success);
|
|
- $this->show_settings_form();
|
|
- common_element('h2', NULL, _('Avatar'));
|
|
- $this->show_avatar_form();
|
|
- common_element('h2', NULL, _('Change password'));
|
|
- $this->show_password_form();
|
|
-// common_element('h2', NULL, _('Delete my account'));
|
|
-// $this->show_delete_form();
|
|
- common_show_footer();
|
|
- }
|
|
+ function show_form($msg=NULL, $success=false) {
|
|
+ $this->form_header(_('Profile settings'), $msg, $success);
|
|
+ $this->show_settings_form();
|
|
+ common_element('h2', NULL, _('Avatar'));
|
|
+ $this->show_avatar_form();
|
|
+ common_element('h2', NULL, _('Change password'));
|
|
+ $this->show_password_form();
|
|
+// common_element('h2', NULL, _('Delete my account'));
|
|
+// $this->show_delete_form();
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/profilesettings.php 43
|
|
- function handle_post() {
|
|
+ function handle_post() {
|
|
hunk ./actions/profilesettings.php 45
|
|
- # CSRF protection
|
|
+ # CSRF protection
|
|
hunk ./actions/profilesettings.php 47
|
|
- $token = $this->trimmed('token');
|
|
- if (!$token || $token != common_session_token()) {
|
|
- $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
- return;
|
|
- }
|
|
+ $token = $this->trimmed('token');
|
|
+ if (!$token || $token != common_session_token()) {
|
|
+ $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/profilesettings.php 53
|
|
- if ($this->arg('save')) {
|
|
- $this->save_profile();
|
|
- } else if ($this->arg('upload')) {
|
|
- $this->upload_avatar();
|
|
- } else if ($this->arg('changepass')) {
|
|
- $this->change_password();
|
|
- }
|
|
+ if ($this->arg('save')) {
|
|
+ $this->save_profile();
|
|
+ } else if ($this->arg('upload')) {
|
|
+ $this->upload_avatar();
|
|
+ } else if ($this->arg('changepass')) {
|
|
+ $this->change_password();
|
|
+ }
|
|
hunk ./actions/profilesettings.php 61
|
|
- }
|
|
+ }
|
|
hunk ./actions/profilesettings.php 63
|
|
- function show_settings_form() {
|
|
+ function show_settings_form() {
|
|
hunk ./actions/profilesettings.php 65
|
|
- $user = common_current_user();
|
|
- $profile = $user->getProfile();
|
|
+ $user = common_current_user();
|
|
+ $profile = $user->getProfile();
|
|
hunk ./actions/profilesettings.php 68
|
|
- common_element_start('form', array('method' => 'POST',
|
|
- 'id' => 'profilesettings',
|
|
- 'action' =>
|
|
- common_local_url('profilesettings')));
|
|
- common_hidden('token', common_session_token());
|
|
-
|
|
- # too much common patterns here... abstractable?
|
|
-
|
|
- common_input('nickname', _('Nickname'),
|
|
- ($this->arg('nickname')) ? $this->arg('nickname') : $profile->nickname,
|
|
- _('1-64 lowercase letters or numbers, no punctuation or spaces'));
|
|
- common_input('fullname', _('Full name'),
|
|
- ($this->arg('fullname')) ? $this->arg('fullname') : $profile->fullname);
|
|
- common_input('homepage', _('Homepage'),
|
|
- ($this->arg('homepage')) ? $this->arg('homepage') : $profile->homepage,
|
|
- _('URL of your homepage, blog, or profile on another site'));
|
|
- common_textarea('bio', _('Bio'),
|
|
- ($this->arg('bio')) ? $this->arg('bio') : $profile->bio,
|
|
- _('Describe yourself and your interests in 140 chars'));
|
|
- common_input('location', _('Location'),
|
|
- ($this->arg('location')) ? $this->arg('location') : $profile->location,
|
|
- _('Where you are, like "City, State (or Region), Country"'));
|
|
- common_input('tags', _('Tags'),
|
|
- ($this->arg('tags')) ? $this->arg('tags') : implode(' ', $user->getSelfTags()),
|
|
- _('Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated'));
|
|
+ common_element_start('form', array('method' => 'POST',
|
|
+ 'id' => 'profilesettings',
|
|
+ 'action' =>
|
|
+ common_local_url('profilesettings')));
|
|
+ common_hidden('token', common_session_token());
|
|
+
|
|
+ # too much common patterns here... abstractable?
|
|
+
|
|
+ common_input('nickname', _('Nickname'),
|
|
+ ($this->arg('nickname')) ? $this->arg('nickname') : $profile->nickname,
|
|
+ _('1-64 lowercase letters or numbers, no punctuation or spaces'));
|
|
+ common_input('fullname', _('Full name'),
|
|
+ ($this->arg('fullname')) ? $this->arg('fullname') : $profile->fullname);
|
|
+ common_input('homepage', _('Homepage'),
|
|
+ ($this->arg('homepage')) ? $this->arg('homepage') : $profile->homepage,
|
|
+ _('URL of your homepage, blog, or profile on another site'));
|
|
+ common_textarea('bio', _('Bio'),
|
|
+ ($this->arg('bio')) ? $this->arg('bio') : $profile->bio,
|
|
+ _('Describe yourself and your interests in 140 chars'));
|
|
+ common_input('location', _('Location'),
|
|
+ ($this->arg('location')) ? $this->arg('location') : $profile->location,
|
|
+ _('Where you are, like "City, State (or Region), Country"'));
|
|
+ common_input('tags', _('Tags'),
|
|
+ ($this->arg('tags')) ? $this->arg('tags') : implode(' ', $user->getSelfTags()),
|
|
+ _('Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated'));
|
|
hunk ./actions/profilesettings.php 94
|
|
- $language = common_language();
|
|
- common_dropdown('language', _('Language'), get_nice_language_list(), _('Preferred language'), TRUE, $language);
|
|
- $timezone = common_timezone();
|
|
- $timezones = array();
|
|
- foreach(DateTimeZone::listIdentifiers() as $k => $v) {
|
|
- $timezones[$v] = $v;
|
|
- }
|
|
- common_dropdown('timezone', _('Timezone'), $timezones, _('What timezone are you normally in?'), TRUE, $timezone);
|
|
+ $language = common_language();
|
|
+ common_dropdown('language', _('Language'), get_nice_language_list(), _('Preferred language'), TRUE, $language);
|
|
+ $timezone = common_timezone();
|
|
+ $timezones = array();
|
|
+ foreach(DateTimeZone::listIdentifiers() as $k => $v) {
|
|
+ $timezones[$v] = $v;
|
|
+ }
|
|
+ common_dropdown('timezone', _('Timezone'), $timezones, _('What timezone are you normally in?'), TRUE, $timezone);
|
|
hunk ./actions/profilesettings.php 103
|
|
- common_checkbox('autosubscribe', _('Automatically subscribe to whoever subscribes to me (best for non-humans)'),
|
|
- ($this->arg('autosubscribe')) ? $this->boolean('autosubscribe') : $user->autosubscribe);
|
|
+ common_checkbox('autosubscribe', _('Automatically subscribe to whoever subscribes to me (best for non-humans)'),
|
|
+ ($this->arg('autosubscribe')) ? $this->boolean('autosubscribe') : $user->autosubscribe);
|
|
hunk ./actions/profilesettings.php 106
|
|
- common_submit('save', _('Save'));
|
|
+ common_submit('save', _('Save'));
|
|
hunk ./actions/profilesettings.php 108
|
|
- common_element_end('form');
|
|
+ common_element_end('form');
|
|
hunk ./actions/profilesettings.php 111
|
|
- }
|
|
+ }
|
|
hunk ./actions/profilesettings.php 113
|
|
- function show_avatar_form() {
|
|
+ function show_avatar_form() {
|
|
hunk ./actions/profilesettings.php 115
|
|
- $user = common_current_user();
|
|
- $profile = $user->getProfile();
|
|
+ $user = common_current_user();
|
|
+ $profile = $user->getProfile();
|
|
hunk ./actions/profilesettings.php 118
|
|
- if (!$profile) {
|
|
- common_log_db_error($user, 'SELECT', __FILE__);
|
|
- $this->server_error(_('User without matching profile'));
|
|
- return;
|
|
- }
|
|
-
|
|
- $original = $profile->getOriginalAvatar();
|
|
+ if (!$profile) {
|
|
+ common_log_db_error($user, 'SELECT', __FILE__);
|
|
+ $this->server_error(_('User without matching profile'));
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ $original = $profile->getOriginalAvatar();
|
|
hunk ./actions/profilesettings.php 127
|
|
- common_element_start('form', array('enctype' => 'multipart/form-data',
|
|
- 'method' => 'POST',
|
|
- 'id' => 'avatar',
|
|
- 'action' =>
|
|
- common_local_url('profilesettings')));
|
|
- common_hidden('token', common_session_token());
|
|
+ common_element_start('form', array('enctype' => 'multipart/form-data',
|
|
+ 'method' => 'POST',
|
|
+ 'id' => 'avatar',
|
|
+ 'action' =>
|
|
+ common_local_url('profilesettings')));
|
|
+ common_hidden('token', common_session_token());
|
|
hunk ./actions/profilesettings.php 134
|
|
- if ($original) {
|
|
- common_element('img', array('src' => $original->url,
|
|
- 'class' => 'avatar original',
|
|
- 'width' => $original->width,
|
|
- 'height' => $original->height,
|
|
- 'alt' => $user->nickname));
|
|
- }
|
|
+ if ($original) {
|
|
+ common_element('img', array('src' => $original->url,
|
|
+ 'class' => 'avatar original',
|
|
+ 'width' => $original->width,
|
|
+ 'height' => $original->height,
|
|
+ 'alt' => $user->nickname));
|
|
+ }
|
|
hunk ./actions/profilesettings.php 142
|
|
- $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE);
|
|
+ $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE);
|
|
hunk ./actions/profilesettings.php 144
|
|
- if ($avatar) {
|
|
- common_element('img', array('src' => $avatar->url,
|
|
- 'class' => 'avatar profile',
|
|
- 'width' => AVATAR_PROFILE_SIZE,
|
|
- 'height' => AVATAR_PROFILE_SIZE,
|
|
- 'alt' => $user->nickname));
|
|
- }
|
|
+ if ($avatar) {
|
|
+ common_element('img', array('src' => $avatar->url,
|
|
+ 'class' => 'avatar profile',
|
|
+ 'width' => AVATAR_PROFILE_SIZE,
|
|
+ 'height' => AVATAR_PROFILE_SIZE,
|
|
+ 'alt' => $user->nickname));
|
|
+ }
|
|
hunk ./actions/profilesettings.php 153
|
|
- common_element('input', array('name' => 'MAX_FILE_SIZE',
|
|
- 'type' => 'hidden',
|
|
- 'id' => 'MAX_FILE_SIZE',
|
|
- 'value' => MAX_AVATAR_SIZE));
|
|
+ common_element('input', array('name' => 'MAX_FILE_SIZE',
|
|
+ 'type' => 'hidden',
|
|
+ 'id' => 'MAX_FILE_SIZE',
|
|
+ 'value' => MAX_AVATAR_SIZE));
|
|
hunk ./actions/profilesettings.php 158
|
|
- common_element_start('p');
|
|
+ common_element_start('p');
|
|
hunk ./actions/profilesettings.php 161
|
|
- common_element('input', array('name' => 'avatarfile',
|
|
- 'type' => 'file',
|
|
- 'id' => 'avatarfile'));
|
|
- common_element_end('p');
|
|
+ common_element('input', array('name' => 'avatarfile',
|
|
+ 'type' => 'file',
|
|
+ 'id' => 'avatarfile'));
|
|
+ common_element_end('p');
|
|
hunk ./actions/profilesettings.php 166
|
|
- common_submit('upload', _('Upload'));
|
|
- common_element_end('form');
|
|
+ common_submit('upload', _('Upload'));
|
|
+ common_element_end('form');
|
|
hunk ./actions/profilesettings.php 169
|
|
- }
|
|
+ }
|
|
hunk ./actions/profilesettings.php 171
|
|
- function show_password_form() {
|
|
+ function show_password_form() {
|
|
hunk ./actions/profilesettings.php 173
|
|
- $user = common_current_user();
|
|
- common_element_start('form', array('method' => 'POST',
|
|
- 'id' => 'password',
|
|
- 'action' =>
|
|
- common_local_url('profilesettings')));
|
|
+ $user = common_current_user();
|
|
+ common_element_start('form', array('method' => 'POST',
|
|
+ 'id' => 'password',
|
|
+ 'action' =>
|
|
+ common_local_url('profilesettings')));
|
|
hunk ./actions/profilesettings.php 179
|
|
- common_hidden('token', common_session_token());
|
|
+ common_hidden('token', common_session_token());
|
|
hunk ./actions/profilesettings.php 181
|
|
- # Users who logged in with OpenID won't have a pwd
|
|
- if ($user->password) {
|
|
- common_password('oldpassword', _('Old password'));
|
|
- }
|
|
- common_password('newpassword', _('New password'),
|
|
- _('6 or more characters'));
|
|
- common_password('confirm', _('Confirm'),
|
|
- _('same as password above'));
|
|
- common_submit('changepass', _('Change'));
|
|
- common_element_end('form');
|
|
- }
|
|
+ # Users who logged in with OpenID won't have a pwd
|
|
+ if ($user->password) {
|
|
+ common_password('oldpassword', _('Old password'));
|
|
+ }
|
|
+ common_password('newpassword', _('New password'),
|
|
+ _('6 or more characters'));
|
|
+ common_password('confirm', _('Confirm'),
|
|
+ _('same as password above'));
|
|
+ common_submit('changepass', _('Change'));
|
|
+ common_element_end('form');
|
|
+ }
|
|
hunk ./actions/profilesettings.php 193
|
|
- function save_profile() {
|
|
- $nickname = $this->trimmed('nickname');
|
|
- $fullname = $this->trimmed('fullname');
|
|
- $homepage = $this->trimmed('homepage');
|
|
- $bio = $this->trimmed('bio');
|
|
- $location = $this->trimmed('location');
|
|
- $autosubscribe = $this->boolean('autosubscribe');
|
|
- $language = $this->trimmed('language');
|
|
- $timezone = $this->trimmed('timezone');
|
|
- $tagstring = $this->trimmed('tags');
|
|
-
|
|
- # Some validation
|
|
+ function save_profile() {
|
|
+ $nickname = $this->trimmed('nickname');
|
|
+ $fullname = $this->trimmed('fullname');
|
|
+ $homepage = $this->trimmed('homepage');
|
|
+ $bio = $this->trimmed('bio');
|
|
+ $location = $this->trimmed('location');
|
|
+ $autosubscribe = $this->boolean('autosubscribe');
|
|
+ $language = $this->trimmed('language');
|
|
+ $timezone = $this->trimmed('timezone');
|
|
+ $tagstring = $this->trimmed('tags');
|
|
+
|
|
+ # Some validation
|
|
hunk ./actions/profilesettings.php 206
|
|
- if (!Validate::string($nickname, array('min_length' => 1,
|
|
- 'max_length' => 64,
|
|
- 'format' => VALIDATE_NUM . VALIDATE_ALPHA_LOWER))) {
|
|
- $this->show_form(_('Nickname must have only lowercase letters and numbers and no spaces.'));
|
|
- return;
|
|
- } else if (!User::allowed_nickname($nickname)) {
|
|
- $this->show_form(_('Not a valid nickname.'));
|
|
- return;
|
|
- } else if (!is_null($homepage) && (strlen($homepage) > 0) &&
|
|
- !Validate::uri($homepage, array('allowed_schemes' => array('http', 'https')))) {
|
|
- $this->show_form(_('Homepage is not a valid URL.'));
|
|
- return;
|
|
- } else if (!is_null($fullname) && strlen($fullname) > 255) {
|
|
- $this->show_form(_('Full name is too long (max 255 chars).'));
|
|
- return;
|
|
- } else if (!is_null($bio) && strlen($bio) > 140) {
|
|
- $this->show_form(_('Bio is too long (max 140 chars).'));
|
|
- return;
|
|
- } else if (!is_null($location) && strlen($location) > 255) {
|
|
- $this->show_form(_('Location is too long (max 255 chars).'));
|
|
- return;
|
|
- } else if (is_null($timezone) || !in_array($timezone, DateTimeZone::listIdentifiers())) {
|
|
- $this->show_form(_('Timezone not selected.'));
|
|
- return;
|
|
- } else if ($this->nickname_exists($nickname)) {
|
|
- $this->show_form(_('Nickname already in use. Try another one.'));
|
|
- return;
|
|
+ if (!Validate::string($nickname, array('min_length' => 1,
|
|
+ 'max_length' => 64,
|
|
+ 'format' => VALIDATE_NUM . VALIDATE_ALPHA_LOWER))) {
|
|
+ $this->show_form(_('Nickname must have only lowercase letters and numbers and no spaces.'));
|
|
+ return;
|
|
+ } else if (!User::allowed_nickname($nickname)) {
|
|
+ $this->show_form(_('Not a valid nickname.'));
|
|
+ return;
|
|
+ } else if (!is_null($homepage) && (strlen($homepage) > 0) &&
|
|
+ !Validate::uri($homepage, array('allowed_schemes' => array('http', 'https')))) {
|
|
+ $this->show_form(_('Homepage is not a valid URL.'));
|
|
+ return;
|
|
+ } else if (!is_null($fullname) && strlen($fullname) > 255) {
|
|
+ $this->show_form(_('Full name is too long (max 255 chars).'));
|
|
+ return;
|
|
+ } else if (!is_null($bio) && strlen($bio) > 140) {
|
|
+ $this->show_form(_('Bio is too long (max 140 chars).'));
|
|
+ return;
|
|
+ } else if (!is_null($location) && strlen($location) > 255) {
|
|
+ $this->show_form(_('Location is too long (max 255 chars).'));
|
|
+ return;
|
|
+ } else if (is_null($timezone) || !in_array($timezone, DateTimeZone::listIdentifiers())) {
|
|
+ $this->show_form(_('Timezone not selected.'));
|
|
+ return;
|
|
+ } else if ($this->nickname_exists($nickname)) {
|
|
+ $this->show_form(_('Nickname already in use. Try another one.'));
|
|
+ return;
|
|
hunk ./actions/profilesettings.php 234
|
|
- $this->show_form(_('Language is too long (max 50 chars).'));
|
|
- return;
|
|
- }
|
|
+ $this->show_form(_('Language is too long (max 50 chars).'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/profilesettings.php 238
|
|
- if ($tagstring) {
|
|
- $tags = array_map('common_canonical_tag', preg_split('/[\s,]+/', $tagstring));
|
|
- } else {
|
|
- $tags = array();
|
|
- }
|
|
-
|
|
- foreach ($tags as $tag) {
|
|
- if (!common_valid_profile_tag($tag)) {
|
|
- $this->show_form(sprintf(_('Invalid tag: "%s"'), $tag));
|
|
- return;
|
|
- }
|
|
- }
|
|
-
|
|
- $user = common_current_user();
|
|
+ if ($tagstring) {
|
|
+ $tags = array_map('common_canonical_tag', preg_split('/[\s,]+/', $tagstring));
|
|
+ } else {
|
|
+ $tags = array();
|
|
+ }
|
|
+
|
|
+ foreach ($tags as $tag) {
|
|
+ if (!common_valid_profile_tag($tag)) {
|
|
+ $this->show_form(sprintf(_('Invalid tag: "%s"'), $tag));
|
|
+ return;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ $user = common_current_user();
|
|
hunk ./actions/profilesettings.php 253
|
|
- $user->query('BEGIN');
|
|
+ $user->query('BEGIN');
|
|
hunk ./actions/profilesettings.php 255
|
|
- if ($user->nickname != $nickname ||
|
|
- $user->language != $language ||
|
|
- $user->timezone != $timezone) {
|
|
+ if ($user->nickname != $nickname ||
|
|
+ $user->language != $language ||
|
|
+ $user->timezone != $timezone) {
|
|
hunk ./actions/profilesettings.php 259
|
|
- common_debug('Updating user nickname from ' . $user->nickname . ' to ' . $nickname,
|
|
- __FILE__);
|
|
- common_debug('Updating user language from ' . $user->language . ' to ' . $language,
|
|
- __FILE__);
|
|
- common_debug('Updating user timezone from ' . $user->timezone . ' to ' . $timezone,
|
|
- __FILE__);
|
|
+ common_debug('Updating user nickname from ' . $user->nickname . ' to ' . $nickname,
|
|
+ __FILE__);
|
|
+ common_debug('Updating user language from ' . $user->language . ' to ' . $language,
|
|
+ __FILE__);
|
|
+ common_debug('Updating user timezone from ' . $user->timezone . ' to ' . $timezone,
|
|
+ __FILE__);
|
|
hunk ./actions/profilesettings.php 266
|
|
- $original = clone($user);
|
|
+ $original = clone($user);
|
|
hunk ./actions/profilesettings.php 268
|
|
- $user->nickname = $nickname;
|
|
- $user->language = $language;
|
|
- $user->timezone = $timezone;
|
|
+ $user->nickname = $nickname;
|
|
+ $user->language = $language;
|
|
+ $user->timezone = $timezone;
|
|
hunk ./actions/profilesettings.php 272
|
|
- $result = $user->updateKeys($original);
|
|
+ $result = $user->updateKeys($original);
|
|
hunk ./actions/profilesettings.php 274
|
|
- if ($result === FALSE) {
|
|
- common_log_db_error($user, 'UPDATE', __FILE__);
|
|
- common_server_error(_('Couldn\'t update user.'));
|
|
- return;
|
|
- } else {
|
|
- # Re-initialize language environment if it changed
|
|
- common_init_language();
|
|
- }
|
|
- }
|
|
+ if ($result === FALSE) {
|
|
+ common_log_db_error($user, 'UPDATE', __FILE__);
|
|
+ common_server_error(_('Couldn\'t update user.'));
|
|
+ return;
|
|
+ } else {
|
|
+ # Re-initialize language environment if it changed
|
|
+ common_init_language();
|
|
+ }
|
|
+ }
|
|
hunk ./actions/profilesettings.php 284
|
|
- # XXX: XOR
|
|
+ # XXX: XOR
|
|
hunk ./actions/profilesettings.php 286
|
|
- if ($user->autosubscribe ^ $autosubscribe) {
|
|
+ if ($user->autosubscribe ^ $autosubscribe) {
|
|
hunk ./actions/profilesettings.php 288
|
|
- $original = clone($user);
|
|
+ $original = clone($user);
|
|
hunk ./actions/profilesettings.php 290
|
|
- $user->autosubscribe = $autosubscribe;
|
|
+ $user->autosubscribe = $autosubscribe;
|
|
hunk ./actions/profilesettings.php 292
|
|
- $result = $user->update($original);
|
|
+ $result = $user->update($original);
|
|
hunk ./actions/profilesettings.php 294
|
|
- if ($result === FALSE) {
|
|
- common_log_db_error($user, 'UPDATE', __FILE__);
|
|
- common_server_error(_('Couldn\'t update user for autosubscribe.'));
|
|
- return;
|
|
- }
|
|
- }
|
|
+ if ($result === FALSE) {
|
|
+ common_log_db_error($user, 'UPDATE', __FILE__);
|
|
+ common_server_error(_('Couldn\'t update user for autosubscribe.'));
|
|
+ return;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/profilesettings.php 301
|
|
- $profile = $user->getProfile();
|
|
+ $profile = $user->getProfile();
|
|
hunk ./actions/profilesettings.php 303
|
|
- $orig_profile = clone($profile);
|
|
+ $orig_profile = clone($profile);
|
|
hunk ./actions/profilesettings.php 305
|
|
- $profile->nickname = $user->nickname;
|
|
- $profile->fullname = $fullname;
|
|
- $profile->homepage = $homepage;
|
|
- $profile->bio = $bio;
|
|
- $profile->location = $location;
|
|
- $profile->profileurl = common_profile_url($nickname);
|
|
+ $profile->nickname = $user->nickname;
|
|
+ $profile->fullname = $fullname;
|
|
+ $profile->homepage = $homepage;
|
|
+ $profile->bio = $bio;
|
|
+ $profile->location = $location;
|
|
+ $profile->profileurl = common_profile_url($nickname);
|
|
hunk ./actions/profilesettings.php 312
|
|
- common_debug('Old profile: ' . common_log_objstring($orig_profile), __FILE__);
|
|
- common_debug('New profile: ' . common_log_objstring($profile), __FILE__);
|
|
+ common_debug('Old profile: ' . common_log_objstring($orig_profile), __FILE__);
|
|
+ common_debug('New profile: ' . common_log_objstring($profile), __FILE__);
|
|
hunk ./actions/profilesettings.php 315
|
|
- $result = $profile->update($orig_profile);
|
|
+ $result = $profile->update($orig_profile);
|
|
hunk ./actions/profilesettings.php 317
|
|
- if (!$result) {
|
|
- common_log_db_error($profile, 'UPDATE', __FILE__);
|
|
- common_server_error(_('Couldn\'t save profile.'));
|
|
- return;
|
|
- }
|
|
+ if (!$result) {
|
|
+ common_log_db_error($profile, 'UPDATE', __FILE__);
|
|
+ common_server_error(_('Couldn\'t save profile.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/profilesettings.php 323
|
|
- # Set the user tags
|
|
-
|
|
- $result = $user->setSelfTags($tags);
|
|
+ # Set the user tags
|
|
+
|
|
+ $result = $user->setSelfTags($tags);
|
|
hunk ./actions/profilesettings.php 327
|
|
- if (!$result) {
|
|
- common_server_error(_('Couldn\'t save tags.'));
|
|
- return;
|
|
- }
|
|
-
|
|
- $user->query('COMMIT');
|
|
+ if (!$result) {
|
|
+ common_server_error(_('Couldn\'t save tags.'));
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ $user->query('COMMIT');
|
|
hunk ./actions/profilesettings.php 334
|
|
- common_broadcast_profile($profile);
|
|
+ common_broadcast_profile($profile);
|
|
hunk ./actions/profilesettings.php 336
|
|
- $this->show_form(_('Settings saved.'), TRUE);
|
|
- }
|
|
+ $this->show_form(_('Settings saved.'), TRUE);
|
|
+ }
|
|
hunk ./actions/profilesettings.php 340
|
|
- function upload_avatar() {
|
|
- switch ($_FILES['avatarfile']['error']) {
|
|
- case UPLOAD_ERR_OK: # success, jump out
|
|
- break;
|
|
- case UPLOAD_ERR_INI_SIZE:
|
|
- case UPLOAD_ERR_FORM_SIZE:
|
|
- $this->show_form(_('That file is too big.'));
|
|
- return;
|
|
- case UPLOAD_ERR_PARTIAL:
|
|
- @unlink($_FILES['avatarfile']['tmp_name']);
|
|
- $this->show_form(_('Partial upload.'));
|
|
- return;
|
|
- default:
|
|
- $this->show_form(_('System error uploading file.'));
|
|
- return;
|
|
- }
|
|
+ function upload_avatar() {
|
|
+ switch ($_FILES['avatarfile']['error']) {
|
|
+ case UPLOAD_ERR_OK: # success, jump out
|
|
+ break;
|
|
+ case UPLOAD_ERR_INI_SIZE:
|
|
+ case UPLOAD_ERR_FORM_SIZE:
|
|
+ $this->show_form(_('That file is too big.'));
|
|
+ return;
|
|
+ case UPLOAD_ERR_PARTIAL:
|
|
+ @unlink($_FILES['avatarfile']['tmp_name']);
|
|
+ $this->show_form(_('Partial upload.'));
|
|
+ return;
|
|
+ default:
|
|
+ $this->show_form(_('System error uploading file.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/profilesettings.php 357
|
|
- $info = @getimagesize($_FILES['avatarfile']['tmp_name']);
|
|
+ $info = @getimagesize($_FILES['avatarfile']['tmp_name']);
|
|
hunk ./actions/profilesettings.php 359
|
|
- if (!$info) {
|
|
- @unlink($_FILES['avatarfile']['tmp_name']);
|
|
- $this->show_form(_('Not an image or corrupt file.'));
|
|
- return;
|
|
- }
|
|
+ if (!$info) {
|
|
+ @unlink($_FILES['avatarfile']['tmp_name']);
|
|
+ $this->show_form(_('Not an image or corrupt file.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/profilesettings.php 365
|
|
- switch ($info[2]) {
|
|
- case IMAGETYPE_GIF:
|
|
- case IMAGETYPE_JPEG:
|
|
- case IMAGETYPE_PNG:
|
|
- break;
|
|
- default:
|
|
- $this->show_form(_('Unsupported image file format.'));
|
|
- return;
|
|
- }
|
|
+ switch ($info[2]) {
|
|
+ case IMAGETYPE_GIF:
|
|
+ case IMAGETYPE_JPEG:
|
|
+ case IMAGETYPE_PNG:
|
|
+ break;
|
|
+ default:
|
|
+ $this->show_form(_('Unsupported image file format.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/profilesettings.php 375
|
|
- $user = common_current_user();
|
|
- $profile = $user->getProfile();
|
|
+ $user = common_current_user();
|
|
+ $profile = $user->getProfile();
|
|
hunk ./actions/profilesettings.php 378
|
|
- if ($profile->setOriginal($_FILES['avatarfile']['tmp_name'])) {
|
|
- $this->show_form(_('Avatar updated.'), true);
|
|
- } else {
|
|
- $this->show_form(_('Failed updating avatar.'));
|
|
- }
|
|
+ if ($profile->setOriginal($_FILES['avatarfile']['tmp_name'])) {
|
|
+ $this->show_form(_('Avatar updated.'), true);
|
|
+ } else {
|
|
+ $this->show_form(_('Failed updating avatar.'));
|
|
+ }
|
|
hunk ./actions/profilesettings.php 384
|
|
- @unlink($_FILES['avatarfile']['tmp_name']);
|
|
- }
|
|
+ @unlink($_FILES['avatarfile']['tmp_name']);
|
|
+ }
|
|
hunk ./actions/profilesettings.php 387
|
|
- function nickname_exists($nickname) {
|
|
- $user = common_current_user();
|
|
- $other = User::staticGet('nickname', $nickname);
|
|
- if (!$other) {
|
|
- return false;
|
|
- } else {
|
|
- return $other->id != $user->id;
|
|
- }
|
|
- }
|
|
+ function nickname_exists($nickname) {
|
|
+ $user = common_current_user();
|
|
+ $other = User::staticGet('nickname', $nickname);
|
|
+ if (!$other) {
|
|
+ return false;
|
|
+ } else {
|
|
+ return $other->id != $user->id;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/profilesettings.php 397
|
|
- function change_password() {
|
|
+ function change_password() {
|
|
hunk ./actions/profilesettings.php 399
|
|
- $user = common_current_user();
|
|
- assert(!is_null($user)); # should already be checked
|
|
+ $user = common_current_user();
|
|
+ assert(!is_null($user)); # should already be checked
|
|
hunk ./actions/profilesettings.php 402
|
|
- # FIXME: scrub input
|
|
+ # FIXME: scrub input
|
|
hunk ./actions/profilesettings.php 404
|
|
- $newpassword = $this->arg('newpassword');
|
|
- $confirm = $this->arg('confirm');
|
|
- $token = $this->arg('token');
|
|
+ $newpassword = $this->arg('newpassword');
|
|
+ $confirm = $this->arg('confirm');
|
|
+ $token = $this->arg('token');
|
|
hunk ./actions/profilesettings.php 408
|
|
- if (0 != strcmp($newpassword, $confirm)) {
|
|
- $this->show_form(_('Passwords don\'t match.'));
|
|
- return;
|
|
- }
|
|
+ if (0 != strcmp($newpassword, $confirm)) {
|
|
+ $this->show_form(_('Passwords don\'t match.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/profilesettings.php 413
|
|
- if ($user->password) {
|
|
- $oldpassword = $this->arg('oldpassword');
|
|
+ if ($user->password) {
|
|
+ $oldpassword = $this->arg('oldpassword');
|
|
hunk ./actions/profilesettings.php 416
|
|
- if (!common_check_user($user->nickname, $oldpassword)) {
|
|
- $this->show_form(_('Incorrect old password'));
|
|
- return;
|
|
- }
|
|
- }
|
|
+ if (!common_check_user($user->nickname, $oldpassword)) {
|
|
+ $this->show_form(_('Incorrect old password'));
|
|
+ return;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/profilesettings.php 422
|
|
- $original = clone($user);
|
|
+ $original = clone($user);
|
|
hunk ./actions/profilesettings.php 424
|
|
- $user->password = common_munge_password($newpassword, $user->id);
|
|
+ $user->password = common_munge_password($newpassword, $user->id);
|
|
hunk ./actions/profilesettings.php 426
|
|
- $val = $user->validate();
|
|
- if ($val !== TRUE) {
|
|
- $this->show_form(_('Error saving user; invalid.'));
|
|
- return;
|
|
- }
|
|
+ $val = $user->validate();
|
|
+ if ($val !== TRUE) {
|
|
+ $this->show_form(_('Error saving user; invalid.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/profilesettings.php 432
|
|
- if (!$user->update($original)) {
|
|
- common_server_error(_('Can\'t save new password.'));
|
|
- return;
|
|
- }
|
|
+ if (!$user->update($original)) {
|
|
+ common_server_error(_('Can\'t save new password.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/profilesettings.php 437
|
|
- $this->show_form(_('Password saved.'), true);
|
|
- }
|
|
+ $this->show_form(_('Password saved.'), true);
|
|
+ }
|
|
hunk ./actions/public.php 26
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/public.php 29
|
|
- $page = ($this->arg('page')) ? ($this->arg('page')+0) : 1;
|
|
+ $page = ($this->arg('page')) ? ($this->arg('page')+0) : 1;
|
|
hunk ./actions/public.php 31
|
|
- header('X-XRDS-Location: '. common_local_url('publicxrds'));
|
|
+ header('X-XRDS-Location: '. common_local_url('publicxrds'));
|
|
hunk ./actions/public.php 33
|
|
- common_show_header(_('Public timeline'),
|
|
- array($this, 'show_header'), NULL,
|
|
- array($this, 'show_top'));
|
|
+ common_show_header(_('Public timeline'),
|
|
+ array($this, 'show_header'), NULL,
|
|
+ array($this, 'show_top'));
|
|
hunk ./actions/public.php 37
|
|
- # XXX: Public sidebar here?
|
|
+ # XXX: Public sidebar here?
|
|
hunk ./actions/public.php 39
|
|
- $this->show_notices($page);
|
|
+ $this->show_notices($page);
|
|
hunk ./actions/public.php 41
|
|
- common_show_footer();
|
|
- }
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/public.php 44
|
|
- function show_top() {
|
|
- if (common_logged_in()) {
|
|
- common_notice_form('public');
|
|
- } else {
|
|
- $instr = $this->get_instructions();
|
|
- $output = common_markup_to_html($instr);
|
|
- common_element_start('div', 'instructions');
|
|
- common_raw($output);
|
|
- common_element_end('div');
|
|
- }
|
|
+ function show_top() {
|
|
+ if (common_logged_in()) {
|
|
+ common_notice_form('public');
|
|
+ } else {
|
|
+ $instr = $this->get_instructions();
|
|
+ $output = common_markup_to_html($instr);
|
|
+ common_element_start('div', 'instructions');
|
|
+ common_raw($output);
|
|
+ common_element_end('div');
|
|
+ }
|
|
hunk ./actions/public.php 55
|
|
- $this->public_views_menu();
|
|
+ $this->public_views_menu();
|
|
hunk ./actions/public.php 57
|
|
- $this->show_feeds_list(array(0=>array('href'=>common_local_url('publicrss'),
|
|
- 'type' => 'rss',
|
|
- 'version' => 'RSS 1.0',
|
|
- 'item' => 'publicrss'),
|
|
- 1=>array('href'=>common_local_url('publicatom'),
|
|
- 'type' => 'atom',
|
|
- 'version' => 'Atom 1.0',
|
|
- 'item' => 'publicatom')));
|
|
- }
|
|
+ $this->show_feeds_list(array(0=>array('href'=>common_local_url('publicrss'),
|
|
+ 'type' => 'rss',
|
|
+ 'version' => 'RSS 1.0',
|
|
+ 'item' => 'publicrss'),
|
|
+ 1=>array('href'=>common_local_url('publicatom'),
|
|
+ 'type' => 'atom',
|
|
+ 'version' => 'Atom 1.0',
|
|
+ 'item' => 'publicatom')));
|
|
+ }
|
|
hunk ./actions/public.php 67
|
|
- function get_instructions() {
|
|
- return _('This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-blogging) service ' .
|
|
- 'based on the Free Software [Laconica](http://laconi.ca/) tool. ' .
|
|
- '[Join now](%%action.register%%) to share notices about yourself with friends, family, and colleagues! ([Read more](%%doc.help%%))');
|
|
- }
|
|
+ function get_instructions() {
|
|
+ return _('This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-blogging) service ' .
|
|
+ 'based on the Free Software [Laconica](http://laconi.ca/) tool. ' .
|
|
+ '[Join now](%%action.register%%) to share notices about yourself with friends, family, and colleagues! ([Read more](%%doc.help%%))');
|
|
+ }
|
|
hunk ./actions/public.php 73
|
|
- function show_header() {
|
|
- common_element('link', array('rel' => 'alternate',
|
|
- 'href' => common_local_url('publicrss'),
|
|
- 'type' => 'application/rss+xml',
|
|
- 'title' => _('Public Stream Feed')));
|
|
- # for client side of OpenID authentication
|
|
- common_element('meta', array('http-equiv' => 'X-XRDS-Location',
|
|
- 'content' => common_local_url('publicxrds')));
|
|
- }
|
|
+ function show_header() {
|
|
+ common_element('link', array('rel' => 'alternate',
|
|
+ 'href' => common_local_url('publicrss'),
|
|
+ 'type' => 'application/rss+xml',
|
|
+ 'title' => _('Public Stream Feed')));
|
|
+ # for client side of OpenID authentication
|
|
+ common_element('meta', array('http-equiv' => 'X-XRDS-Location',
|
|
+ 'content' => common_local_url('publicxrds')));
|
|
+ }
|
|
hunk ./actions/public.php 83
|
|
- function show_notices($page) {
|
|
+ function show_notices($page) {
|
|
hunk ./actions/public.php 85
|
|
- $cnt = 0;
|
|
- $notice = Notice::publicStream(($page-1)*NOTICES_PER_PAGE,
|
|
- NOTICES_PER_PAGE + 1);
|
|
+ $cnt = 0;
|
|
+ $notice = Notice::publicStream(($page-1)*NOTICES_PER_PAGE,
|
|
+ NOTICES_PER_PAGE + 1);
|
|
hunk ./actions/public.php 89
|
|
- if (!$notice) {
|
|
+ if (!$notice) {
|
|
hunk ./actions/public.php 92
|
|
- }
|
|
+ }
|
|
hunk ./actions/public.php 96
|
|
- common_pagination($page > 1, $cnt > NOTICES_PER_PAGE,
|
|
- $page, 'public');
|
|
- }
|
|
+ common_pagination($page > 1, $cnt > NOTICES_PER_PAGE,
|
|
+ $page, 'public');
|
|
+ }
|
|
hunk ./actions/publicrss.php 28
|
|
- function init() {
|
|
- return true;
|
|
- }
|
|
+ function init() {
|
|
+ return true;
|
|
+ }
|
|
hunk ./actions/publicrss.php 32
|
|
- function get_notices($limit=0) {
|
|
-
|
|
- $notices = array();
|
|
-
|
|
- $notice = Notice::publicStream(0, ($limit == 0) ? 48 : $limit);
|
|
-
|
|
- while ($notice->fetch()) {
|
|
- $notices[] = clone($notice);
|
|
- }
|
|
-
|
|
- return $notices;
|
|
- }
|
|
+ function get_notices($limit=0) {
|
|
+
|
|
+ $notices = array();
|
|
+
|
|
+ $notice = Notice::publicStream(0, ($limit == 0) ? 48 : $limit);
|
|
+
|
|
+ while ($notice->fetch()) {
|
|
+ $notices[] = clone($notice);
|
|
+ }
|
|
+
|
|
+ return $notices;
|
|
+ }
|
|
hunk ./actions/publicrss.php 45
|
|
- function get_channel() {
|
|
- global $config;
|
|
- $c = array('url' => common_local_url('publicrss'),
|
|
- 'title' => sprintf(_('%s Public Stream'), $config['site']['name']),
|
|
- 'link' => common_local_url('public'),
|
|
- 'description' => sprintf(_('All updates for %s'), $config['site']['name']));
|
|
- return $c;
|
|
- }
|
|
+ function get_channel() {
|
|
+ global $config;
|
|
+ $c = array('url' => common_local_url('publicrss'),
|
|
+ 'title' => sprintf(_('%s Public Stream'), $config['site']['name']),
|
|
+ 'link' => common_local_url('public'),
|
|
+ 'description' => sprintf(_('All updates for %s'), $config['site']['name']));
|
|
+ return $c;
|
|
+ }
|
|
hunk ./actions/publicrss.php 54
|
|
- function get_image() {
|
|
- return NULL;
|
|
- }
|
|
+ function get_image() {
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./actions/publicxrds.php 28
|
|
- function is_readonly() {
|
|
- return true;
|
|
- }
|
|
+ function is_readonly() {
|
|
+ return true;
|
|
+ }
|
|
hunk ./actions/publicxrds.php 32
|
|
- function handle($args) {
|
|
+ function handle($args) {
|
|
hunk ./actions/publicxrds.php 34
|
|
- parent::handle($args);
|
|
+ parent::handle($args);
|
|
hunk ./actions/publicxrds.php 36
|
|
- header('Content-Type: application/xrds+xml');
|
|
+ header('Content-Type: application/xrds+xml');
|
|
hunk ./actions/publicxrds.php 38
|
|
- common_start_xml();
|
|
- common_element_start('XRDS', array('xmlns' => 'xri://$xrds'));
|
|
+ common_start_xml();
|
|
+ common_element_start('XRDS', array('xmlns' => 'xri://$xrds'));
|
|
hunk ./actions/publicxrds.php 41
|
|
- common_element_start('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)',
|
|
- 'xmlns:simple' => 'http://xrds-simple.net/core/1.0',
|
|
- 'version' => '2.0'));
|
|
+ common_element_start('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)',
|
|
+ 'xmlns:simple' => 'http://xrds-simple.net/core/1.0',
|
|
+ 'version' => '2.0'));
|
|
hunk ./actions/publicxrds.php 45
|
|
- common_element('Type', NULL, 'xri://$xrds*simple');
|
|
+ common_element('Type', NULL, 'xri://$xrds*simple');
|
|
hunk ./actions/publicxrds.php 47
|
|
- foreach (array('finishopenidlogin', 'finishaddopenid', 'finishimmediate') as $finish) {
|
|
- $this->show_service(Auth_OpenID_RP_RETURN_TO_URL_TYPE,
|
|
- common_local_url($finish));
|
|
- }
|
|
+ foreach (array('finishopenidlogin', 'finishaddopenid', 'finishimmediate') as $finish) {
|
|
+ $this->show_service(Auth_OpenID_RP_RETURN_TO_URL_TYPE,
|
|
+ common_local_url($finish));
|
|
+ }
|
|
hunk ./actions/publicxrds.php 52
|
|
- common_element_end('XRD');
|
|
+ common_element_end('XRD');
|
|
hunk ./actions/publicxrds.php 54
|
|
- common_element_end('XRDS');
|
|
- common_end_xml();
|
|
- }
|
|
+ common_element_end('XRDS');
|
|
+ common_end_xml();
|
|
+ }
|
|
hunk ./actions/publicxrds.php 58
|
|
- function show_service($type, $uri, $params=NULL, $sigs=NULL, $localId=NULL) {
|
|
- common_element_start('Service');
|
|
- if ($uri) {
|
|
- common_element('URI', NULL, $uri);
|
|
- }
|
|
- common_element('Type', NULL, $type);
|
|
- if ($params) {
|
|
- foreach ($params as $param) {
|
|
- common_element('Type', NULL, $param);
|
|
- }
|
|
- }
|
|
- if ($sigs) {
|
|
- foreach ($sigs as $sig) {
|
|
- common_element('Type', NULL, $sig);
|
|
- }
|
|
- }
|
|
- if ($localId) {
|
|
- common_element('LocalID', NULL, $localId);
|
|
- }
|
|
- common_element_end('Service');
|
|
- }
|
|
+ function show_service($type, $uri, $params=NULL, $sigs=NULL, $localId=NULL) {
|
|
+ common_element_start('Service');
|
|
+ if ($uri) {
|
|
+ common_element('URI', NULL, $uri);
|
|
+ }
|
|
+ common_element('Type', NULL, $type);
|
|
+ if ($params) {
|
|
+ foreach ($params as $param) {
|
|
+ common_element('Type', NULL, $param);
|
|
+ }
|
|
+ }
|
|
+ if ($sigs) {
|
|
+ foreach ($sigs as $sig) {
|
|
+ common_element('Type', NULL, $sig);
|
|
+ }
|
|
+ }
|
|
+ if ($localId) {
|
|
+ common_element('LocalID', NULL, $localId);
|
|
+ }
|
|
+ common_element_end('Service');
|
|
+ }
|
|
hunk ./actions/recoverpassword.php 31
|
|
- $this->client_error(_('You are already logged in!'));
|
|
+ $this->client_error(_('You are already logged in!'));
|
|
hunk ./actions/recoverpassword.php 34
|
|
- if ($this->arg('recover')) {
|
|
- $this->recover_password();
|
|
+ if ($this->arg('recover')) {
|
|
+ $this->recover_password();
|
|
hunk ./actions/recoverpassword.php 37
|
|
- $this->reset_password();
|
|
- } else {
|
|
- $this->client_error(_('Unexpected form submission.'));
|
|
- }
|
|
- } else {
|
|
- if ($this->trimmed('code')) {
|
|
- $this->check_code();
|
|
- } else {
|
|
- $this->show_form();
|
|
- }
|
|
- }
|
|
- }
|
|
+ $this->reset_password();
|
|
+ } else {
|
|
+ $this->client_error(_('Unexpected form submission.'));
|
|
+ }
|
|
+ } else {
|
|
+ if ($this->trimmed('code')) {
|
|
+ $this->check_code();
|
|
+ } else {
|
|
+ $this->show_form();
|
|
+ }
|
|
+ }
|
|
+ }
|
|
hunk ./actions/recoverpassword.php 50
|
|
- function check_code() {
|
|
+ function check_code() {
|
|
hunk ./actions/recoverpassword.php 52
|
|
- $code = $this->trimmed('code');
|
|
- $confirm = Confirm_address::staticGet('code', $code);
|
|
+ $code = $this->trimmed('code');
|
|
+ $confirm = Confirm_address::staticGet('code', $code);
|
|
hunk ./actions/recoverpassword.php 55
|
|
- if (!$confirm) {
|
|
- $this->client_error(_('No such recovery code.'));
|
|
- return;
|
|
- }
|
|
- if ($confirm->address_type != 'recover') {
|
|
- $this->client_error(_('Not a recovery code.'));
|
|
- return;
|
|
- }
|
|
+ if (!$confirm) {
|
|
+ $this->client_error(_('No such recovery code.'));
|
|
+ return;
|
|
+ }
|
|
+ if ($confirm->address_type != 'recover') {
|
|
+ $this->client_error(_('Not a recovery code.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/recoverpassword.php 64
|
|
- $user = User::staticGet($confirm->user_id);
|
|
+ $user = User::staticGet($confirm->user_id);
|
|
hunk ./actions/recoverpassword.php 66
|
|
- if (!$user) {
|
|
- $this->server_error(_('Recovery code for unknown user.'));
|
|
- return;
|
|
- }
|
|
+ if (!$user) {
|
|
+ $this->server_error(_('Recovery code for unknown user.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/recoverpassword.php 71
|
|
- $touched = strtotime($confirm->modified);
|
|
- $email = $confirm->address;
|
|
+ $touched = strtotime($confirm->modified);
|
|
+ $email = $confirm->address;
|
|
hunk ./actions/recoverpassword.php 74
|
|
- # Burn this code
|
|
+ # Burn this code
|
|
hunk ./actions/recoverpassword.php 76
|
|
- $result = $confirm->delete();
|
|
+ $result = $confirm->delete();
|
|
hunk ./actions/recoverpassword.php 78
|
|
- if (!$result) {
|
|
- common_log_db_error($confirm, 'DELETE', __FILE__);
|
|
- common_server_error(_('Error with confirmation code.'));
|
|
- return;
|
|
- }
|
|
+ if (!$result) {
|
|
+ common_log_db_error($confirm, 'DELETE', __FILE__);
|
|
+ common_server_error(_('Error with confirmation code.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/recoverpassword.php 84
|
|
- # These should be reaped, but for now we just check mod time
|
|
- # Note: it's still deleted; let's avoid a second attempt!
|
|
+ # These should be reaped, but for now we just check mod time
|
|
+ # Note: it's still deleted; let's avoid a second attempt!
|
|
hunk ./actions/recoverpassword.php 87
|
|
- if ((time() - $touched) > MAX_RECOVERY_TIME) {
|
|
- common_log(LOG_WARNING,
|
|
- 'Attempted redemption on recovery code ' .
|
|
- 'that is ' . $touched . ' seconds old. ');
|
|
- $this->client_error(_('This confirmation code is too old. ' .
|
|
- 'Please start again.'));
|
|
- return;
|
|
- }
|
|
+ if ((time() - $touched) > MAX_RECOVERY_TIME) {
|
|
+ common_log(LOG_WARNING,
|
|
+ 'Attempted redemption on recovery code ' .
|
|
+ 'that is ' . $touched . ' seconds old. ');
|
|
+ $this->client_error(_('This confirmation code is too old. ' .
|
|
+ 'Please start again.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/recoverpassword.php 96
|
|
- # If we used an outstanding confirmation to send the email,
|
|
- # it's been confirmed at this point.
|
|
+ # If we used an outstanding confirmation to send the email,
|
|
+ # it's been confirmed at this point.
|
|
hunk ./actions/recoverpassword.php 99
|
|
- if (!$user->email) {
|
|
- $orig = clone($user);
|
|
- $user->email = $email;
|
|
- $result = $user->updateKeys($orig);
|
|
- if (!$result) {
|
|
- common_log_db_error($user, 'UPDATE', __FILE__);
|
|
- $this->server_error(_('Could not update user with confirmed email address.'));
|
|
- return;
|
|
- }
|
|
- }
|
|
+ if (!$user->email) {
|
|
+ $orig = clone($user);
|
|
+ $user->email = $email;
|
|
+ $result = $user->updateKeys($orig);
|
|
+ if (!$result) {
|
|
+ common_log_db_error($user, 'UPDATE', __FILE__);
|
|
+ $this->server_error(_('Could not update user with confirmed email address.'));
|
|
+ return;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/recoverpassword.php 110
|
|
- # Success!
|
|
+ # Success!
|
|
hunk ./actions/recoverpassword.php 112
|
|
- $this->set_temp_user($user);
|
|
- $this->show_password_form();
|
|
- }
|
|
+ $this->set_temp_user($user);
|
|
+ $this->show_password_form();
|
|
+ }
|
|
hunk ./actions/recoverpassword.php 116
|
|
- function set_temp_user(&$user) {
|
|
- common_ensure_session();
|
|
- $_SESSION['tempuser'] = $user->id;
|
|
- }
|
|
+ function set_temp_user(&$user) {
|
|
+ common_ensure_session();
|
|
+ $_SESSION['tempuser'] = $user->id;
|
|
+ }
|
|
hunk ./actions/recoverpassword.php 121
|
|
- function get_temp_user() {
|
|
- common_ensure_session();
|
|
- $user_id = $_SESSION['tempuser'];
|
|
- if ($user_id) {
|
|
- $user = User::staticGet($user_id);
|
|
- }
|
|
- return $user;
|
|
- }
|
|
+ function get_temp_user() {
|
|
+ common_ensure_session();
|
|
+ $user_id = $_SESSION['tempuser'];
|
|
+ if ($user_id) {
|
|
+ $user = User::staticGet($user_id);
|
|
+ }
|
|
+ return $user;
|
|
+ }
|
|
hunk ./actions/recoverpassword.php 130
|
|
- function clear_temp_user() {
|
|
- common_ensure_session();
|
|
- unset($_SESSION['tempuser']);
|
|
- }
|
|
+ function clear_temp_user() {
|
|
+ common_ensure_session();
|
|
+ unset($_SESSION['tempuser']);
|
|
+ }
|
|
hunk ./actions/recoverpassword.php 135
|
|
- function show_top($msg=NULL) {
|
|
- if ($msg) {
|
|
+ function show_top($msg=NULL) {
|
|
+ if ($msg) {
|
|
hunk ./actions/recoverpassword.php 138
|
|
- } else {
|
|
- common_element_start('div', 'instructions');
|
|
- common_element('p', NULL,
|
|
- _('If you\'ve forgotten or lost your' .
|
|
- ' password, you can get a new one sent to' .
|
|
- ' the email address you have stored ' .
|
|
- ' in your account.'));
|
|
- common_element_end('div');
|
|
- }
|
|
- }
|
|
+ } else {
|
|
+ common_element_start('div', 'instructions');
|
|
+ common_element('p', NULL,
|
|
+ _('If you\'ve forgotten or lost your' .
|
|
+ ' password, you can get a new one sent to' .
|
|
+ ' the email address you have stored ' .
|
|
+ ' in your account.'));
|
|
+ common_element_end('div');
|
|
+ }
|
|
+ }
|
|
hunk ./actions/recoverpassword.php 149
|
|
- function show_password_top($msg=NULL) {
|
|
- if ($msg) {
|
|
+ function show_password_top($msg=NULL) {
|
|
+ if ($msg) {
|
|
hunk ./actions/recoverpassword.php 152
|
|
- } else {
|
|
- common_element('div', 'instructions',
|
|
- _('You\'ve been identified. Enter a ' .
|
|
- ' new password below. '));
|
|
- }
|
|
- }
|
|
+ } else {
|
|
+ common_element('div', 'instructions',
|
|
+ _('You\'ve been identified. Enter a ' .
|
|
+ ' new password below. '));
|
|
+ }
|
|
+ }
|
|
hunk ./actions/recoverpassword.php 159
|
|
- function show_form($msg=NULL) {
|
|
+ function show_form($msg=NULL) {
|
|
hunk ./actions/recoverpassword.php 161
|
|
- common_show_header(_('Recover password'), NULL,
|
|
- $msg, array($this, 'show_top'));
|
|
+ common_show_header(_('Recover password'), NULL,
|
|
+ $msg, array($this, 'show_top'));
|
|
hunk ./actions/recoverpassword.php 164
|
|
- common_element_start('form', array('method' => 'post',
|
|
- 'id' => 'recoverpassword',
|
|
- 'action' => common_local_url('recoverpassword')));
|
|
- common_input('nicknameoremail', _('Nickname or email'),
|
|
- $this->trimmed('nicknameoremail'),
|
|
- _('Your nickname on this server, ' .
|
|
- 'or your registered email address.'));
|
|
- common_submit('recover', _('Recover'));
|
|
- common_element_end('form');
|
|
- common_show_footer();
|
|
- }
|
|
+ common_element_start('form', array('method' => 'post',
|
|
+ 'id' => 'recoverpassword',
|
|
+ 'action' => common_local_url('recoverpassword')));
|
|
+ common_input('nicknameoremail', _('Nickname or email'),
|
|
+ $this->trimmed('nicknameoremail'),
|
|
+ _('Your nickname on this server, ' .
|
|
+ 'or your registered email address.'));
|
|
+ common_submit('recover', _('Recover'));
|
|
+ common_element_end('form');
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/recoverpassword.php 176
|
|
- function show_password_form($msg=NULL) {
|
|
+ function show_password_form($msg=NULL) {
|
|
hunk ./actions/recoverpassword.php 178
|
|
- common_show_header(_('Reset password'), NULL,
|
|
- $msg, array($this, 'show_password_top'));
|
|
+ common_show_header(_('Reset password'), NULL,
|
|
+ $msg, array($this, 'show_password_top'));
|
|
hunk ./actions/recoverpassword.php 181
|
|
- common_element_start('form', array('method' => 'post',
|
|
- 'id' => 'recoverpassword',
|
|
- 'action' => common_local_url('recoverpassword')));
|
|
- common_hidden('token', common_session_token());
|
|
- common_password('newpassword', _('New password'),
|
|
- _('6 or more characters, and don\'t forget it!'));
|
|
- common_password('confirm', _('Confirm'),
|
|
- _('Same as password above'));
|
|
- common_submit('reset', _('Reset'));
|
|
- common_element_end('form');
|
|
- common_show_footer();
|
|
- }
|
|
+ common_element_start('form', array('method' => 'post',
|
|
+ 'id' => 'recoverpassword',
|
|
+ 'action' => common_local_url('recoverpassword')));
|
|
+ common_hidden('token', common_session_token());
|
|
+ common_password('newpassword', _('New password'),
|
|
+ _('6 or more characters, and don\'t forget it!'));
|
|
+ common_password('confirm', _('Confirm'),
|
|
+ _('Same as password above'));
|
|
+ common_submit('reset', _('Reset'));
|
|
+ common_element_end('form');
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/recoverpassword.php 194
|
|
- function recover_password() {
|
|
- $nore = $this->trimmed('nicknameoremail');
|
|
- if (!$nore) {
|
|
- $this->show_form(_('Enter a nickname or email address.'));
|
|
- return;
|
|
- }
|
|
+ function recover_password() {
|
|
+ $nore = $this->trimmed('nicknameoremail');
|
|
+ if (!$nore) {
|
|
+ $this->show_form(_('Enter a nickname or email address.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/recoverpassword.php 201
|
|
- $user = User::staticGet('email', common_canonical_email($nore));
|
|
+ $user = User::staticGet('email', common_canonical_email($nore));
|
|
hunk ./actions/recoverpassword.php 203
|
|
- if (!$user) {
|
|
- $user = User::staticGet('nickname', common_canonical_nickname($nore));
|
|
- }
|
|
+ if (!$user) {
|
|
+ $user = User::staticGet('nickname', common_canonical_nickname($nore));
|
|
+ }
|
|
hunk ./actions/recoverpassword.php 207
|
|
- # See if it's an unconfirmed email address
|
|
+ # See if it's an unconfirmed email address
|
|
hunk ./actions/recoverpassword.php 209
|
|
- if (!$user) {
|
|
- $confirm_email = Confirm_address::staticGet('address', common_canonical_email($nore));
|
|
- if ($confirm_email && $confirm_email->address_type == 'email') {
|
|
- $user = User::staticGet($confirm_email->user_id);
|
|
- }
|
|
- }
|
|
+ if (!$user) {
|
|
+ $confirm_email = Confirm_address::staticGet('address', common_canonical_email($nore));
|
|
+ if ($confirm_email && $confirm_email->address_type == 'email') {
|
|
+ $user = User::staticGet($confirm_email->user_id);
|
|
+ }
|
|
+ }
|
|
hunk ./actions/recoverpassword.php 216
|
|
- if (!$user) {
|
|
- $this->show_form(_('No user with that email address or username.'));
|
|
- return;
|
|
- }
|
|
+ if (!$user) {
|
|
+ $this->show_form(_('No user with that email address or username.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/recoverpassword.php 221
|
|
- # Try to get an unconfirmed email address if they used a user name
|
|
+ # Try to get an unconfirmed email address if they used a user name
|
|
hunk ./actions/recoverpassword.php 223
|
|
- if (!$user->email && !$confirm_email) {
|
|
- $confirm_email = Confirm_address::staticGet('user_id', $user->id);
|
|
- if ($confirm_email && $confirm_email->address_type != 'email') {
|
|
- # Skip non-email confirmations
|
|
- $confirm_email = NULL;
|
|
- }
|
|
- }
|
|
+ if (!$user->email && !$confirm_email) {
|
|
+ $confirm_email = Confirm_address::staticGet('user_id', $user->id);
|
|
+ if ($confirm_email && $confirm_email->address_type != 'email') {
|
|
+ # Skip non-email confirmations
|
|
+ $confirm_email = NULL;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/recoverpassword.php 231
|
|
- if (!$user->email && !$confirm_email) {
|
|
- $this->client_error(_('No registered email address for that user.'));
|
|
- return;
|
|
- }
|
|
+ if (!$user->email && !$confirm_email) {
|
|
+ $this->client_error(_('No registered email address for that user.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/recoverpassword.php 236
|
|
- # Success! We have a valid user and a confirmed or unconfirmed email address
|
|
+ # Success! We have a valid user and a confirmed or unconfirmed email address
|
|
hunk ./actions/recoverpassword.php 238
|
|
- $confirm = new Confirm_address();
|
|
- $confirm->code = common_confirmation_code(128);
|
|
- $confirm->address_type = 'recover';
|
|
- $confirm->user_id = $user->id;
|
|
- $confirm->address = (isset($user->email)) ? $user->email : $confirm_email->address;
|
|
+ $confirm = new Confirm_address();
|
|
+ $confirm->code = common_confirmation_code(128);
|
|
+ $confirm->address_type = 'recover';
|
|
+ $confirm->user_id = $user->id;
|
|
+ $confirm->address = (isset($user->email)) ? $user->email : $confirm_email->address;
|
|
hunk ./actions/recoverpassword.php 244
|
|
- if (!$confirm->insert()) {
|
|
- common_log_db_error($confirm, 'INSERT', __FILE__);
|
|
- $this->server_error(_('Error saving address confirmation.'));
|
|
- return;
|
|
- }
|
|
+ if (!$confirm->insert()) {
|
|
+ common_log_db_error($confirm, 'INSERT', __FILE__);
|
|
+ $this->server_error(_('Error saving address confirmation.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/recoverpassword.php 250
|
|
- $body = "Hey, $user->nickname.";
|
|
- $body .= "\n\n";
|
|
- $body .= 'Someone just asked for a new password ' .
|
|
- 'for this account on ' . common_config('site', 'name') . '.';
|
|
- $body .= "\n\n";
|
|
- $body .= 'If it was you, and you want to confirm, use the URL below:';
|
|
- $body .= "\n\n";
|
|
- $body .= "\t".common_local_url('recoverpassword',
|
|
- array('code' => $confirm->code));
|
|
- $body .= "\n\n";
|
|
- $body .= 'If not, just ignore this message.';
|
|
- $body .= "\n\n";
|
|
- $body .= 'Thanks for your time, ';
|
|
- $body .= "\n";
|
|
- $body .= common_config('site', 'name');
|
|
- $body .= "\n";
|
|
+ $body = "Hey, $user->nickname.";
|
|
+ $body .= "\n\n";
|
|
+ $body .= 'Someone just asked for a new password ' .
|
|
+ 'for this account on ' . common_config('site', 'name') . '.';
|
|
+ $body .= "\n\n";
|
|
+ $body .= 'If it was you, and you want to confirm, use the URL below:';
|
|
+ $body .= "\n\n";
|
|
+ $body .= "\t".common_local_url('recoverpassword',
|
|
+ array('code' => $confirm->code));
|
|
+ $body .= "\n\n";
|
|
+ $body .= 'If not, just ignore this message.';
|
|
+ $body .= "\n\n";
|
|
+ $body .= 'Thanks for your time, ';
|
|
+ $body .= "\n";
|
|
+ $body .= common_config('site', 'name');
|
|
+ $body .= "\n";
|
|
hunk ./actions/recoverpassword.php 267
|
|
- mail_to_user($user, _('Password recovery requested'), $body, $confirm->address);
|
|
+ mail_to_user($user, _('Password recovery requested'), $body, $confirm->address);
|
|
hunk ./actions/recoverpassword.php 269
|
|
- common_show_header(_('Password recovery requested'));
|
|
- common_element('p', NULL,
|
|
- _('Instructions for recovering your password ' .
|
|
- 'have been sent to the email address registered to your ' .
|
|
- 'account.'));
|
|
- common_show_footer();
|
|
- }
|
|
+ common_show_header(_('Password recovery requested'));
|
|
+ common_element('p', NULL,
|
|
+ _('Instructions for recovering your password ' .
|
|
+ 'have been sent to the email address registered to your ' .
|
|
+ 'account.'));
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/recoverpassword.php 277
|
|
- function reset_password() {
|
|
+ function reset_password() {
|
|
hunk ./actions/recoverpassword.php 279
|
|
- # CSRF protection
|
|
- $token = $this->trimmed('token');
|
|
- if (!$token || $token != common_session_token()) {
|
|
- $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
- return;
|
|
- }
|
|
+ # CSRF protection
|
|
+ $token = $this->trimmed('token');
|
|
+ if (!$token || $token != common_session_token()) {
|
|
+ $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/recoverpassword.php 286
|
|
- $user = $this->get_temp_user();
|
|
+ $user = $this->get_temp_user();
|
|
hunk ./actions/recoverpassword.php 288
|
|
- if (!$user) {
|
|
- $this->client_error(_('Unexpected password reset.'));
|
|
- return;
|
|
- }
|
|
+ if (!$user) {
|
|
+ $this->client_error(_('Unexpected password reset.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/recoverpassword.php 293
|
|
- $newpassword = $this->trimmed('newpassword');
|
|
- $confirm = $this->trimmed('confirm');
|
|
+ $newpassword = $this->trimmed('newpassword');
|
|
+ $confirm = $this->trimmed('confirm');
|
|
hunk ./actions/recoverpassword.php 296
|
|
- if (!$newpassword || strlen($newpassword) < 6) {
|
|
- $this->show_password_form(_('Password must be 6 chars or more.'));
|
|
- return;
|
|
- }
|
|
- if ($newpassword != $confirm) {
|
|
- $this->show_password_form(_('Password and confirmation do not match.'));
|
|
- return;
|
|
- }
|
|
+ if (!$newpassword || strlen($newpassword) < 6) {
|
|
+ $this->show_password_form(_('Password must be 6 chars or more.'));
|
|
+ return;
|
|
+ }
|
|
+ if ($newpassword != $confirm) {
|
|
+ $this->show_password_form(_('Password and confirmation do not match.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/recoverpassword.php 305
|
|
- # OK, we're ready to go
|
|
+ # OK, we're ready to go
|
|
hunk ./actions/recoverpassword.php 307
|
|
- $original = clone($user);
|
|
+ $original = clone($user);
|
|
hunk ./actions/recoverpassword.php 309
|
|
- $user->password = common_munge_password($newpassword, $user->id);
|
|
+ $user->password = common_munge_password($newpassword, $user->id);
|
|
hunk ./actions/recoverpassword.php 311
|
|
- if (!$user->update($original)) {
|
|
- common_log_db_error($user, 'UPDATE', __FILE__);
|
|
- common_server_error(_('Can\'t save new password.'));
|
|
- return;
|
|
- }
|
|
+ if (!$user->update($original)) {
|
|
+ common_log_db_error($user, 'UPDATE', __FILE__);
|
|
+ common_server_error(_('Can\'t save new password.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/recoverpassword.php 317
|
|
- $this->clear_temp_user();
|
|
+ $this->clear_temp_user();
|
|
hunk ./actions/recoverpassword.php 319
|
|
- if (!common_set_user($user->nickname)) {
|
|
- common_server_error(_('Error setting user.'));
|
|
- return;
|
|
- }
|
|
+ if (!common_set_user($user->nickname)) {
|
|
+ common_server_error(_('Error setting user.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/recoverpassword.php 324
|
|
- common_real_login(true);
|
|
+ common_real_login(true);
|
|
hunk ./actions/recoverpassword.php 326
|
|
- common_show_header(_('Password saved.'));
|
|
- common_element('p', NULL, _('New password successfully saved. ' .
|
|
- 'You are now logged in.'));
|
|
- common_show_footer();
|
|
- }
|
|
+ common_show_header(_('Password saved.'));
|
|
+ common_element('p', NULL, _('New password successfully saved. ' .
|
|
+ 'You are now logged in.'));
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/register.php 24
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/register.php 27
|
|
- if (common_config('site', 'closed')) {
|
|
- common_user_error(_('Registration not allowed.'));
|
|
- } else if (common_logged_in()) {
|
|
- common_user_error(_('Already logged in.'));
|
|
- } else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
|
- $this->try_register();
|
|
- } else {
|
|
- $this->show_form();
|
|
- }
|
|
- }
|
|
+ if (common_config('site', 'closed')) {
|
|
+ common_user_error(_('Registration not allowed.'));
|
|
+ } else if (common_logged_in()) {
|
|
+ common_user_error(_('Already logged in.'));
|
|
+ } else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
|
+ $this->try_register();
|
|
+ } else {
|
|
+ $this->show_form();
|
|
+ }
|
|
+ }
|
|
hunk ./actions/register.php 38
|
|
- function try_register() {
|
|
+ function try_register() {
|
|
hunk ./actions/register.php 40
|
|
- $token = $this->trimmed('token');
|
|
- if (!$token || $token != common_session_token()) {
|
|
- $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
- return;
|
|
- }
|
|
+ $token = $this->trimmed('token');
|
|
+ if (!$token || $token != common_session_token()) {
|
|
+ $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/register.php 46
|
|
- $nickname = $this->trimmed('nickname');
|
|
- $email = $this->trimmed('email');
|
|
- $fullname = $this->trimmed('fullname');
|
|
- $homepage = $this->trimmed('homepage');
|
|
- $bio = $this->trimmed('bio');
|
|
- $location = $this->trimmed('location');
|
|
+ $nickname = $this->trimmed('nickname');
|
|
+ $email = $this->trimmed('email');
|
|
+ $fullname = $this->trimmed('fullname');
|
|
+ $homepage = $this->trimmed('homepage');
|
|
+ $bio = $this->trimmed('bio');
|
|
+ $location = $this->trimmed('location');
|
|
hunk ./actions/register.php 53
|
|
- # We don't trim these... whitespace is OK in a password!
|
|
+ # We don't trim these... whitespace is OK in a password!
|
|
hunk ./actions/register.php 55
|
|
- $password = $this->arg('password');
|
|
- $confirm = $this->arg('confirm');
|
|
+ $password = $this->arg('password');
|
|
+ $confirm = $this->arg('confirm');
|
|
hunk ./actions/register.php 58
|
|
- # invitation code, if any
|
|
+ # invitation code, if any
|
|
hunk ./actions/register.php 60
|
|
- $code = $this->trimmed('code');
|
|
+ $code = $this->trimmed('code');
|
|
hunk ./actions/register.php 62
|
|
- if ($code) {
|
|
- $invite = Invitation::staticGet($code);
|
|
- }
|
|
+ if ($code) {
|
|
+ $invite = Invitation::staticGet($code);
|
|
+ }
|
|
hunk ./actions/register.php 66
|
|
- if (common_config('site', 'inviteonly') && !($code && $invite)) {
|
|
- $this->client_error(_('Sorry, only invited people can register.'));
|
|
- return;
|
|
- }
|
|
+ if (common_config('site', 'inviteonly') && !($code && $invite)) {
|
|
+ $this->client_error(_('Sorry, only invited people can register.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/register.php 71
|
|
- # Input scrubbing
|
|
+ # Input scrubbing
|
|
hunk ./actions/register.php 73
|
|
- $nickname = common_canonical_nickname($nickname);
|
|
- $email = common_canonical_email($email);
|
|
+ $nickname = common_canonical_nickname($nickname);
|
|
+ $email = common_canonical_email($email);
|
|
hunk ./actions/register.php 76
|
|
- if (!$this->boolean('license')) {
|
|
- $this->show_form(_('You can\'t register if you don\'t agree to the license.'));
|
|
- } else if ($email && !Validate::email($email, true)) {
|
|
- $this->show_form(_('Not a valid email address.'));
|
|
- } else if (!Validate::string($nickname, array('min_length' => 1,
|
|
- 'max_length' => 64,
|
|
- 'format' => VALIDATE_NUM . VALIDATE_ALPHA_LOWER))) {
|
|
- $this->show_form(_('Nickname must have only lowercase letters and numbers and no spaces.'));
|
|
- } else if ($this->nickname_exists($nickname)) {
|
|
- $this->show_form(_('Nickname already in use. Try another one.'));
|
|
- } else if (!User::allowed_nickname($nickname)) {
|
|
- $this->show_form(_('Not a valid nickname.'));
|
|
- } else if ($this->email_exists($email)) {
|
|
- $this->show_form(_('Email address already exists.'));
|
|
- } else if (!is_null($homepage) && (strlen($homepage) > 0) &&
|
|
- !Validate::uri($homepage, array('allowed_schemes' => array('http', 'https')))) {
|
|
- $this->show_form(_('Homepage is not a valid URL.'));
|
|
- return;
|
|
- } else if (!is_null($fullname) && strlen($fullname) > 255) {
|
|
- $this->show_form(_('Full name is too long (max 255 chars).'));
|
|
- return;
|
|
- } else if (!is_null($bio) && strlen($bio) > 140) {
|
|
- $this->show_form(_('Bio is too long (max 140 chars).'));
|
|
- return;
|
|
- } else if (!is_null($location) && strlen($location) > 255) {
|
|
- $this->show_form(_('Location is too long (max 255 chars).'));
|
|
- return;
|
|
- } else if (strlen($password) < 6) {
|
|
- $this->show_form(_('Password must be 6 or more characters.'));
|
|
- return;
|
|
- } else if ($password != $confirm) {
|
|
- $this->show_form(_('Passwords don\'t match.'));
|
|
- } else if ($user = User::register(array('nickname' => $nickname, 'password' => $password, 'email' => $email,
|
|
- 'fullname' => $fullname, 'homepage' => $homepage, 'bio' => $bio,
|
|
- 'location' => $location, 'code' => $code))) {
|
|
- if (!$user) {
|
|
- $this->show_form(_('Invalid username or password.'));
|
|
- return;
|
|
- }
|
|
- # success!
|
|
- if (!common_set_user($user)) {
|
|
- common_server_error(_('Error setting user.'));
|
|
- return;
|
|
- }
|
|
- # this is a real login
|
|
- common_real_login(true);
|
|
- if ($this->boolean('rememberme')) {
|
|
- common_debug('Adding rememberme cookie for ' . $nickname);
|
|
- common_rememberme($user);
|
|
- }
|
|
- # Re-init language env in case it changed (not yet, but soon)
|
|
- common_init_language();
|
|
- $this->show_success();
|
|
- } else {
|
|
- $this->show_form(_('Invalid username or password.'));
|
|
- }
|
|
- }
|
|
+ if (!$this->boolean('license')) {
|
|
+ $this->show_form(_('You can\'t register if you don\'t agree to the license.'));
|
|
+ } else if ($email && !Validate::email($email, true)) {
|
|
+ $this->show_form(_('Not a valid email address.'));
|
|
+ } else if (!Validate::string($nickname, array('min_length' => 1,
|
|
+ 'max_length' => 64,
|
|
+ 'format' => VALIDATE_NUM . VALIDATE_ALPHA_LOWER))) {
|
|
+ $this->show_form(_('Nickname must have only lowercase letters and numbers and no spaces.'));
|
|
+ } else if ($this->nickname_exists($nickname)) {
|
|
+ $this->show_form(_('Nickname already in use. Try another one.'));
|
|
+ } else if (!User::allowed_nickname($nickname)) {
|
|
+ $this->show_form(_('Not a valid nickname.'));
|
|
+ } else if ($this->email_exists($email)) {
|
|
+ $this->show_form(_('Email address already exists.'));
|
|
+ } else if (!is_null($homepage) && (strlen($homepage) > 0) &&
|
|
+ !Validate::uri($homepage, array('allowed_schemes' => array('http', 'https')))) {
|
|
+ $this->show_form(_('Homepage is not a valid URL.'));
|
|
+ return;
|
|
+ } else if (!is_null($fullname) && strlen($fullname) > 255) {
|
|
+ $this->show_form(_('Full name is too long (max 255 chars).'));
|
|
+ return;
|
|
+ } else if (!is_null($bio) && strlen($bio) > 140) {
|
|
+ $this->show_form(_('Bio is too long (max 140 chars).'));
|
|
+ return;
|
|
+ } else if (!is_null($location) && strlen($location) > 255) {
|
|
+ $this->show_form(_('Location is too long (max 255 chars).'));
|
|
+ return;
|
|
+ } else if (strlen($password) < 6) {
|
|
+ $this->show_form(_('Password must be 6 or more characters.'));
|
|
+ return;
|
|
+ } else if ($password != $confirm) {
|
|
+ $this->show_form(_('Passwords don\'t match.'));
|
|
+ } else if ($user = User::register(array('nickname' => $nickname, 'password' => $password, 'email' => $email,
|
|
+ 'fullname' => $fullname, 'homepage' => $homepage, 'bio' => $bio,
|
|
+ 'location' => $location, 'code' => $code))) {
|
|
+ if (!$user) {
|
|
+ $this->show_form(_('Invalid username or password.'));
|
|
+ return;
|
|
+ }
|
|
+ # success!
|
|
+ if (!common_set_user($user)) {
|
|
+ common_server_error(_('Error setting user.'));
|
|
+ return;
|
|
+ }
|
|
+ # this is a real login
|
|
+ common_real_login(true);
|
|
+ if ($this->boolean('rememberme')) {
|
|
+ common_debug('Adding rememberme cookie for ' . $nickname);
|
|
+ common_rememberme($user);
|
|
+ }
|
|
+ # Re-init language env in case it changed (not yet, but soon)
|
|
+ common_init_language();
|
|
+ $this->show_success();
|
|
+ } else {
|
|
+ $this->show_form(_('Invalid username or password.'));
|
|
+ }
|
|
+ }
|
|
hunk ./actions/register.php 134
|
|
- # checks if *CANONICAL* nickname exists
|
|
+ # checks if *CANONICAL* nickname exists
|
|
hunk ./actions/register.php 136
|
|
- function nickname_exists($nickname) {
|
|
- $user = User::staticGet('nickname', $nickname);
|
|
- return ($user !== false);
|
|
- }
|
|
+ function nickname_exists($nickname) {
|
|
+ $user = User::staticGet('nickname', $nickname);
|
|
+ return ($user !== false);
|
|
+ }
|
|
hunk ./actions/register.php 141
|
|
- # checks if *CANONICAL* email exists
|
|
+ # checks if *CANONICAL* email exists
|
|
hunk ./actions/register.php 143
|
|
- function email_exists($email) {
|
|
- $email = common_canonical_email($email);
|
|
- if (!$email || strlen($email) == 0) {
|
|
- return false;
|
|
- }
|
|
- $user = User::staticGet('email', $email);
|
|
- return ($user !== false);
|
|
- }
|
|
+ function email_exists($email) {
|
|
+ $email = common_canonical_email($email);
|
|
+ if (!$email || strlen($email) == 0) {
|
|
+ return false;
|
|
+ }
|
|
+ $user = User::staticGet('email', $email);
|
|
+ return ($user !== false);
|
|
+ }
|
|
hunk ./actions/register.php 152
|
|
- function show_top($error=NULL) {
|
|
- if ($error) {
|
|
- common_element('p', 'error', $error);
|
|
- } else {
|
|
- $instr = common_markup_to_html(_('With this form you can create a new account. ' .
|
|
- 'You can then post notices and link up to friends and colleagues. '.
|
|
- '(Have an [OpenID](http://openid.net/)? ' .
|
|
- 'Try our [OpenID registration](%%action.openidlogin%%)!)'));
|
|
+ function show_top($error=NULL) {
|
|
+ if ($error) {
|
|
+ common_element('p', 'error', $error);
|
|
+ } else {
|
|
+ $instr = common_markup_to_html(_('With this form you can create a new account. ' .
|
|
+ 'You can then post notices and link up to friends and colleagues. '.
|
|
+ '(Have an [OpenID](http://openid.net/)? ' .
|
|
+ 'Try our [OpenID registration](%%action.openidlogin%%)!)'));
|
|
hunk ./actions/register.php 161
|
|
- common_element_start('div', 'instructions');
|
|
- common_raw($instr);
|
|
- common_element_end('div');
|
|
- }
|
|
- }
|
|
+ common_element_start('div', 'instructions');
|
|
+ common_raw($instr);
|
|
+ common_element_end('div');
|
|
+ }
|
|
+ }
|
|
hunk ./actions/register.php 167
|
|
- function show_form($error=NULL) {
|
|
- global $config;
|
|
+ function show_form($error=NULL) {
|
|
+ global $config;
|
|
hunk ./actions/register.php 170
|
|
- $code = $this->trimmed('code');
|
|
+ $code = $this->trimmed('code');
|
|
hunk ./actions/register.php 172
|
|
- if ($code) {
|
|
- $invite = Invitation::staticGet($code);
|
|
- }
|
|
+ if ($code) {
|
|
+ $invite = Invitation::staticGet($code);
|
|
+ }
|
|
hunk ./actions/register.php 176
|
|
- if (common_config('site', 'inviteonly') && !($code && $invite)) {
|
|
- $this->client_error(_('Sorry, only invited people can register.'));
|
|
- return;
|
|
- }
|
|
+ if (common_config('site', 'inviteonly') && !($code && $invite)) {
|
|
+ $this->client_error(_('Sorry, only invited people can register.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/register.php 181
|
|
- common_show_header(_('Register'), NULL, $error, array($this, 'show_top'));
|
|
- common_element_start('form', array('method' => 'post',
|
|
- 'id' => 'login',
|
|
- 'action' => common_local_url('register')));
|
|
+ common_show_header(_('Register'), NULL, $error, array($this, 'show_top'));
|
|
+ common_element_start('form', array('method' => 'post',
|
|
+ 'id' => 'login',
|
|
+ 'action' => common_local_url('register')));
|
|
hunk ./actions/register.php 186
|
|
- common_hidden('token', common_session_token());
|
|
+ common_hidden('token', common_session_token());
|
|
hunk ./actions/register.php 188
|
|
- if ($code) {
|
|
- common_hidden('code', $code);
|
|
- }
|
|
+ if ($code) {
|
|
+ common_hidden('code', $code);
|
|
+ }
|
|
hunk ./actions/register.php 192
|
|
- common_input('nickname', _('Nickname'), $this->trimmed('nickname'),
|
|
- _('1-64 lowercase letters or numbers, no punctuation or spaces. Required.'));
|
|
- common_password('password', _('Password'),
|
|
- _('6 or more characters. Required.'));
|
|
- common_password('confirm', _('Confirm'),
|
|
- _('Same as password above. Required.'));
|
|
- if ($invite && $invite->address_type == 'email') {
|
|
- common_input('email', _('Email'), $invite->address,
|
|
- _('Used only for updates, announcements, and password recovery'));
|
|
- } else {
|
|
- common_input('email', _('Email'), $this->trimmed('email'),
|
|
- _('Used only for updates, announcements, and password recovery'));
|
|
- }
|
|
- common_input('fullname', _('Full name'),
|
|
- $this->trimmed('fullname'),
|
|
- _('Longer name, preferably your "real" name'));
|
|
- common_input('homepage', _('Homepage'),
|
|
- $this->trimmed('homepage'),
|
|
- _('URL of your homepage, blog, or profile on another site'));
|
|
- common_textarea('bio', _('Bio'),
|
|
- $this->trimmed('bio'),
|
|
- _('Describe yourself and your interests in 140 chars'));
|
|
- common_input('location', _('Location'),
|
|
- $this->trimmed('location'),
|
|
- _('Where you are, like "City, State (or Region), Country"'));
|
|
- common_checkbox('rememberme', _('Remember me'),
|
|
- $this->boolean('rememberme'),
|
|
- _('Automatically login in the future; not for shared computers!'));
|
|
- common_element_start('p');
|
|
- $attrs = array('type' => 'checkbox',
|
|
- 'id' => 'license',
|
|
- 'name' => 'license',
|
|
- 'value' => 'true');
|
|
- if ($this->boolean('license')) {
|
|
- $attrs['checked'] = 'checked';
|
|
- }
|
|
- common_element('input', $attrs);
|
|
- common_text(_('My text and files are available under '));
|
|
- common_element('a', array('href' => $config['license']['url']),
|
|
- $config['license']['title']);
|
|
- common_text(_(' except this private data: password, email address, IM address, phone number.'));
|
|
- common_element_end('p');
|
|
- common_submit('submit', _('Register'));
|
|
- common_element_end('form');
|
|
- common_show_footer();
|
|
- }
|
|
+ common_input('nickname', _('Nickname'), $this->trimmed('nickname'),
|
|
+ _('1-64 lowercase letters or numbers, no punctuation or spaces. Required.'));
|
|
+ common_password('password', _('Password'),
|
|
+ _('6 or more characters. Required.'));
|
|
+ common_password('confirm', _('Confirm'),
|
|
+ _('Same as password above. Required.'));
|
|
+ if ($invite && $invite->address_type == 'email') {
|
|
+ common_input('email', _('Email'), $invite->address,
|
|
+ _('Used only for updates, announcements, and password recovery'));
|
|
+ } else {
|
|
+ common_input('email', _('Email'), $this->trimmed('email'),
|
|
+ _('Used only for updates, announcements, and password recovery'));
|
|
+ }
|
|
+ common_input('fullname', _('Full name'),
|
|
+ $this->trimmed('fullname'),
|
|
+ _('Longer name, preferably your "real" name'));
|
|
+ common_input('homepage', _('Homepage'),
|
|
+ $this->trimmed('homepage'),
|
|
+ _('URL of your homepage, blog, or profile on another site'));
|
|
+ common_textarea('bio', _('Bio'),
|
|
+ $this->trimmed('bio'),
|
|
+ _('Describe yourself and your interests in 140 chars'));
|
|
+ common_input('location', _('Location'),
|
|
+ $this->trimmed('location'),
|
|
+ _('Where you are, like "City, State (or Region), Country"'));
|
|
+ common_checkbox('rememberme', _('Remember me'),
|
|
+ $this->boolean('rememberme'),
|
|
+ _('Automatically login in the future; not for shared computers!'));
|
|
+ common_element_start('p');
|
|
+ $attrs = array('type' => 'checkbox',
|
|
+ 'id' => 'license',
|
|
+ 'name' => 'license',
|
|
+ 'value' => 'true');
|
|
+ if ($this->boolean('license')) {
|
|
+ $attrs['checked'] = 'checked';
|
|
+ }
|
|
+ common_element('input', $attrs);
|
|
+ common_text(_('My text and files are available under '));
|
|
+ common_element('a', array('href' => $config['license']['url']),
|
|
+ $config['license']['title']);
|
|
+ common_text(_(' except this private data: password, email address, IM address, phone number.'));
|
|
+ common_element_end('p');
|
|
+ common_submit('submit', _('Register'));
|
|
+ common_element_end('form');
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/register.php 239
|
|
- function show_success() {
|
|
- $nickname = $this->arg('nickname');
|
|
- common_show_header(_('Registration successful'));
|
|
- common_element_start('div', 'success');
|
|
- $instr = sprintf(_('Congratulations, %s! And welcome to %%%%site.name%%%%. From here, you may want to...'. "\n\n" .
|
|
- '* Go to [your profile](%s) and post your first message.' . "\n" .
|
|
- '* Add a [Jabber/GTalk address](%%%%action.imsettings%%%%) so you can send notices through instant messages.' . "\n" .
|
|
- '* [Search for people](%%%%action.peoplesearch%%%%) that you may know or that share your interests. ' . "\n" .
|
|
- '* Update your [profile settings](%%%%action.profilesettings%%%%) to tell others more about you. ' . "\n" .
|
|
- '* Read over the [online docs](%%%%doc.help%%%%) for features you may have missed. ' . "\n\n" .
|
|
- 'Thanks for signing up and we hope you enjoy using this service.'),
|
|
- $nickname, common_local_url('showstream', array('nickname' => $nickname)));
|
|
- common_raw(common_markup_to_html($instr));
|
|
- $have_email = $this->trimmed('email');
|
|
- if ($have_email) {
|
|
- $emailinstr = _('(You should receive a message by email momentarily, with ' .
|
|
- 'instructions on how to confirm your email address.)');
|
|
- common_raw(common_markup_to_html($emailinstr));
|
|
- }
|
|
- common_element_end('div');
|
|
- common_show_footer();
|
|
- }
|
|
+ function show_success() {
|
|
+ $nickname = $this->arg('nickname');
|
|
+ common_show_header(_('Registration successful'));
|
|
+ common_element_start('div', 'success');
|
|
+ $instr = sprintf(_('Congratulations, %s! And welcome to %%%%site.name%%%%. From here, you may want to...'. "\n\n" .
|
|
+ '* Go to [your profile](%s) and post your first message.' . "\n" .
|
|
+ '* Add a [Jabber/GTalk address](%%%%action.imsettings%%%%) so you can send notices through instant messages.' . "\n" .
|
|
+ '* [Search for people](%%%%action.peoplesearch%%%%) that you may know or that share your interests. ' . "\n" .
|
|
+ '* Update your [profile settings](%%%%action.profilesettings%%%%) to tell others more about you. ' . "\n" .
|
|
+ '* Read over the [online docs](%%%%doc.help%%%%) for features you may have missed. ' . "\n\n" .
|
|
+ 'Thanks for signing up and we hope you enjoy using this service.'),
|
|
+ $nickname, common_local_url('showstream', array('nickname' => $nickname)));
|
|
+ common_raw(common_markup_to_html($instr));
|
|
+ $have_email = $this->trimmed('email');
|
|
+ if ($have_email) {
|
|
+ $emailinstr = _('(You should receive a message by email momentarily, with ' .
|
|
+ 'instructions on how to confirm your email address.)');
|
|
+ common_raw(common_markup_to_html($emailinstr));
|
|
+ }
|
|
+ common_element_end('div');
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 26
|
|
- function handle($args) {
|
|
+ function handle($args) {
|
|
hunk ./actions/remotesubscribe.php 28
|
|
- parent::handle($args);
|
|
+ parent::handle($args);
|
|
hunk ./actions/remotesubscribe.php 30
|
|
- if (common_logged_in()) {
|
|
- common_user_error(_('You can use the local subscription!'));
|
|
- return;
|
|
- }
|
|
+ if (common_logged_in()) {
|
|
+ common_user_error(_('You can use the local subscription!'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 35
|
|
- if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
|
+ if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
|
hunk ./actions/remotesubscribe.php 37
|
|
- # CSRF protection
|
|
- $token = $this->trimmed('token');
|
|
- if (!$token || $token != common_session_token()) {
|
|
- $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
- return;
|
|
- }
|
|
+ # CSRF protection
|
|
+ $token = $this->trimmed('token');
|
|
+ if (!$token || $token != common_session_token()) {
|
|
+ $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 44
|
|
- $this->remote_subscription();
|
|
- } else {
|
|
- $this->show_form();
|
|
- }
|
|
- }
|
|
+ $this->remote_subscription();
|
|
+ } else {
|
|
+ $this->show_form();
|
|
+ }
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 50
|
|
- function get_instructions() {
|
|
- return _('To subscribe, you can [login](%%action.login%%),' .
|
|
- ' or [register](%%action.register%%) a new ' .
|
|
- ' account. If you already have an account ' .
|
|
- ' on a [compatible microblogging site](%%doc.openmublog%%), ' .
|
|
- ' enter your profile URL below.');
|
|
- }
|
|
+ function get_instructions() {
|
|
+ return _('To subscribe, you can [login](%%action.login%%),' .
|
|
+ ' or [register](%%action.register%%) a new ' .
|
|
+ ' account. If you already have an account ' .
|
|
+ ' on a [compatible microblogging site](%%doc.openmublog%%), ' .
|
|
+ ' enter your profile URL below.');
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 58
|
|
- function show_top($err=NULL) {
|
|
- if ($err) {
|
|
- common_element('div', 'error', $err);
|
|
- } else {
|
|
- $instructions = $this->get_instructions();
|
|
- $output = common_markup_to_html($instructions);
|
|
- common_element_start('div', 'instructions');
|
|
- common_raw($output);
|
|
- common_element_end('p');
|
|
- }
|
|
- }
|
|
+ function show_top($err=NULL) {
|
|
+ if ($err) {
|
|
+ common_element('div', 'error', $err);
|
|
+ } else {
|
|
+ $instructions = $this->get_instructions();
|
|
+ $output = common_markup_to_html($instructions);
|
|
+ common_element_start('div', 'instructions');
|
|
+ common_raw($output);
|
|
+ common_element_end('p');
|
|
+ }
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 70
|
|
- function show_form($err=NULL) {
|
|
- $nickname = $this->trimmed('nickname');
|
|
- $profile = $this->trimmed('profile_url');
|
|
- common_show_header(_('Remote subscribe'), NULL, $err,
|
|
- array($this, 'show_top'));
|
|
- # id = remotesubscribe conflicts with the
|
|
- # button on profile page
|
|
- common_element_start('form', array('id' => 'remsub', 'method' => 'post',
|
|
- 'action' => common_local_url('remotesubscribe')));
|
|
- common_hidden('token', common_session_token());
|
|
- common_input('nickname', _('User nickname'), $nickname,
|
|
- _('Nickname of the user you want to follow'));
|
|
- common_input('profile_url', _('Profile URL'), $profile,
|
|
- _('URL of your profile on another compatible microblogging service'));
|
|
- common_submit('submit', _('Subscribe'));
|
|
- common_element_end('form');
|
|
- common_show_footer();
|
|
- }
|
|
+ function show_form($err=NULL) {
|
|
+ $nickname = $this->trimmed('nickname');
|
|
+ $profile = $this->trimmed('profile_url');
|
|
+ common_show_header(_('Remote subscribe'), NULL, $err,
|
|
+ array($this, 'show_top'));
|
|
+ # id = remotesubscribe conflicts with the
|
|
+ # button on profile page
|
|
+ common_element_start('form', array('id' => 'remsub', 'method' => 'post',
|
|
+ 'action' => common_local_url('remotesubscribe')));
|
|
+ common_hidden('token', common_session_token());
|
|
+ common_input('nickname', _('User nickname'), $nickname,
|
|
+ _('Nickname of the user you want to follow'));
|
|
+ common_input('profile_url', _('Profile URL'), $profile,
|
|
+ _('URL of your profile on another compatible microblogging service'));
|
|
+ common_submit('submit', _('Subscribe'));
|
|
+ common_element_end('form');
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 89
|
|
- function remote_subscription() {
|
|
- $user = $this->get_user();
|
|
+ function remote_subscription() {
|
|
+ $user = $this->get_user();
|
|
hunk ./actions/remotesubscribe.php 92
|
|
- if (!$user) {
|
|
- $this->show_form(_('No such user.'));
|
|
- return;
|
|
- }
|
|
+ if (!$user) {
|
|
+ $this->show_form(_('No such user.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 97
|
|
- $profile = $this->trimmed('profile_url');
|
|
+ $profile = $this->trimmed('profile_url');
|
|
hunk ./actions/remotesubscribe.php 99
|
|
- if (!$profile) {
|
|
- $this->show_form(_('No such user.'));
|
|
- return;
|
|
- }
|
|
+ if (!$profile) {
|
|
+ $this->show_form(_('No such user.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 104
|
|
- if (!Validate::uri($profile, array('allowed_schemes' => array('http', 'https')))) {
|
|
- $this->show_form(_('Invalid profile URL (bad format)'));
|
|
- return;
|
|
- }
|
|
+ if (!Validate::uri($profile, array('allowed_schemes' => array('http', 'https')))) {
|
|
+ $this->show_form(_('Invalid profile URL (bad format)'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 109
|
|
- $fetcher = Auth_Yadis_Yadis::getHTTPFetcher();
|
|
- $yadis = Auth_Yadis_Yadis::discover($profile, $fetcher);
|
|
+ $fetcher = Auth_Yadis_Yadis::getHTTPFetcher();
|
|
+ $yadis = Auth_Yadis_Yadis::discover($profile, $fetcher);
|
|
hunk ./actions/remotesubscribe.php 112
|
|
- if (!$yadis || $yadis->failed) {
|
|
- $this->show_form(_('Not a valid profile URL (no YADIS document).'));
|
|
- return;
|
|
- }
|
|
+ if (!$yadis || $yadis->failed) {
|
|
+ $this->show_form(_('Not a valid profile URL (no YADIS document).'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 117
|
|
- # XXX: a little liberal for sites that accidentally put whitespace before the xml declaration
|
|
+ # XXX: a little liberal for sites that accidentally put whitespace before the xml declaration
|
|
hunk ./actions/remotesubscribe.php 121
|
|
- if (!$xrds) {
|
|
- $this->show_form(_('Not a valid profile URL (no XRDS defined).'));
|
|
- return;
|
|
- }
|
|
+ if (!$xrds) {
|
|
+ $this->show_form(_('Not a valid profile URL (no XRDS defined).'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 126
|
|
- $omb = $this->getOmb($xrds);
|
|
+ $omb = $this->getOmb($xrds);
|
|
hunk ./actions/remotesubscribe.php 128
|
|
- if (!$omb) {
|
|
- $this->show_form(_('Not a valid profile URL (incorrect services).'));
|
|
- return;
|
|
- }
|
|
+ if (!$omb) {
|
|
+ $this->show_form(_('Not a valid profile URL (incorrect services).'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 133
|
|
- if (omb_service_uri($omb[OAUTH_ENDPOINT_REQUEST]) ==
|
|
- common_local_url('requesttoken'))
|
|
- {
|
|
- $this->show_form(_('That\'s a local profile! Login to subscribe.'));
|
|
- return;
|
|
- }
|
|
+ if (omb_service_uri($omb[OAUTH_ENDPOINT_REQUEST]) ==
|
|
+ common_local_url('requesttoken'))
|
|
+ {
|
|
+ $this->show_form(_('That\'s a local profile! Login to subscribe.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 140
|
|
- if (User::staticGet('uri', omb_local_id($omb[OAUTH_ENDPOINT_REQUEST]))) {
|
|
- $this->show_form(_('That\'s a local profile! Login to subscribe.'));
|
|
- return;
|
|
- }
|
|
+ if (User::staticGet('uri', omb_local_id($omb[OAUTH_ENDPOINT_REQUEST]))) {
|
|
+ $this->show_form(_('That\'s a local profile! Login to subscribe.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 145
|
|
- list($token, $secret) = $this->request_token($omb);
|
|
+ list($token, $secret) = $this->request_token($omb);
|
|
hunk ./actions/remotesubscribe.php 147
|
|
- if (!$token || !$secret) {
|
|
- $this->show_form(_('Couldn\'t get a request token.'));
|
|
- return;
|
|
- }
|
|
+ if (!$token || !$secret) {
|
|
+ $this->show_form(_('Couldn\'t get a request token.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 152
|
|
- $this->request_authorization($user, $omb, $token, $secret);
|
|
- }
|
|
+ $this->request_authorization($user, $omb, $token, $secret);
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 155
|
|
- function get_user() {
|
|
- $user = NULL;
|
|
- $nickname = $this->trimmed('nickname');
|
|
- if ($nickname) {
|
|
- $user = User::staticGet('nickname', $nickname);
|
|
- }
|
|
- return $user;
|
|
- }
|
|
+ function get_user() {
|
|
+ $user = NULL;
|
|
+ $nickname = $this->trimmed('nickname');
|
|
+ if ($nickname) {
|
|
+ $user = User::staticGet('nickname', $nickname);
|
|
+ }
|
|
+ return $user;
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 164
|
|
- function getOmb($xrds) {
|
|
+ function getOmb($xrds) {
|
|
hunk ./actions/remotesubscribe.php 166
|
|
- static $omb_endpoints = array(OMB_ENDPOINT_UPDATEPROFILE, OMB_ENDPOINT_POSTNOTICE);
|
|
- static $oauth_endpoints = array(OAUTH_ENDPOINT_REQUEST, OAUTH_ENDPOINT_AUTHORIZE,
|
|
- OAUTH_ENDPOINT_ACCESS);
|
|
- $omb = array();
|
|
+ static $omb_endpoints = array(OMB_ENDPOINT_UPDATEPROFILE, OMB_ENDPOINT_POSTNOTICE);
|
|
+ static $oauth_endpoints = array(OAUTH_ENDPOINT_REQUEST, OAUTH_ENDPOINT_AUTHORIZE,
|
|
+ OAUTH_ENDPOINT_ACCESS);
|
|
+ $omb = array();
|
|
hunk ./actions/remotesubscribe.php 171
|
|
- # XXX: the following code could probably be refactored to eliminate dupes
|
|
+ # XXX: the following code could probably be refactored to eliminate dupes
|
|
hunk ./actions/remotesubscribe.php 173
|
|
- $oauth_services = omb_get_services($xrds, OAUTH_DISCOVERY);
|
|
+ $oauth_services = omb_get_services($xrds, OAUTH_DISCOVERY);
|
|
hunk ./actions/remotesubscribe.php 175
|
|
- if (!$oauth_services) {
|
|
- return NULL;
|
|
- }
|
|
+ if (!$oauth_services) {
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 179
|
|
- $oauth_service = $oauth_services[0];
|
|
+ $oauth_service = $oauth_services[0];
|
|
hunk ./actions/remotesubscribe.php 181
|
|
- $oauth_xrd = $this->getXRD($oauth_service, $xrds);
|
|
+ $oauth_xrd = $this->getXRD($oauth_service, $xrds);
|
|
hunk ./actions/remotesubscribe.php 183
|
|
- if (!$oauth_xrd) {
|
|
- return NULL;
|
|
- }
|
|
+ if (!$oauth_xrd) {
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 187
|
|
- if (!$this->addServices($oauth_xrd, $oauth_endpoints, $omb)) {
|
|
- return NULL;
|
|
- }
|
|
+ if (!$this->addServices($oauth_xrd, $oauth_endpoints, $omb)) {
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 191
|
|
- $omb_services = omb_get_services($xrds, OMB_NAMESPACE);
|
|
+ $omb_services = omb_get_services($xrds, OMB_NAMESPACE);
|
|
hunk ./actions/remotesubscribe.php 193
|
|
- if (!$omb_services) {
|
|
- return NULL;
|
|
- }
|
|
+ if (!$omb_services) {
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 197
|
|
- $omb_service = $omb_services[0];
|
|
+ $omb_service = $omb_services[0];
|
|
hunk ./actions/remotesubscribe.php 199
|
|
- $omb_xrd = $this->getXRD($omb_service, $xrds);
|
|
+ $omb_xrd = $this->getXRD($omb_service, $xrds);
|
|
hunk ./actions/remotesubscribe.php 201
|
|
- if (!$omb_xrd) {
|
|
- return NULL;
|
|
- }
|
|
+ if (!$omb_xrd) {
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 205
|
|
- if (!$this->addServices($omb_xrd, $omb_endpoints, $omb)) {
|
|
- return NULL;
|
|
- }
|
|
+ if (!$this->addServices($omb_xrd, $omb_endpoints, $omb)) {
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 209
|
|
- # XXX: check that we got all the services we needed
|
|
+ # XXX: check that we got all the services we needed
|
|
hunk ./actions/remotesubscribe.php 211
|
|
- foreach (array_merge($omb_endpoints, $oauth_endpoints) as $type) {
|
|
- if (!array_key_exists($type, $omb) || !$omb[$type]) {
|
|
- return NULL;
|
|
- }
|
|
- }
|
|
+ foreach (array_merge($omb_endpoints, $oauth_endpoints) as $type) {
|
|
+ if (!array_key_exists($type, $omb) || !$omb[$type]) {
|
|
+ return NULL;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 217
|
|
- if (!omb_local_id($omb[OAUTH_ENDPOINT_REQUEST])) {
|
|
- return NULL;
|
|
- }
|
|
+ if (!omb_local_id($omb[OAUTH_ENDPOINT_REQUEST])) {
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 221
|
|
- return $omb;
|
|
- }
|
|
+ return $omb;
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 224
|
|
- function getXRD($main_service, $main_xrds) {
|
|
- $uri = omb_service_uri($main_service);
|
|
- if (strpos($uri, "#") !== 0) {
|
|
- # FIXME: more rigorous handling of external service definitions
|
|
- return NULL;
|
|
- }
|
|
- $id = substr($uri, 1);
|
|
- $nodes = $main_xrds->allXrdNodes;
|
|
- $parser = $main_xrds->parser;
|
|
- foreach ($nodes as $node) {
|
|
- $attrs = $parser->attributes($node);
|
|
- if (array_key_exists('xml:id', $attrs) &&
|
|
- $attrs['xml:id'] == $id) {
|
|
- # XXX: trick the constructor into thinking this is the only node
|
|
- $bogus_nodes = array($node);
|
|
- return new Auth_Yadis_XRDS($parser, $bogus_nodes);
|
|
- }
|
|
- }
|
|
- return NULL;
|
|
- }
|
|
+ function getXRD($main_service, $main_xrds) {
|
|
+ $uri = omb_service_uri($main_service);
|
|
+ if (strpos($uri, "#") !== 0) {
|
|
+ # FIXME: more rigorous handling of external service definitions
|
|
+ return NULL;
|
|
+ }
|
|
+ $id = substr($uri, 1);
|
|
+ $nodes = $main_xrds->allXrdNodes;
|
|
+ $parser = $main_xrds->parser;
|
|
+ foreach ($nodes as $node) {
|
|
+ $attrs = $parser->attributes($node);
|
|
+ if (array_key_exists('xml:id', $attrs) &&
|
|
+ $attrs['xml:id'] == $id) {
|
|
+ # XXX: trick the constructor into thinking this is the only node
|
|
+ $bogus_nodes = array($node);
|
|
+ return new Auth_Yadis_XRDS($parser, $bogus_nodes);
|
|
+ }
|
|
+ }
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 245
|
|
- function addServices($xrd, $types, &$omb) {
|
|
- foreach ($types as $type) {
|
|
- $matches = omb_get_services($xrd, $type);
|
|
- if ($matches) {
|
|
- $omb[$type] = $matches[0];
|
|
- } else {
|
|
- # no match for type
|
|
- return false;
|
|
- }
|
|
- }
|
|
- return true;
|
|
- }
|
|
+ function addServices($xrd, $types, &$omb) {
|
|
+ foreach ($types as $type) {
|
|
+ $matches = omb_get_services($xrd, $type);
|
|
+ if ($matches) {
|
|
+ $omb[$type] = $matches[0];
|
|
+ } else {
|
|
+ # no match for type
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+ return true;
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 258
|
|
- function request_token($omb) {
|
|
- $con = omb_oauth_consumer();
|
|
+ function request_token($omb) {
|
|
+ $con = omb_oauth_consumer();
|
|
hunk ./actions/remotesubscribe.php 261
|
|
- $url = omb_service_uri($omb[OAUTH_ENDPOINT_REQUEST]);
|
|
+ $url = omb_service_uri($omb[OAUTH_ENDPOINT_REQUEST]);
|
|
hunk ./actions/remotesubscribe.php 263
|
|
- # XXX: Is this the right thing to do? Strip off GET params and make them
|
|
- # POST params? Seems wrong to me.
|
|
+ # XXX: Is this the right thing to do? Strip off GET params and make them
|
|
+ # POST params? Seems wrong to me.
|
|
hunk ./actions/remotesubscribe.php 266
|
|
- $parsed = parse_url($url);
|
|
- $params = array();
|
|
- parse_str($parsed['query'], $params);
|
|
+ $parsed = parse_url($url);
|
|
+ $params = array();
|
|
+ parse_str($parsed['query'], $params);
|
|
hunk ./actions/remotesubscribe.php 270
|
|
- $req = OAuthRequest::from_consumer_and_token($con, NULL, "POST", $url, $params);
|
|
+ $req = OAuthRequest::from_consumer_and_token($con, NULL, "POST", $url, $params);
|
|
hunk ./actions/remotesubscribe.php 272
|
|
- $listener = omb_local_id($omb[OAUTH_ENDPOINT_REQUEST]);
|
|
+ $listener = omb_local_id($omb[OAUTH_ENDPOINT_REQUEST]);
|
|
hunk ./actions/remotesubscribe.php 274
|
|
- if (!$listener) {
|
|
- return NULL;
|
|
- }
|
|
+ if (!$listener) {
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 278
|
|
- $req->set_parameter('omb_listener', $listener);
|
|
- $req->set_parameter('omb_version', OMB_VERSION_01);
|
|
+ $req->set_parameter('omb_listener', $listener);
|
|
+ $req->set_parameter('omb_version', OMB_VERSION_01);
|
|
hunk ./actions/remotesubscribe.php 281
|
|
- # XXX: test to see if endpoint accepts this signature method
|
|
+ # XXX: test to see if endpoint accepts this signature method
|
|
hunk ./actions/remotesubscribe.php 283
|
|
- $req->sign_request(omb_hmac_sha1(), $con, NULL);
|
|
+ $req->sign_request(omb_hmac_sha1(), $con, NULL);
|
|
hunk ./actions/remotesubscribe.php 285
|
|
- # We re-use this tool's fetcher, since it's pretty good
|
|
+ # We re-use this tool's fetcher, since it's pretty good
|
|
hunk ./actions/remotesubscribe.php 287
|
|
- $fetcher = Auth_Yadis_Yadis::getHTTPFetcher();
|
|
+ $fetcher = Auth_Yadis_Yadis::getHTTPFetcher();
|
|
hunk ./actions/remotesubscribe.php 289
|
|
- $result = $fetcher->post($req->get_normalized_http_url(),
|
|
- $req->to_postdata(),
|
|
+ $result = $fetcher->post($req->get_normalized_http_url(),
|
|
+ $req->to_postdata(),
|
|
hunk ./actions/remotesubscribe.php 293
|
|
- if ($result->status != 200) {
|
|
- return NULL;
|
|
- }
|
|
+ if ($result->status != 200) {
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 297
|
|
- parse_str($result->body, $return);
|
|
+ parse_str($result->body, $return);
|
|
hunk ./actions/remotesubscribe.php 299
|
|
- return array($return['oauth_token'], $return['oauth_token_secret']);
|
|
- }
|
|
+ return array($return['oauth_token'], $return['oauth_token_secret']);
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 302
|
|
- function request_authorization($user, $omb, $token, $secret) {
|
|
- global $config; # for license URL
|
|
+ function request_authorization($user, $omb, $token, $secret) {
|
|
+ global $config; # for license URL
|
|
hunk ./actions/remotesubscribe.php 305
|
|
- $con = omb_oauth_consumer();
|
|
- $tok = new OAuthToken($token, $secret);
|
|
+ $con = omb_oauth_consumer();
|
|
+ $tok = new OAuthToken($token, $secret);
|
|
hunk ./actions/remotesubscribe.php 308
|
|
- $url = omb_service_uri($omb[OAUTH_ENDPOINT_AUTHORIZE]);
|
|
+ $url = omb_service_uri($omb[OAUTH_ENDPOINT_AUTHORIZE]);
|
|
hunk ./actions/remotesubscribe.php 310
|
|
- # XXX: Is this the right thing to do? Strip off GET params and make them
|
|
- # POST params? Seems wrong to me.
|
|
+ # XXX: Is this the right thing to do? Strip off GET params and make them
|
|
+ # POST params? Seems wrong to me.
|
|
hunk ./actions/remotesubscribe.php 313
|
|
- $parsed = parse_url($url);
|
|
- $params = array();
|
|
- parse_str($parsed['query'], $params);
|
|
+ $parsed = parse_url($url);
|
|
+ $params = array();
|
|
+ parse_str($parsed['query'], $params);
|
|
hunk ./actions/remotesubscribe.php 317
|
|
- $req = OAuthRequest::from_consumer_and_token($con, $tok, 'GET', $url, $params);
|
|
+ $req = OAuthRequest::from_consumer_and_token($con, $tok, 'GET', $url, $params);
|
|
hunk ./actions/remotesubscribe.php 319
|
|
- # We send over a ton of information. This lets the other
|
|
- # server store info about our user, and it lets the current
|
|
- # user decide if they really want to authorize the subscription.
|
|
+ # We send over a ton of information. This lets the other
|
|
+ # server store info about our user, and it lets the current
|
|
+ # user decide if they really want to authorize the subscription.
|
|
hunk ./actions/remotesubscribe.php 323
|
|
- $req->set_parameter('omb_version', OMB_VERSION_01);
|
|
- $req->set_parameter('omb_listener', omb_local_id($omb[OAUTH_ENDPOINT_REQUEST]));
|
|
- $req->set_parameter('omb_listenee', $user->uri);
|
|
- $req->set_parameter('omb_listenee_profile', common_profile_url($user->nickname));
|
|
- $req->set_parameter('omb_listenee_nickname', $user->nickname);
|
|
- $req->set_parameter('omb_listenee_license', $config['license']['url']);
|
|
+ $req->set_parameter('omb_version', OMB_VERSION_01);
|
|
+ $req->set_parameter('omb_listener', omb_local_id($omb[OAUTH_ENDPOINT_REQUEST]));
|
|
+ $req->set_parameter('omb_listenee', $user->uri);
|
|
+ $req->set_parameter('omb_listenee_profile', common_profile_url($user->nickname));
|
|
+ $req->set_parameter('omb_listenee_nickname', $user->nickname);
|
|
+ $req->set_parameter('omb_listenee_license', $config['license']['url']);
|
|
hunk ./actions/remotesubscribe.php 330
|
|
- $profile = $user->getProfile();
|
|
- if (!$profile) {
|
|
- common_log_db_error($user, 'SELECT', __FILE__);
|
|
- $this->server_error(_('User without matching profile'));
|
|
- return;
|
|
- }
|
|
+ $profile = $user->getProfile();
|
|
+ if (!$profile) {
|
|
+ common_log_db_error($user, 'SELECT', __FILE__);
|
|
+ $this->server_error(_('User without matching profile'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 337
|
|
- if ($profile->fullname) {
|
|
- $req->set_parameter('omb_listenee_fullname', $profile->fullname);
|
|
- }
|
|
- if ($profile->homepage) {
|
|
- $req->set_parameter('omb_listenee_homepage', $profile->homepage);
|
|
- }
|
|
- if ($profile->bio) {
|
|
- $req->set_parameter('omb_listenee_bio', $profile->bio);
|
|
- }
|
|
- if ($profile->location) {
|
|
- $req->set_parameter('omb_listenee_location', $profile->location);
|
|
- }
|
|
- $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE);
|
|
- if ($avatar) {
|
|
- $req->set_parameter('omb_listenee_avatar', $avatar->url);
|
|
- }
|
|
+ if ($profile->fullname) {
|
|
+ $req->set_parameter('omb_listenee_fullname', $profile->fullname);
|
|
+ }
|
|
+ if ($profile->homepage) {
|
|
+ $req->set_parameter('omb_listenee_homepage', $profile->homepage);
|
|
+ }
|
|
+ if ($profile->bio) {
|
|
+ $req->set_parameter('omb_listenee_bio', $profile->bio);
|
|
+ }
|
|
+ if ($profile->location) {
|
|
+ $req->set_parameter('omb_listenee_location', $profile->location);
|
|
+ }
|
|
+ $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE);
|
|
+ if ($avatar) {
|
|
+ $req->set_parameter('omb_listenee_avatar', $avatar->url);
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 354
|
|
- # XXX: add a nonce to prevent replay attacks
|
|
+ # XXX: add a nonce to prevent replay attacks
|
|
hunk ./actions/remotesubscribe.php 356
|
|
- $req->set_parameter('oauth_callback', common_local_url('finishremotesubscribe'));
|
|
+ $req->set_parameter('oauth_callback', common_local_url('finishremotesubscribe'));
|
|
hunk ./actions/remotesubscribe.php 358
|
|
- # XXX: test to see if endpoint accepts this signature method
|
|
+ # XXX: test to see if endpoint accepts this signature method
|
|
hunk ./actions/remotesubscribe.php 360
|
|
- $req->sign_request(omb_hmac_sha1(), $con, $tok);
|
|
+ $req->sign_request(omb_hmac_sha1(), $con, $tok);
|
|
hunk ./actions/remotesubscribe.php 362
|
|
- # store all our info here
|
|
+ # store all our info here
|
|
hunk ./actions/remotesubscribe.php 364
|
|
- $omb['listenee'] = $user->nickname;
|
|
- $omb['listener'] = omb_local_id($omb[OAUTH_ENDPOINT_REQUEST]);
|
|
- $omb['token'] = $token;
|
|
- $omb['secret'] = $secret;
|
|
- # call doesn't work after bounce back so we cache; maybe serialization issue...?
|
|
- $omb['access_token_url'] = omb_service_uri($omb[OAUTH_ENDPOINT_ACCESS]);
|
|
- $omb['post_notice_url'] = omb_service_uri($omb[OMB_ENDPOINT_POSTNOTICE]);
|
|
- $omb['update_profile_url'] = omb_service_uri($omb[OMB_ENDPOINT_UPDATEPROFILE]);
|
|
+ $omb['listenee'] = $user->nickname;
|
|
+ $omb['listener'] = omb_local_id($omb[OAUTH_ENDPOINT_REQUEST]);
|
|
+ $omb['token'] = $token;
|
|
+ $omb['secret'] = $secret;
|
|
+ # call doesn't work after bounce back so we cache; maybe serialization issue...?
|
|
+ $omb['access_token_url'] = omb_service_uri($omb[OAUTH_ENDPOINT_ACCESS]);
|
|
+ $omb['post_notice_url'] = omb_service_uri($omb[OMB_ENDPOINT_POSTNOTICE]);
|
|
+ $omb['update_profile_url'] = omb_service_uri($omb[OMB_ENDPOINT_UPDATEPROFILE]);
|
|
hunk ./actions/remotesubscribe.php 373
|
|
- common_ensure_session();
|
|
+ common_ensure_session();
|
|
hunk ./actions/remotesubscribe.php 375
|
|
- $_SESSION['oauth_authorization_request'] = $omb;
|
|
+ $_SESSION['oauth_authorization_request'] = $omb;
|
|
hunk ./actions/remotesubscribe.php 377
|
|
- # Redirect to authorization service
|
|
+ # Redirect to authorization service
|
|
hunk ./actions/remotesubscribe.php 379
|
|
- common_redirect($req->to_url());
|
|
- return;
|
|
- }
|
|
+ common_redirect($req->to_url());
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/remotesubscribe.php 383
|
|
- function make_nonce() {
|
|
- return common_good_rand(16);
|
|
- }
|
|
+ function make_nonce() {
|
|
+ return common_good_rand(16);
|
|
+ }
|
|
hunk ./actions/replies.php 26
|
|
- function handle($args) {
|
|
+ function handle($args) {
|
|
hunk ./actions/replies.php 28
|
|
- parent::handle($args);
|
|
+ parent::handle($args);
|
|
hunk ./actions/replies.php 30
|
|
- $nickname = common_canonical_nickname($this->arg('nickname'));
|
|
- $user = User::staticGet('nickname', $nickname);
|
|
+ $nickname = common_canonical_nickname($this->arg('nickname'));
|
|
+ $user = User::staticGet('nickname', $nickname);
|
|
hunk ./actions/replies.php 33
|
|
- if (!$user) {
|
|
- $this->no_such_user();
|
|
- return;
|
|
- }
|
|
+ if (!$user) {
|
|
+ $this->no_such_user();
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/replies.php 38
|
|
- $profile = $user->getProfile();
|
|
+ $profile = $user->getProfile();
|
|
hunk ./actions/replies.php 40
|
|
- if (!$profile) {
|
|
- common_server_error(_('User has no profile.'));
|
|
- return;
|
|
- }
|
|
+ if (!$profile) {
|
|
+ common_server_error(_('User has no profile.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/replies.php 45
|
|
- # Looks like we're good; show the header
|
|
+ # Looks like we're good; show the header
|
|
hunk ./actions/replies.php 47
|
|
- common_show_header(sprintf(_("Replies to %s"), $profile->nickname),
|
|
- array($this, 'show_header'), $user,
|
|
- array($this, 'show_top'));
|
|
+ common_show_header(sprintf(_("Replies to %s"), $profile->nickname),
|
|
+ array($this, 'show_header'), $user,
|
|
+ array($this, 'show_top'));
|
|
hunk ./actions/replies.php 51
|
|
- $this->show_replies($user);
|
|
+ $this->show_replies($user);
|
|
hunk ./actions/replies.php 53
|
|
- common_show_footer();
|
|
- }
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/replies.php 56
|
|
- function no_such_user() {
|
|
- common_user_error(_('No such user.'));
|
|
- }
|
|
+ function no_such_user() {
|
|
+ common_user_error(_('No such user.'));
|
|
+ }
|
|
hunk ./actions/replies.php 60
|
|
- function show_header($user) {
|
|
- common_element('link', array('rel' => 'alternate',
|
|
- 'href' => common_local_url('repliesrss', array('nickname' =>
|
|
- $user->nickname)),
|
|
- 'type' => 'application/rss+xml',
|
|
- 'title' => sprintf(_('Feed for replies to %s'), $user->nickname)));
|
|
- }
|
|
+ function show_header($user) {
|
|
+ common_element('link', array('rel' => 'alternate',
|
|
+ 'href' => common_local_url('repliesrss', array('nickname' =>
|
|
+ $user->nickname)),
|
|
+ 'type' => 'application/rss+xml',
|
|
+ 'title' => sprintf(_('Feed for replies to %s'), $user->nickname)));
|
|
+ }
|
|
hunk ./actions/replies.php 68
|
|
- function show_top($user) {
|
|
- $cur = common_current_user();
|
|
+ function show_top($user) {
|
|
+ $cur = common_current_user();
|
|
hunk ./actions/replies.php 71
|
|
- if ($cur && $cur->id == $user->id) {
|
|
- common_notice_form('replies');
|
|
- }
|
|
+ if ($cur && $cur->id == $user->id) {
|
|
+ common_notice_form('replies');
|
|
+ }
|
|
hunk ./actions/replies.php 75
|
|
- $this->views_menu();
|
|
+ $this->views_menu();
|
|
hunk ./actions/replies.php 77
|
|
- $this->show_feeds_list(array(0=>array('href'=>common_local_url('repliesrss', array('nickname' => $user->nickname)),
|
|
- 'type' => 'rss',
|
|
- 'version' => 'RSS 1.0',
|
|
- 'item' => 'repliesrss')));
|
|
- }
|
|
+ $this->show_feeds_list(array(0=>array('href'=>common_local_url('repliesrss', array('nickname' => $user->nickname)),
|
|
+ 'type' => 'rss',
|
|
+ 'version' => 'RSS 1.0',
|
|
+ 'item' => 'repliesrss')));
|
|
+ }
|
|
hunk ./actions/replies.php 83
|
|
- function show_replies($user) {
|
|
+ function show_replies($user) {
|
|
hunk ./actions/replies.php 85
|
|
- $page = ($this->arg('page')) ? ($this->arg('page')+0) : 1;
|
|
+ $page = ($this->arg('page')) ? ($this->arg('page')+0) : 1;
|
|
hunk ./actions/replies.php 87
|
|
- $notice = $user->getReplies(($page-1) * NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1);
|
|
+ $notice = $user->getReplies(($page-1) * NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1);
|
|
hunk ./actions/replies.php 89
|
|
- $cnt = $this->show_notice_list($notice);
|
|
+ $cnt = $this->show_notice_list($notice);
|
|
hunk ./actions/replies.php 91
|
|
- common_pagination($page > 1, $cnt > NOTICES_PER_PAGE,
|
|
- $page, 'replies', array('nickname' => $user->nickname));
|
|
- }
|
|
+ common_pagination($page > 1, $cnt > NOTICES_PER_PAGE,
|
|
+ $page, 'replies', array('nickname' => $user->nickname));
|
|
+ }
|
|
hunk ./actions/repliesrss.php 28
|
|
- var $user = NULL;
|
|
+ var $user = NULL;
|
|
hunk ./actions/repliesrss.php 30
|
|
- function init() {
|
|
- $nickname = $this->trimmed('nickname');
|
|
- $this->user = User::staticGet('nickname', $nickname);
|
|
+ function init() {
|
|
+ $nickname = $this->trimmed('nickname');
|
|
+ $this->user = User::staticGet('nickname', $nickname);
|
|
hunk ./actions/repliesrss.php 34
|
|
- if (!$this->user) {
|
|
- common_user_error(_('No such user.'));
|
|
- return false;
|
|
- } else {
|
|
- return true;
|
|
- }
|
|
- }
|
|
+ if (!$this->user) {
|
|
+ common_user_error(_('No such user.'));
|
|
+ return false;
|
|
+ } else {
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/repliesrss.php 42
|
|
- function get_notices($limit=0) {
|
|
+ function get_notices($limit=0) {
|
|
hunk ./actions/repliesrss.php 44
|
|
- $user = $this->user;
|
|
+ $user = $this->user;
|
|
hunk ./actions/repliesrss.php 46
|
|
- $notice = $user->getReplies(0, ($limit == 0) ? 48 : $limit);
|
|
+ $notice = $user->getReplies(0, ($limit == 0) ? 48 : $limit);
|
|
hunk ./actions/repliesrss.php 48
|
|
- $notices = array();
|
|
-
|
|
- while ($notice->fetch()) {
|
|
- $notices[] = clone($notice);
|
|
- }
|
|
+ $notices = array();
|
|
+
|
|
+ while ($notice->fetch()) {
|
|
+ $notices[] = clone($notice);
|
|
+ }
|
|
hunk ./actions/repliesrss.php 54
|
|
- return $notices;
|
|
- }
|
|
+ return $notices;
|
|
+ }
|
|
hunk ./actions/repliesrss.php 57
|
|
- function get_channel() {
|
|
- $user = $this->user;
|
|
- $c = array('url' => common_local_url('repliesrss',
|
|
- array('nickname' =>
|
|
- $user->nickname)),
|
|
- 'title' => sprintf(_("Replies to %s"), $user->nickname),
|
|
- 'link' => common_local_url('replies',
|
|
- array('nickname' =>
|
|
- $user->nickname)),
|
|
- 'description' => sprintf(_('Feed for replies to %s'), $user->nickname));
|
|
- return $c;
|
|
- }
|
|
+ function get_channel() {
|
|
+ $user = $this->user;
|
|
+ $c = array('url' => common_local_url('repliesrss',
|
|
+ array('nickname' =>
|
|
+ $user->nickname)),
|
|
+ 'title' => sprintf(_("Replies to %s"), $user->nickname),
|
|
+ 'link' => common_local_url('replies',
|
|
+ array('nickname' =>
|
|
+ $user->nickname)),
|
|
+ 'description' => sprintf(_('Feed for replies to %s'), $user->nickname));
|
|
+ return $c;
|
|
+ }
|
|
hunk ./actions/repliesrss.php 70
|
|
- function get_image() {
|
|
- $user = $this->user;
|
|
- $profile = $user->getProfile();
|
|
- if (!$profile) {
|
|
- return NULL;
|
|
- }
|
|
- $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE);
|
|
- return ($avatar) ? $avatar->url : NULL;
|
|
- }
|
|
+ function get_image() {
|
|
+ $user = $this->user;
|
|
+ $profile = $user->getProfile();
|
|
+ if (!$profile) {
|
|
+ return NULL;
|
|
+ }
|
|
+ $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE);
|
|
+ return ($avatar) ? $avatar->url : NULL;
|
|
+ }
|
|
hunk ./actions/requesttoken.php 25
|
|
-
|
|
- function is_readonly() {
|
|
- return false;
|
|
- }
|
|
-
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
- try {
|
|
- common_remove_magic_from_request();
|
|
- $req = OAuthRequest::from_request();
|
|
- $server = omb_oauth_server();
|
|
- $token = $server->fetch_request_token($req);
|
|
- print $token;
|
|
- } catch (OAuthException $e) {
|
|
- common_server_error($e->getMessage());
|
|
- }
|
|
- }
|
|
+
|
|
+ function is_readonly() {
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
+ try {
|
|
+ common_remove_magic_from_request();
|
|
+ $req = OAuthRequest::from_request();
|
|
+ $server = omb_oauth_server();
|
|
+ $token = $server->fetch_request_token($req);
|
|
+ print $token;
|
|
+ } catch (OAuthException $e) {
|
|
+ common_server_error($e->getMessage());
|
|
+ }
|
|
+ }
|
|
hunk ./actions/showfavorites.php 26
|
|
- function handle($args) {
|
|
+ function handle($args) {
|
|
hunk ./actions/showfavorites.php 28
|
|
- parent::handle($args);
|
|
+ parent::handle($args);
|
|
hunk ./actions/showfavorites.php 30
|
|
- $nickname = common_canonical_nickname($this->arg('nickname'));
|
|
- $user = User::staticGet('nickname', $nickname);
|
|
+ $nickname = common_canonical_nickname($this->arg('nickname'));
|
|
+ $user = User::staticGet('nickname', $nickname);
|
|
hunk ./actions/showfavorites.php 33
|
|
- if (!$user) {
|
|
- $this->client_error(_('No such user.'));
|
|
- return;
|
|
- }
|
|
+ if (!$user) {
|
|
+ $this->client_error(_('No such user.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/showfavorites.php 38
|
|
- $profile = $user->getProfile();
|
|
+ $profile = $user->getProfile();
|
|
hunk ./actions/showfavorites.php 40
|
|
- if (!$profile) {
|
|
- common_server_error(_('User has no profile.'));
|
|
- return;
|
|
- }
|
|
+ if (!$profile) {
|
|
+ common_server_error(_('User has no profile.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/showfavorites.php 45
|
|
- # Looks like we're good; show the header
|
|
+ # Looks like we're good; show the header
|
|
hunk ./actions/showfavorites.php 47
|
|
- common_show_header(sprintf(_("%s favorite notices"), $profile->nickname),
|
|
- array($this, 'show_header'), $user,
|
|
- array($this, 'show_top'));
|
|
+ common_show_header(sprintf(_("%s favorite notices"), $profile->nickname),
|
|
+ array($this, 'show_header'), $user,
|
|
+ array($this, 'show_top'));
|
|
hunk ./actions/showfavorites.php 51
|
|
- $this->show_notices($user);
|
|
+ $this->show_notices($user);
|
|
hunk ./actions/showfavorites.php 53
|
|
- common_show_footer();
|
|
- }
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/showfavorites.php 56
|
|
- function show_header($user) {
|
|
- common_element('link', array('rel' => 'alternate',
|
|
- 'href' => common_local_url('favoritesrss', array('nickname' =>
|
|
- $user->nickname)),
|
|
- 'type' => 'application/rss+xml',
|
|
- 'title' => sprintf(_('Feed for favorites of %s'), $user->nickname)));
|
|
- }
|
|
+ function show_header($user) {
|
|
+ common_element('link', array('rel' => 'alternate',
|
|
+ 'href' => common_local_url('favoritesrss', array('nickname' =>
|
|
+ $user->nickname)),
|
|
+ 'type' => 'application/rss+xml',
|
|
+ 'title' => sprintf(_('Feed for favorites of %s'), $user->nickname)));
|
|
+ }
|
|
hunk ./actions/showfavorites.php 64
|
|
- function show_top($user) {
|
|
- $cur = common_current_user();
|
|
+ function show_top($user) {
|
|
+ $cur = common_current_user();
|
|
hunk ./actions/showfavorites.php 67
|
|
- if ($cur && $cur->id == $user->id) {
|
|
- common_notice_form('all');
|
|
- }
|
|
+ if ($cur && $cur->id == $user->id) {
|
|
+ common_notice_form('all');
|
|
+ }
|
|
hunk ./actions/showfavorites.php 71
|
|
- $this->show_feeds_list(array(0=>array('href'=>common_local_url('favoritesrss', array('nickname' => $user->nickname)),
|
|
- 'type' => 'rss',
|
|
- 'version' => 'RSS 1.0',
|
|
- 'item' => 'Favorites')));
|
|
- $this->views_menu();
|
|
- }
|
|
+ $this->show_feeds_list(array(0=>array('href'=>common_local_url('favoritesrss', array('nickname' => $user->nickname)),
|
|
+ 'type' => 'rss',
|
|
+ 'version' => 'RSS 1.0',
|
|
+ 'item' => 'Favorites')));
|
|
+ $this->views_menu();
|
|
+ }
|
|
hunk ./actions/showfavorites.php 78
|
|
- function show_notices($user) {
|
|
+ function show_notices($user) {
|
|
hunk ./actions/showfavorites.php 80
|
|
- $page = $this->trimmed('page');
|
|
- if (!$page) {
|
|
- $page = 1;
|
|
- }
|
|
+ $page = $this->trimmed('page');
|
|
+ if (!$page) {
|
|
+ $page = 1;
|
|
+ }
|
|
hunk ./actions/showfavorites.php 85
|
|
- $notice = $user->favoriteNotices(($page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1);
|
|
+ $notice = $user->favoriteNotices(($page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1);
|
|
hunk ./actions/showfavorites.php 87
|
|
- if (!$notice) {
|
|
- $this->server_error(_('Could not retrieve favorite notices.'));
|
|
- return;
|
|
- }
|
|
+ if (!$notice) {
|
|
+ $this->server_error(_('Could not retrieve favorite notices.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/showfavorites.php 94
|
|
- common_pagination($page > 1, $cnt > NOTICES_PER_PAGE,
|
|
- $page, 'showfavorites', array('nickname' => $user->nickname));
|
|
- }
|
|
+ common_pagination($page > 1, $cnt > NOTICES_PER_PAGE,
|
|
+ $page, 'showfavorites', array('nickname' => $user->nickname));
|
|
+ }
|
|
hunk ./actions/showmessage.php 26
|
|
- function handle($args) {
|
|
+ function handle($args) {
|
|
hunk ./actions/showmessage.php 28
|
|
- Action::handle($args);
|
|
+ Action::handle($args);
|
|
hunk ./actions/showmessage.php 30
|
|
- $message = $this->get_message();
|
|
+ $message = $this->get_message();
|
|
hunk ./actions/showmessage.php 32
|
|
- if (!$message) {
|
|
- $this->client_error(_('No such message.'), 404);
|
|
- return;
|
|
- }
|
|
-
|
|
- $cur = common_current_user();
|
|
-
|
|
- if ($cur && ($cur->id == $message->from_profile || $cur->id == $message->to_profile)) {
|
|
- $this->show_page($cur, 1);
|
|
- } else {
|
|
- $this->client_error(_('Only the sender and recipient may read this message.'), 403);
|
|
- return;
|
|
- }
|
|
- }
|
|
-
|
|
- function get_message() {
|
|
- $id = $this->trimmed('message');
|
|
- $message = Message::staticGet('id', $id);
|
|
- return $message;
|
|
- }
|
|
-
|
|
- function get_title($user, $page) {
|
|
- $message = $this->get_message();
|
|
- if (!$message) {
|
|
- return NULL;
|
|
- }
|
|
-
|
|
- if ($user->id == $message->from_profile) {
|
|
- $to = $message->getTo();
|
|
- $title = sprintf(_("Message to %1\$s on %2\$s"),
|
|
- $to->nickname,
|
|
- common_exact_date($message->created));
|
|
- } else if ($user->id == $message->to_profile) {
|
|
- $from = $message->getFrom();
|
|
- $title = sprintf(_("Message from %1\$s on %2\$s"),
|
|
- $from->nickname,
|
|
- common_exact_date($message->created));
|
|
- }
|
|
- return $title;
|
|
- }
|
|
+ if (!$message) {
|
|
+ $this->client_error(_('No such message.'), 404);
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ $cur = common_current_user();
|
|
+
|
|
+ if ($cur && ($cur->id == $message->from_profile || $cur->id == $message->to_profile)) {
|
|
+ $this->show_page($cur, 1);
|
|
+ } else {
|
|
+ $this->client_error(_('Only the sender and recipient may read this message.'), 403);
|
|
+ return;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ function get_message() {
|
|
+ $id = $this->trimmed('message');
|
|
+ $message = Message::staticGet('id', $id);
|
|
+ return $message;
|
|
+ }
|
|
+
|
|
+ function get_title($user, $page) {
|
|
+ $message = $this->get_message();
|
|
+ if (!$message) {
|
|
+ return NULL;
|
|
+ }
|
|
+
|
|
+ if ($user->id == $message->from_profile) {
|
|
+ $to = $message->getTo();
|
|
+ $title = sprintf(_("Message to %1\$s on %2\$s"),
|
|
+ $to->nickname,
|
|
+ common_exact_date($message->created));
|
|
+ } else if ($user->id == $message->to_profile) {
|
|
+ $from = $message->getFrom();
|
|
+ $title = sprintf(_("Message from %1\$s on %2\$s"),
|
|
+ $from->nickname,
|
|
+ common_exact_date($message->created));
|
|
+ }
|
|
+ return $title;
|
|
+ }
|
|
hunk ./actions/showmessage.php 73
|
|
- function get_messages($user, $page) {
|
|
- $message = new Message();
|
|
- $message->id = $this->trimmed('message');
|
|
- $message->find();
|
|
- return $message;
|
|
- }
|
|
-
|
|
- function get_message_profile($message) {
|
|
- $user = common_current_user();
|
|
- if ($user->id == $message->from_profile) {
|
|
- return $message->getTo();
|
|
- } else if ($user->id == $message->to_profile) {
|
|
- return $message->getFrom();
|
|
- } else {
|
|
- # This shouldn't happen
|
|
- return NULL;
|
|
- }
|
|
- }
|
|
-
|
|
- function get_instructions() {
|
|
- return '';
|
|
- }
|
|
-
|
|
- function views_menu() {
|
|
- return;
|
|
- }
|
|
+ function get_messages($user, $page) {
|
|
+ $message = new Message();
|
|
+ $message->id = $this->trimmed('message');
|
|
+ $message->find();
|
|
+ return $message;
|
|
+ }
|
|
+
|
|
+ function get_message_profile($message) {
|
|
+ $user = common_current_user();
|
|
+ if ($user->id == $message->from_profile) {
|
|
+ return $message->getTo();
|
|
+ } else if ($user->id == $message->to_profile) {
|
|
+ return $message->getFrom();
|
|
+ } else {
|
|
+ # This shouldn't happen
|
|
+ return NULL;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ function get_instructions() {
|
|
+ return '';
|
|
+ }
|
|
+
|
|
+ function views_menu() {
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/showmessage.php 100
|
|
-
|
|
+
|
|
hunk ./actions/shownotice.php 26
|
|
- var $notice = NULL;
|
|
- var $profile = NULL;
|
|
- var $avatar = NULL;
|
|
+ var $notice = NULL;
|
|
+ var $profile = NULL;
|
|
+ var $avatar = NULL;
|
|
hunk ./actions/shownotice.php 30
|
|
- function prepare($args) {
|
|
+ function prepare($args) {
|
|
hunk ./actions/shownotice.php 32
|
|
- parent::prepare($args);
|
|
+ parent::prepare($args);
|
|
hunk ./actions/shownotice.php 34
|
|
- $id = $this->arg('notice');
|
|
- $this->notice = Notice::staticGet($id);
|
|
+ $id = $this->arg('notice');
|
|
+ $this->notice = Notice::staticGet($id);
|
|
hunk ./actions/shownotice.php 37
|
|
- if (!$this->notice) {
|
|
- $this->client_error(_('No such notice.'), 404);
|
|
- return false;
|
|
- }
|
|
+ if (!$this->notice) {
|
|
+ $this->client_error(_('No such notice.'), 404);
|
|
+ return false;
|
|
+ }
|
|
hunk ./actions/shownotice.php 42
|
|
- $this->profile = $this->notice->getProfile();
|
|
+ $this->profile = $this->notice->getProfile();
|
|
hunk ./actions/shownotice.php 44
|
|
- if (!$this->profile) {
|
|
- $this->server_error(_('Notice has no profile'), 500);
|
|
- return false;
|
|
- }
|
|
+ if (!$this->profile) {
|
|
+ $this->server_error(_('Notice has no profile'), 500);
|
|
+ return false;
|
|
+ }
|
|
hunk ./actions/shownotice.php 49
|
|
- $this->avatar = $this->profile->getAvatar(AVATAR_STREAM_SIZE);
|
|
+ $this->avatar = $this->profile->getAvatar(AVATAR_STREAM_SIZE);
|
|
hunk ./actions/shownotice.php 51
|
|
- return true;
|
|
- }
|
|
+ return true;
|
|
+ }
|
|
hunk ./actions/shownotice.php 54
|
|
- function last_modified() {
|
|
- return max(strtotime($this->notice->created),
|
|
- strtotime($this->profile->modified),
|
|
- ($this->avatar) ? strtotime($this->avatar->modified) : 0);
|
|
- }
|
|
+ function last_modified() {
|
|
+ return max(strtotime($this->notice->created),
|
|
+ strtotime($this->profile->modified),
|
|
+ ($this->avatar) ? strtotime($this->avatar->modified) : 0);
|
|
+ }
|
|
hunk ./actions/shownotice.php 60
|
|
- function etag() {
|
|
- return 'W/"' . implode(':', array($this->arg('action'),
|
|
- common_language(),
|
|
- $this->notice->id,
|
|
- strtotime($this->notice->created),
|
|
- strtotime($this->profile->modified),
|
|
- ($this->avatar) ? strtotime($this->avatar->modified) : 0)) . '"';
|
|
- }
|
|
+ function etag() {
|
|
+ return 'W/"' . implode(':', array($this->arg('action'),
|
|
+ common_language(),
|
|
+ $this->notice->id,
|
|
+ strtotime($this->notice->created),
|
|
+ strtotime($this->profile->modified),
|
|
+ ($this->avatar) ? strtotime($this->avatar->modified) : 0)) . '"';
|
|
+ }
|
|
hunk ./actions/shownotice.php 69
|
|
- function handle($args) {
|
|
+ function handle($args) {
|
|
hunk ./actions/shownotice.php 71
|
|
- parent::handle($args);
|
|
+ parent::handle($args);
|
|
hunk ./actions/shownotice.php 73
|
|
- common_show_header(sprintf(_('%1$s\'s status on %2$s'),
|
|
- $this->profile->nickname,
|
|
- common_exact_date($this->notice->created)),
|
|
- array($this, 'show_header'), NULL,
|
|
- array($this, 'show_top'));
|
|
+ common_show_header(sprintf(_('%1$s\'s status on %2$s'),
|
|
+ $this->profile->nickname,
|
|
+ common_exact_date($this->notice->created)),
|
|
+ array($this, 'show_header'), NULL,
|
|
+ array($this, 'show_top'));
|
|
hunk ./actions/shownotice.php 79
|
|
- common_element_start('ul', array('id' => 'notices'));
|
|
+ common_element_start('ul', array('id' => 'notices'));
|
|
hunk ./actions/shownotice.php 82
|
|
- common_element_end('ul');
|
|
+ common_element_end('ul');
|
|
hunk ./actions/shownotice.php 84
|
|
- common_show_footer();
|
|
- }
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/shownotice.php 87
|
|
- function show_header() {
|
|
+ function show_header() {
|
|
hunk ./actions/shownotice.php 89
|
|
- $user = User::staticGet($this->profile->id);
|
|
+ $user = User::staticGet($this->profile->id);
|
|
hunk ./actions/shownotice.php 91
|
|
- if (!$user) {
|
|
- return;
|
|
- }
|
|
+ if (!$user) {
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/shownotice.php 95
|
|
- if ($user->emailmicroid && $user->email && $this->notice->uri) {
|
|
- common_element('meta', array('name' => 'microid',
|
|
- 'content' => "mailto+http:sha1:" . sha1(sha1('mailto:' . $user->email) . sha1($this->notice->uri))));
|
|
- }
|
|
+ if ($user->emailmicroid && $user->email && $this->notice->uri) {
|
|
+ common_element('meta', array('name' => 'microid',
|
|
+ 'content' => "mailto+http:sha1:" . sha1(sha1('mailto:' . $user->email) . sha1($this->notice->uri))));
|
|
+ }
|
|
hunk ./actions/shownotice.php 100
|
|
- if ($user->jabbermicroid && $user->jabber && $this->notice->uri) {
|
|
- common_element('meta', array('name' => 'microid',
|
|
- 'content' => "xmpp+http:sha1:" . sha1(sha1('xmpp:' . $user->jabber) . sha1($this->notice->uri))));
|
|
- }
|
|
- }
|
|
+ if ($user->jabbermicroid && $user->jabber && $this->notice->uri) {
|
|
+ common_element('meta', array('name' => 'microid',
|
|
+ 'content' => "xmpp+http:sha1:" . sha1(sha1('xmpp:' . $user->jabber) . sha1($this->notice->uri))));
|
|
+ }
|
|
+ }
|
|
hunk ./actions/shownotice.php 106
|
|
- function show_top() {
|
|
- $cur = common_current_user();
|
|
- if ($cur && $cur->id == $this->profile->id) {
|
|
- common_notice_form();
|
|
- }
|
|
- }
|
|
+ function show_top() {
|
|
+ $cur = common_current_user();
|
|
+ if ($cur && $cur->id == $this->profile->id) {
|
|
+ common_notice_form();
|
|
+ }
|
|
+ }
|
|
hunk ./actions/shownotice.php 113
|
|
- function no_such_notice() {
|
|
- common_user_error(_('No such notice.'));
|
|
- }
|
|
+ function no_such_notice() {
|
|
+ common_user_error(_('No such notice.'));
|
|
+ }
|
|
hunk ./actions/showstream.php 29
|
|
- function handle($args) {
|
|
+ function handle($args) {
|
|
hunk ./actions/showstream.php 31
|
|
- parent::handle($args);
|
|
+ parent::handle($args);
|
|
hunk ./actions/showstream.php 34
|
|
- $nickname = common_canonical_nickname($nickname_arg);
|
|
+ $nickname = common_canonical_nickname($nickname_arg);
|
|
hunk ./actions/showstream.php 47
|
|
- $user = User::staticGet('nickname', $nickname);
|
|
+ $user = User::staticGet('nickname', $nickname);
|
|
hunk ./actions/showstream.php 49
|
|
- if (!$user) {
|
|
- $this->no_such_user();
|
|
- return;
|
|
- }
|
|
+ if (!$user) {
|
|
+ $this->no_such_user();
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/showstream.php 54
|
|
- $profile = $user->getProfile();
|
|
+ $profile = $user->getProfile();
|
|
hunk ./actions/showstream.php 56
|
|
- if (!$profile) {
|
|
- common_server_error(_('User has no profile.'));
|
|
- return;
|
|
- }
|
|
+ if (!$profile) {
|
|
+ common_server_error(_('User has no profile.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/showstream.php 61
|
|
- # Looks like we're good; start output
|
|
+ # Looks like we're good; start output
|
|
hunk ./actions/showstream.php 63
|
|
- # For YADIS discovery, we also have a <meta> tag
|
|
+ # For YADIS discovery, we also have a <meta> tag
|
|
hunk ./actions/showstream.php 65
|
|
- header('X-XRDS-Location: '. common_local_url('xrds', array('nickname' =>
|
|
- $user->nickname)));
|
|
+ header('X-XRDS-Location: '. common_local_url('xrds', array('nickname' =>
|
|
+ $user->nickname)));
|
|
hunk ./actions/showstream.php 68
|
|
- common_show_header($profile->nickname,
|
|
- array($this, 'show_header'), $user,
|
|
- array($this, 'show_top'));
|
|
+ common_show_header($profile->nickname,
|
|
+ array($this, 'show_header'), $user,
|
|
+ array($this, 'show_top'));
|
|
hunk ./actions/showstream.php 72
|
|
- $this->show_profile($profile);
|
|
+ $this->show_profile($profile);
|
|
hunk ./actions/showstream.php 74
|
|
- $this->show_notices($user);
|
|
+ $this->show_notices($user);
|
|
hunk ./actions/showstream.php 76
|
|
- common_show_footer();
|
|
- }
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/showstream.php 79
|
|
- function show_top($user) {
|
|
- $cur = common_current_user();
|
|
+ function show_top($user) {
|
|
+ $cur = common_current_user();
|
|
hunk ./actions/showstream.php 82
|
|
- if ($cur && $cur->id == $user->id) {
|
|
- common_notice_form('showstream');
|
|
- }
|
|
+ if ($cur && $cur->id == $user->id) {
|
|
+ common_notice_form('showstream');
|
|
+ }
|
|
hunk ./actions/showstream.php 86
|
|
- $this->views_menu();
|
|
+ $this->views_menu();
|
|
hunk ./actions/showstream.php 88
|
|
- $this->show_feeds_list(array(0=>array('href'=>common_local_url('userrss', array('nickname' => $user->nickname)),
|
|
- 'type' => 'rss',
|
|
- 'version' => 'RSS 1.0',
|
|
- 'item' => 'notices'),
|
|
- 1=>array('href'=>common_local_url('usertimeline', array('nickname' => $user->nickname)),
|
|
- 'type' => 'atom',
|
|
- 'version' => 'Atom 1.0',
|
|
- 'item' => 'usertimeline'),
|
|
+ $this->show_feeds_list(array(0=>array('href'=>common_local_url('userrss', array('nickname' => $user->nickname)),
|
|
+ 'type' => 'rss',
|
|
+ 'version' => 'RSS 1.0',
|
|
+ 'item' => 'notices'),
|
|
+ 1=>array('href'=>common_local_url('usertimeline', array('nickname' => $user->nickname)),
|
|
+ 'type' => 'atom',
|
|
+ 'version' => 'Atom 1.0',
|
|
+ 'item' => 'usertimeline'),
|
|
hunk ./actions/showstream.php 97
|
|
- 2=>array('href'=>common_local_url('foaf',array('nickname' => $user->nickname)),
|
|
- 'type' => 'rdf',
|
|
- 'version' => 'FOAF',
|
|
- 'item' => 'foaf')));
|
|
- }
|
|
+ 2=>array('href'=>common_local_url('foaf',array('nickname' => $user->nickname)),
|
|
+ 'type' => 'rdf',
|
|
+ 'version' => 'FOAF',
|
|
+ 'item' => 'foaf')));
|
|
+ }
|
|
hunk ./actions/showstream.php 103
|
|
- function show_header($user) {
|
|
- # Feeds
|
|
- common_element('link', array('rel' => 'alternate',
|
|
- 'href' => common_local_url('api',
|
|
- array('apiaction' => 'statuses',
|
|
- 'method' => 'user_timeline.rss',
|
|
- 'argument' => $user->nickname)),
|
|
- 'type' => 'application/rss+xml',
|
|
- 'title' => sprintf(_('Notice feed for %s'), $user->nickname)));
|
|
- common_element('link', array('rel' => 'alternate feed',
|
|
- 'href' => common_local_url('api',
|
|
- array('apiaction' => 'statuses',
|
|
- 'method' => 'user_timeline.atom',
|
|
- 'argument' => $user->nickname)),
|
|
- 'type' => 'application/atom+xml',
|
|
- 'title' => sprintf(_('Notice feed for %s'), $user->nickname)));
|
|
- common_element('link', array('rel' => 'alternate',
|
|
- 'href' => common_local_url('userrss', array('nickname' =>
|
|
- $user->nickname)),
|
|
- 'type' => 'application/rdf+xml',
|
|
- 'title' => sprintf(_('Notice feed for %s'), $user->nickname)));
|
|
- # FOAF
|
|
- common_element('link', array('rel' => 'meta',
|
|
- 'href' => common_local_url('foaf', array('nickname' =>
|
|
- $user->nickname)),
|
|
- 'type' => 'application/rdf+xml',
|
|
- 'title' => 'FOAF'));
|
|
- # for remote subscriptions etc.
|
|
- common_element('meta', array('http-equiv' => 'X-XRDS-Location',
|
|
- 'content' => common_local_url('xrds', array('nickname' =>
|
|
- $user->nickname))));
|
|
- $profile = $user->getProfile();
|
|
- if ($profile->bio) {
|
|
- common_element('meta', array('name' => 'description',
|
|
- 'content' => $profile->bio));
|
|
- }
|
|
+ function show_header($user) {
|
|
+ # Feeds
|
|
+ common_element('link', array('rel' => 'alternate',
|
|
+ 'href' => common_local_url('api',
|
|
+ array('apiaction' => 'statuses',
|
|
+ 'method' => 'user_timeline.rss',
|
|
+ 'argument' => $user->nickname)),
|
|
+ 'type' => 'application/rss+xml',
|
|
+ 'title' => sprintf(_('Notice feed for %s'), $user->nickname)));
|
|
+ common_element('link', array('rel' => 'alternate feed',
|
|
+ 'href' => common_local_url('api',
|
|
+ array('apiaction' => 'statuses',
|
|
+ 'method' => 'user_timeline.atom',
|
|
+ 'argument' => $user->nickname)),
|
|
+ 'type' => 'application/atom+xml',
|
|
+ 'title' => sprintf(_('Notice feed for %s'), $user->nickname)));
|
|
+ common_element('link', array('rel' => 'alternate',
|
|
+ 'href' => common_local_url('userrss', array('nickname' =>
|
|
+ $user->nickname)),
|
|
+ 'type' => 'application/rdf+xml',
|
|
+ 'title' => sprintf(_('Notice feed for %s'), $user->nickname)));
|
|
+ # FOAF
|
|
+ common_element('link', array('rel' => 'meta',
|
|
+ 'href' => common_local_url('foaf', array('nickname' =>
|
|
+ $user->nickname)),
|
|
+ 'type' => 'application/rdf+xml',
|
|
+ 'title' => 'FOAF'));
|
|
+ # for remote subscriptions etc.
|
|
+ common_element('meta', array('http-equiv' => 'X-XRDS-Location',
|
|
+ 'content' => common_local_url('xrds', array('nickname' =>
|
|
+ $user->nickname))));
|
|
+ $profile = $user->getProfile();
|
|
+ if ($profile->bio) {
|
|
+ common_element('meta', array('name' => 'description',
|
|
+ 'content' => $profile->bio));
|
|
+ }
|
|
hunk ./actions/showstream.php 140
|
|
- if ($user->emailmicroid && $user->email && $profile->profileurl) {
|
|
- common_element('meta', array('name' => 'microid',
|
|
- 'content' => "mailto+http:sha1:" . sha1(sha1('mailto:' . $user->email) . sha1($profile->profileurl))));
|
|
- }
|
|
- if ($user->jabbermicroid && $user->jabber && $profile->profileurl) {
|
|
- common_element('meta', array('name' => 'microid',
|
|
- 'content' => "xmpp+http:sha1:" . sha1(sha1('xmpp:' . $user->jabber) . sha1($profile->profileurl))));
|
|
- }
|
|
+ if ($user->emailmicroid && $user->email && $profile->profileurl) {
|
|
+ common_element('meta', array('name' => 'microid',
|
|
+ 'content' => "mailto+http:sha1:" . sha1(sha1('mailto:' . $user->email) . sha1($profile->profileurl))));
|
|
+ }
|
|
+ if ($user->jabbermicroid && $user->jabber && $profile->profileurl) {
|
|
+ common_element('meta', array('name' => 'microid',
|
|
+ 'content' => "xmpp+http:sha1:" . sha1(sha1('xmpp:' . $user->jabber) . sha1($profile->profileurl))));
|
|
+ }
|
|
hunk ./actions/showstream.php 149
|
|
- # See https://wiki.mozilla.org/Microsummaries
|
|
+ # See https://wiki.mozilla.org/Microsummaries
|
|
hunk ./actions/showstream.php 151
|
|
- common_element('link', array('rel' => 'microsummary',
|
|
- 'href' => common_local_url('microsummary',
|
|
- array('nickname' => $profile->nickname))));
|
|
- }
|
|
+ common_element('link', array('rel' => 'microsummary',
|
|
+ 'href' => common_local_url('microsummary',
|
|
+ array('nickname' => $profile->nickname))));
|
|
+ }
|
|
hunk ./actions/showstream.php 156
|
|
- function no_such_user() {
|
|
- $this->client_error(_('No such user.'), 404);
|
|
- }
|
|
+ function no_such_user() {
|
|
+ $this->client_error(_('No such user.'), 404);
|
|
+ }
|
|
hunk ./actions/showstream.php 160
|
|
- function show_profile($profile) {
|
|
+ function show_profile($profile) {
|
|
hunk ./actions/showstream.php 162
|
|
- common_element_start('div', array('id' => 'profile', 'class' => 'vcard'));
|
|
+ common_element_start('div', array('id' => 'profile', 'class' => 'vcard'));
|
|
hunk ./actions/showstream.php 164
|
|
- $this->show_personal($profile);
|
|
+ $this->show_personal($profile);
|
|
hunk ./actions/showstream.php 166
|
|
- $this->show_last_notice($profile);
|
|
+ $this->show_last_notice($profile);
|
|
hunk ./actions/showstream.php 168
|
|
- $cur = common_current_user();
|
|
+ $cur = common_current_user();
|
|
hunk ./actions/showstream.php 170
|
|
- $this->show_subscriptions($profile);
|
|
+ $this->show_subscriptions($profile);
|
|
hunk ./actions/showstream.php 172
|
|
- common_element_end('div');
|
|
- }
|
|
+ common_element_end('div');
|
|
+ }
|
|
hunk ./actions/showstream.php 175
|
|
- function show_personal($profile) {
|
|
+ function show_personal($profile) {
|
|
hunk ./actions/showstream.php 177
|
|
- $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE);
|
|
- common_element_start('div', array('id' => 'profile_avatar'));
|
|
- common_element('img', array('src' => ($avatar) ? common_avatar_display_url($avatar) : common_default_avatar(AVATAR_PROFILE_SIZE),
|
|
- 'class' => 'avatar profile photo',
|
|
- 'width' => AVATAR_PROFILE_SIZE,
|
|
- 'height' => AVATAR_PROFILE_SIZE,
|
|
- 'alt' => $profile->nickname));
|
|
+ $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE);
|
|
+ common_element_start('div', array('id' => 'profile_avatar'));
|
|
+ common_element('img', array('src' => ($avatar) ? common_avatar_display_url($avatar) : common_default_avatar(AVATAR_PROFILE_SIZE),
|
|
+ 'class' => 'avatar profile photo',
|
|
+ 'width' => AVATAR_PROFILE_SIZE,
|
|
+ 'height' => AVATAR_PROFILE_SIZE,
|
|
+ 'alt' => $profile->nickname));
|
|
hunk ./actions/showstream.php 188
|
|
- $cur = common_current_user();
|
|
- if ($cur) {
|
|
- if ($cur->id != $profile->id) {
|
|
- if ($cur->isSubscribed($profile)) {
|
|
- common_unsubscribe_form($profile);
|
|
- } else {
|
|
- common_subscribe_form($profile);
|
|
- }
|
|
- }
|
|
- } else {
|
|
- $this->show_remote_subscribe_link($profile);
|
|
- }
|
|
+ $cur = common_current_user();
|
|
+ if ($cur) {
|
|
+ if ($cur->id != $profile->id) {
|
|
+ if ($cur->isSubscribed($profile)) {
|
|
+ common_unsubscribe_form($profile);
|
|
+ } else {
|
|
+ common_subscribe_form($profile);
|
|
+ }
|
|
+ }
|
|
+ } else {
|
|
+ $this->show_remote_subscribe_link($profile);
|
|
+ }
|
|
hunk ./actions/showstream.php 202
|
|
- $user = User::staticGet('id', $profile->id);
|
|
- common_profile_new_message_nudge($cur, $user, $profile);
|
|
+ $user = User::staticGet('id', $profile->id);
|
|
+ common_profile_new_message_nudge($cur, $user, $profile);
|
|
hunk ./actions/showstream.php 218
|
|
- common_element_end('ul');
|
|
+ common_element_end('ul');
|
|
hunk ./actions/showstream.php 220
|
|
- common_element_end('div');
|
|
+ common_element_end('div');
|
|
hunk ./actions/showstream.php 222
|
|
- common_element_start('div', array('id' => 'profile_information'));
|
|
+ common_element_start('div', array('id' => 'profile_information'));
|
|
hunk ./actions/showstream.php 224
|
|
- if ($profile->fullname) {
|
|
- common_element('h1', array('class' => 'fn'), $profile->fullname . ' (' . $profile->nickname . ')');
|
|
- } else {
|
|
- common_element('h1', array('class' => 'fn nickname'), $profile->nickname);
|
|
- }
|
|
+ if ($profile->fullname) {
|
|
+ common_element('h1', array('class' => 'fn'), $profile->fullname . ' (' . $profile->nickname . ')');
|
|
+ } else {
|
|
+ common_element('h1', array('class' => 'fn nickname'), $profile->nickname);
|
|
+ }
|
|
hunk ./actions/showstream.php 230
|
|
- if ($profile->location) {
|
|
- common_element('p', 'location', $profile->location);
|
|
- }
|
|
- if ($profile->bio) {
|
|
- common_element('p', 'description note', $profile->bio);
|
|
- }
|
|
- if ($profile->homepage) {
|
|
- common_element_start('p', 'website');
|
|
- common_element('a', array('href' => $profile->homepage,
|
|
- 'rel' => 'me', 'class' => 'url'),
|
|
- $profile->homepage);
|
|
- common_element_end('p');
|
|
- }
|
|
+ if ($profile->location) {
|
|
+ common_element('p', 'location', $profile->location);
|
|
+ }
|
|
+ if ($profile->bio) {
|
|
+ common_element('p', 'description note', $profile->bio);
|
|
+ }
|
|
+ if ($profile->homepage) {
|
|
+ common_element_start('p', 'website');
|
|
+ common_element('a', array('href' => $profile->homepage,
|
|
+ 'rel' => 'me', 'class' => 'url'),
|
|
+ $profile->homepage);
|
|
+ common_element_end('p');
|
|
+ }
|
|
hunk ./actions/showstream.php 244
|
|
- $this->show_statistics($profile);
|
|
+ $this->show_statistics($profile);
|
|
hunk ./actions/showstream.php 246
|
|
- common_element_end('div');
|
|
- }
|
|
+ common_element_end('div');
|
|
+ }
|
|
hunk ./actions/showstream.php 249
|
|
- function show_remote_subscribe_link($profile) {
|
|
- $url = common_local_url('remotesubscribe',
|
|
- array('nickname' => $profile->nickname));
|
|
- common_element('a', array('href' => $url,
|
|
- 'id' => 'remotesubscribe'),
|
|
- _('Subscribe'));
|
|
- }
|
|
+ function show_remote_subscribe_link($profile) {
|
|
+ $url = common_local_url('remotesubscribe',
|
|
+ array('nickname' => $profile->nickname));
|
|
+ common_element('a', array('href' => $url,
|
|
+ 'id' => 'remotesubscribe'),
|
|
+ _('Subscribe'));
|
|
+ }
|
|
hunk ./actions/showstream.php 257
|
|
- function show_unsubscribe_form($profile) {
|
|
- common_element_start('form', array('id' => 'unsubscribe', 'method' => 'post',
|
|
- 'action' => common_local_url('unsubscribe')));
|
|
- common_hidden('token', common_session_token());
|
|
- common_element('input', array('id' => 'unsubscribeto',
|
|
- 'name' => 'unsubscribeto',
|
|
- 'type' => 'hidden',
|
|
- 'value' => $profile->nickname));
|
|
- common_element('input', array('type' => 'submit',
|
|
- 'class' => 'submit',
|
|
- 'value' => _('Unsubscribe')));
|
|
- common_element_end('form');
|
|
- }
|
|
+ function show_unsubscribe_form($profile) {
|
|
+ common_element_start('form', array('id' => 'unsubscribe', 'method' => 'post',
|
|
+ 'action' => common_local_url('unsubscribe')));
|
|
+ common_hidden('token', common_session_token());
|
|
+ common_element('input', array('id' => 'unsubscribeto',
|
|
+ 'name' => 'unsubscribeto',
|
|
+ 'type' => 'hidden',
|
|
+ 'value' => $profile->nickname));
|
|
+ common_element('input', array('type' => 'submit',
|
|
+ 'class' => 'submit',
|
|
+ 'value' => _('Unsubscribe')));
|
|
+ common_element_end('form');
|
|
+ }
|
|
hunk ./actions/showstream.php 271
|
|
- function show_subscriptions($profile) {
|
|
- global $config;
|
|
+ function show_subscriptions($profile) {
|
|
+ global $config;
|
|
hunk ./actions/showstream.php 274
|
|
- $subs = DB_DataObject::factory('subscription');
|
|
- $subs->subscriber = $profile->id;
|
|
- $subs->whereAdd('subscribed != ' . $profile->id);
|
|
+ $subs = DB_DataObject::factory('subscription');
|
|
+ $subs->subscriber = $profile->id;
|
|
+ $subs->whereAdd('subscribed != ' . $profile->id);
|
|
hunk ./actions/showstream.php 278
|
|
- $subs->orderBy('created DESC');
|
|
+ $subs->orderBy('created DESC');
|
|
hunk ./actions/showstream.php 280
|
|
- # We ask for an extra one to know if we need to do another page
|
|
+ # We ask for an extra one to know if we need to do another page
|
|
hunk ./actions/showstream.php 282
|
|
- $subs->limit(0, SUBSCRIPTIONS + 1);
|
|
+ $subs->limit(0, SUBSCRIPTIONS + 1);
|
|
hunk ./actions/showstream.php 284
|
|
- $subs_count = $subs->find();
|
|
+ $subs_count = $subs->find();
|
|
hunk ./actions/showstream.php 286
|
|
- common_element_start('div', array('id' => 'subscriptions'));
|
|
+ common_element_start('div', array('id' => 'subscriptions'));
|
|
hunk ./actions/showstream.php 288
|
|
- common_element('h2', NULL, _('Subscriptions'));
|
|
+ common_element('h2', NULL, _('Subscriptions'));
|
|
hunk ./actions/showstream.php 290
|
|
- if ($subs_count > 0) {
|
|
+ if ($subs_count > 0) {
|
|
hunk ./actions/showstream.php 292
|
|
- common_element_start('ul', array('id' => 'subscriptions_avatars'));
|
|
+ common_element_start('ul', array('id' => 'subscriptions_avatars'));
|
|
hunk ./actions/showstream.php 294
|
|
- for ($i = 0; $i < min($subs_count, SUBSCRIPTIONS); $i++) {
|
|
+ for ($i = 0; $i < min($subs_count, SUBSCRIPTIONS); $i++) {
|
|
hunk ./actions/showstream.php 296
|
|
- if (!$subs->fetch()) {
|
|
- common_debug('Weirdly, broke out of subscriptions loop early', __FILE__);
|
|
- break;
|
|
- }
|
|
+ if (!$subs->fetch()) {
|
|
+ common_debug('Weirdly, broke out of subscriptions loop early', __FILE__);
|
|
+ break;
|
|
+ }
|
|
hunk ./actions/showstream.php 301
|
|
- $other = Profile::staticGet($subs->subscribed);
|
|
+ $other = Profile::staticGet($subs->subscribed);
|
|
hunk ./actions/showstream.php 303
|
|
- if (!$other) {
|
|
- common_log_db_error($subs, 'SELECT', __FILE__);
|
|
- continue;
|
|
- }
|
|
+ if (!$other) {
|
|
+ common_log_db_error($subs, 'SELECT', __FILE__);
|
|
+ continue;
|
|
+ }
|
|
hunk ./actions/showstream.php 308
|
|
- common_element_start('li', 'vcard');
|
|
- common_element_start('a', array('title' => ($other->fullname) ?
|
|
- $other->fullname :
|
|
- $other->nickname,
|
|
- 'href' => $other->profileurl,
|
|
- 'rel' => 'contact',
|
|
- 'class' => 'subscription fn url'));
|
|
- $avatar = $other->getAvatar(AVATAR_MINI_SIZE);
|
|
- common_element('img', array('src' => (($avatar) ? common_avatar_display_url($avatar) : common_default_avatar(AVATAR_MINI_SIZE)),
|
|
- 'width' => AVATAR_MINI_SIZE,
|
|
- 'height' => AVATAR_MINI_SIZE,
|
|
- 'class' => 'avatar mini photo',
|
|
- 'alt' => ($other->fullname) ?
|
|
- $other->fullname :
|
|
- $other->nickname));
|
|
- common_element_end('a');
|
|
- common_element_end('li');
|
|
- }
|
|
+ common_element_start('li', 'vcard');
|
|
+ common_element_start('a', array('title' => ($other->fullname) ?
|
|
+ $other->fullname :
|
|
+ $other->nickname,
|
|
+ 'href' => $other->profileurl,
|
|
+ 'rel' => 'contact',
|
|
+ 'class' => 'subscription fn url'));
|
|
+ $avatar = $other->getAvatar(AVATAR_MINI_SIZE);
|
|
+ common_element('img', array('src' => (($avatar) ? common_avatar_display_url($avatar) : common_default_avatar(AVATAR_MINI_SIZE)),
|
|
+ 'width' => AVATAR_MINI_SIZE,
|
|
+ 'height' => AVATAR_MINI_SIZE,
|
|
+ 'class' => 'avatar mini photo',
|
|
+ 'alt' => ($other->fullname) ?
|
|
+ $other->fullname :
|
|
+ $other->nickname));
|
|
+ common_element_end('a');
|
|
+ common_element_end('li');
|
|
+ }
|
|
hunk ./actions/showstream.php 327
|
|
- common_element_end('ul');
|
|
- }
|
|
+ common_element_end('ul');
|
|
+ }
|
|
hunk ./actions/showstream.php 330
|
|
- if ($subs_count > SUBSCRIPTIONS) {
|
|
- common_element_start('p', array('id' => 'subscriptions_viewall'));
|
|
+ if ($subs_count > SUBSCRIPTIONS) {
|
|
+ common_element_start('p', array('id' => 'subscriptions_viewall'));
|
|
hunk ./actions/showstream.php 333
|
|
- common_element('a', array('href' => common_local_url('subscriptions',
|
|
- array('nickname' => $profile->nickname)),
|
|
- 'class' => 'moresubscriptions'),
|
|
- _('All subscriptions'));
|
|
- common_element_end('p');
|
|
- }
|
|
+ common_element('a', array('href' => common_local_url('subscriptions',
|
|
+ array('nickname' => $profile->nickname)),
|
|
+ 'class' => 'moresubscriptions'),
|
|
+ _('All subscriptions'));
|
|
+ common_element_end('p');
|
|
+ }
|
|
hunk ./actions/showstream.php 340
|
|
- common_element_end('div');
|
|
- }
|
|
+ common_element_end('div');
|
|
+ }
|
|
hunk ./actions/showstream.php 343
|
|
- function show_statistics($profile) {
|
|
+ function show_statistics($profile) {
|
|
hunk ./actions/showstream.php 345
|
|
- // XXX: WORM cache this
|
|
- $subs = DB_DataObject::factory('subscription');
|
|
- $subs->subscriber = $profile->id;
|
|
- $subs_count = (int) $subs->count() - 1;
|
|
+ // XXX: WORM cache this
|
|
+ $subs = DB_DataObject::factory('subscription');
|
|
+ $subs->subscriber = $profile->id;
|
|
+ $subs_count = (int) $subs->count() - 1;
|
|
hunk ./actions/showstream.php 350
|
|
- $subbed = DB_DataObject::factory('subscription');
|
|
- $subbed->subscribed = $profile->id;
|
|
- $subbed_count = (int) $subbed->count() - 1;
|
|
+ $subbed = DB_DataObject::factory('subscription');
|
|
+ $subbed->subscribed = $profile->id;
|
|
+ $subbed_count = (int) $subbed->count() - 1;
|
|
hunk ./actions/showstream.php 354
|
|
- $notices = DB_DataObject::factory('notice');
|
|
- $notices->profile_id = $profile->id;
|
|
- $notice_count = (int) $notices->count();
|
|
+ $notices = DB_DataObject::factory('notice');
|
|
+ $notices->profile_id = $profile->id;
|
|
+ $notice_count = (int) $notices->count();
|
|
hunk ./actions/showstream.php 358
|
|
- common_element_start('div', 'statistics');
|
|
- common_element('h2', 'statistics', _('Statistics'));
|
|
+ common_element_start('div', 'statistics');
|
|
+ common_element('h2', 'statistics', _('Statistics'));
|
|
hunk ./actions/showstream.php 361
|
|
- # Other stats...?
|
|
- common_element_start('dl', 'statistics');
|
|
- common_element('dt', 'membersince', _('Member since'));
|
|
- common_element('dd', 'membersince', date('j M Y',
|
|
- strtotime($profile->created)));
|
|
+ # Other stats...?
|
|
+ common_element_start('dl', 'statistics');
|
|
+ common_element('dt', 'membersince', _('Member since'));
|
|
+ common_element('dd', 'membersince', date('j M Y',
|
|
+ strtotime($profile->created)));
|
|
hunk ./actions/showstream.php 367
|
|
- common_element_start('dt', 'subscriptions');
|
|
- common_element('a', array('href' => common_local_url('subscriptions',
|
|
- array('nickname' => $profile->nickname))),
|
|
- _('Subscriptions'));
|
|
- common_element_end('dt');
|
|
- common_element('dd', 'subscriptions', (is_int($subs_count)) ? $subs_count : '0');
|
|
- common_element_start('dt', 'subscribers');
|
|
- common_element('a', array('href' => common_local_url('subscribers',
|
|
- array('nickname' => $profile->nickname))),
|
|
- _('Subscribers'));
|
|
- common_element_end('dt');
|
|
- common_element('dd', 'subscribers', (is_int($subbed_count)) ? $subbed_count : '0');
|
|
- common_element('dt', 'notices', _('Notices'));
|
|
- common_element('dd', 'notices', (is_int($notice_count)) ? $notice_count : '0');
|
|
- # XXX: link these to something
|
|
- common_element('dt', 'tags', _('Tags'));
|
|
- common_element_start('dd', 'tags');
|
|
- $tags = Profile_tag::getTags($profile->id, $profile->id);
|
|
+ common_element_start('dt', 'subscriptions');
|
|
+ common_element('a', array('href' => common_local_url('subscriptions',
|
|
+ array('nickname' => $profile->nickname))),
|
|
+ _('Subscriptions'));
|
|
+ common_element_end('dt');
|
|
+ common_element('dd', 'subscriptions', (is_int($subs_count)) ? $subs_count : '0');
|
|
+ common_element_start('dt', 'subscribers');
|
|
+ common_element('a', array('href' => common_local_url('subscribers',
|
|
+ array('nickname' => $profile->nickname))),
|
|
+ _('Subscribers'));
|
|
+ common_element_end('dt');
|
|
+ common_element('dd', 'subscribers', (is_int($subbed_count)) ? $subbed_count : '0');
|
|
+ common_element('dt', 'notices', _('Notices'));
|
|
+ common_element('dd', 'notices', (is_int($notice_count)) ? $notice_count : '0');
|
|
+ # XXX: link these to something
|
|
+ common_element('dt', 'tags', _('Tags'));
|
|
+ common_element_start('dd', 'tags');
|
|
+ $tags = Profile_tag::getTags($profile->id, $profile->id);
|
|
hunk ./actions/showstream.php 386
|
|
- common_element_start('ul', 'tags xoxo');
|
|
- foreach ($tags as $tag) {
|
|
- common_element_start('li');
|
|
- common_element('a', array('rel' => 'bookmark tag',
|
|
- 'href' => common_local_url('peopletag',
|
|
- array('tag' => $tag))),
|
|
- $tag);
|
|
- common_element_end('li');
|
|
- }
|
|
- common_element_end('ul');
|
|
- common_element_end('dd');
|
|
+ common_element_start('ul', 'tags xoxo');
|
|
+ foreach ($tags as $tag) {
|
|
+ common_element_start('li');
|
|
+ common_element('a', array('rel' => 'bookmark tag',
|
|
+ 'href' => common_local_url('peopletag',
|
|
+ array('tag' => $tag))),
|
|
+ $tag);
|
|
+ common_element_end('li');
|
|
+ }
|
|
+ common_element_end('ul');
|
|
+ common_element_end('dd');
|
|
hunk ./actions/showstream.php 398
|
|
- common_element_end('dl');
|
|
+ common_element_end('dl');
|
|
hunk ./actions/showstream.php 400
|
|
- common_element_end('div');
|
|
- }
|
|
+ common_element_end('div');
|
|
+ }
|
|
hunk ./actions/showstream.php 403
|
|
- function show_notices($user) {
|
|
+ function show_notices($user) {
|
|
hunk ./actions/showstream.php 405
|
|
- $page = ($this->arg('page')) ? ($this->arg('page')+0) : 1;
|
|
+ $page = ($this->arg('page')) ? ($this->arg('page')+0) : 1;
|
|
hunk ./actions/showstream.php 407
|
|
- $notice = $user->getNotices(($page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1);
|
|
+ $notice = $user->getNotices(($page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1);
|
|
hunk ./actions/showstream.php 412
|
|
- common_pagination($page>1, $cnt>NOTICES_PER_PAGE, $page,
|
|
- 'showstream', array('nickname' => $user->nickname));
|
|
- }
|
|
+ common_pagination($page>1, $cnt>NOTICES_PER_PAGE, $page,
|
|
+ 'showstream', array('nickname' => $user->nickname));
|
|
+ }
|
|
hunk ./actions/showstream.php 416
|
|
- function show_last_notice($profile) {
|
|
+ function show_last_notice($profile) {
|
|
hunk ./actions/showstream.php 418
|
|
- common_element('h2', NULL, _('Currently'));
|
|
+ common_element('h2', NULL, _('Currently'));
|
|
hunk ./actions/showstream.php 420
|
|
- $notice = $profile->getCurrentNotice();
|
|
+ $notice = $profile->getCurrentNotice();
|
|
hunk ./actions/showstream.php 422
|
|
- if ($notice) {
|
|
- # FIXME: URL, image, video, audio
|
|
- common_element_start('p', array('class' => 'notice_current'));
|
|
- if ($notice->rendered) {
|
|
- common_raw($notice->rendered);
|
|
- } else {
|
|
- # XXX: may be some uncooked notices in the DB,
|
|
- # we cook them right now. This can probably disappear in future
|
|
- # versions (>> 0.4.x)
|
|
- common_raw(common_render_content($notice->content, $notice));
|
|
- }
|
|
- common_element_end('p');
|
|
- }
|
|
- }
|
|
+ if ($notice) {
|
|
+ # FIXME: URL, image, video, audio
|
|
+ common_element_start('p', array('class' => 'notice_current'));
|
|
+ if ($notice->rendered) {
|
|
+ common_raw($notice->rendered);
|
|
+ } else {
|
|
+ # XXX: may be some uncooked notices in the DB,
|
|
+ # we cook them right now. This can probably disappear in future
|
|
+ # versions (>> 0.4.x)
|
|
+ common_raw(common_render_content($notice->content, $notice));
|
|
+ }
|
|
+ common_element_end('p');
|
|
+ }
|
|
+ }
|
|
hunk ./actions/smssettings.php 27
|
|
- function get_instructions() {
|
|
- return _('You can receive SMS messages through email from %%site.name%%.');
|
|
- }
|
|
+ function get_instructions() {
|
|
+ return _('You can receive SMS messages through email from %%site.name%%.');
|
|
+ }
|
|
hunk ./actions/smssettings.php 31
|
|
- function show_form($msg=NULL, $success=false) {
|
|
- $user = common_current_user();
|
|
- $this->form_header(_('SMS Settings'), $msg, $success);
|
|
- common_element_start('form', array('method' => 'post',
|
|
- 'id' => 'smssettings',
|
|
- 'action' =>
|
|
- common_local_url('smssettings')));
|
|
- common_hidden('token', common_session_token());
|
|
- common_element('h2', NULL, _('Address'));
|
|
+ function show_form($msg=NULL, $success=false) {
|
|
+ $user = common_current_user();
|
|
+ $this->form_header(_('SMS Settings'), $msg, $success);
|
|
+ common_element_start('form', array('method' => 'post',
|
|
+ 'id' => 'smssettings',
|
|
+ 'action' =>
|
|
+ common_local_url('smssettings')));
|
|
+ common_hidden('token', common_session_token());
|
|
+ common_element('h2', NULL, _('Address'));
|
|
hunk ./actions/smssettings.php 41
|
|
- if ($user->sms) {
|
|
- common_element_start('p');
|
|
- $carrier = $user->getCarrier();
|
|
- common_element('span', 'address confirmed', $user->sms . ' (' . $carrier->name . ')');
|
|
- common_element('span', 'input_instructions',
|
|
- _('Current confirmed SMS-enabled phone number.'));
|
|
- common_hidden('sms', $user->sms);
|
|
- common_hidden('carrier', $user->carrier);
|
|
- common_element_end('p');
|
|
- common_submit('remove', _('Remove'));
|
|
- } else {
|
|
- $confirm = $this->get_confirmation();
|
|
- if ($confirm) {
|
|
- $carrier = Sms_carrier::staticGet($confirm->address_extra);
|
|
- common_element_start('p');
|
|
- common_element('span', 'address unconfirmed', $confirm->address . ' (' . $carrier->name . ')');
|
|
- common_element('span', 'input_instructions',
|
|
- _('Awaiting confirmation on this phone number.'));
|
|
- common_hidden('sms', $confirm->address);
|
|
- common_hidden('carrier', $confirm->address_extra);
|
|
- common_element_end('p');
|
|
- common_submit('cancel', _('Cancel'));
|
|
- common_input('code', _('Confirmation code'), NULL,
|
|
- _('Enter the code you received on your phone.'));
|
|
- common_submit('confirm', _('Confirm'));
|
|
- } else {
|
|
- common_input('sms', _('SMS Phone number'),
|
|
- ($this->arg('sms')) ? $this->arg('sms') : NULL,
|
|
- _('Phone number, no punctuation or spaces, with area code'));
|
|
- $this->carrier_select();
|
|
- common_submit('add', _('Add'));
|
|
- }
|
|
- }
|
|
+ if ($user->sms) {
|
|
+ common_element_start('p');
|
|
+ $carrier = $user->getCarrier();
|
|
+ common_element('span', 'address confirmed', $user->sms . ' (' . $carrier->name . ')');
|
|
+ common_element('span', 'input_instructions',
|
|
+ _('Current confirmed SMS-enabled phone number.'));
|
|
+ common_hidden('sms', $user->sms);
|
|
+ common_hidden('carrier', $user->carrier);
|
|
+ common_element_end('p');
|
|
+ common_submit('remove', _('Remove'));
|
|
+ } else {
|
|
+ $confirm = $this->get_confirmation();
|
|
+ if ($confirm) {
|
|
+ $carrier = Sms_carrier::staticGet($confirm->address_extra);
|
|
+ common_element_start('p');
|
|
+ common_element('span', 'address unconfirmed', $confirm->address . ' (' . $carrier->name . ')');
|
|
+ common_element('span', 'input_instructions',
|
|
+ _('Awaiting confirmation on this phone number.'));
|
|
+ common_hidden('sms', $confirm->address);
|
|
+ common_hidden('carrier', $confirm->address_extra);
|
|
+ common_element_end('p');
|
|
+ common_submit('cancel', _('Cancel'));
|
|
+ common_input('code', _('Confirmation code'), NULL,
|
|
+ _('Enter the code you received on your phone.'));
|
|
+ common_submit('confirm', _('Confirm'));
|
|
+ } else {
|
|
+ common_input('sms', _('SMS Phone number'),
|
|
+ ($this->arg('sms')) ? $this->arg('sms') : NULL,
|
|
+ _('Phone number, no punctuation or spaces, with area code'));
|
|
+ $this->carrier_select();
|
|
+ common_submit('add', _('Add'));
|
|
+ }
|
|
+ }
|
|
hunk ./actions/smssettings.php 75
|
|
- if ($user->sms) {
|
|
- common_element('h2', NULL, _('Incoming email'));
|
|
-
|
|
- if ($user->incomingemail) {
|
|
- common_element_start('p');
|
|
- common_element('span', 'address', $user->incomingemail);
|
|
- common_element('span', 'input_instructions',
|
|
- _('Send email to this address to post new notices.'));
|
|
- common_element_end('p');
|
|
- common_submit('removeincoming', _('Remove'));
|
|
- }
|
|
-
|
|
- common_element_start('p');
|
|
- common_element('span', 'input_instructions',
|
|
- _('Make a new email address for posting to; cancels the old one.'));
|
|
- common_element_end('p');
|
|
- common_submit('newincoming', _('New'));
|
|
- }
|
|
-
|
|
- common_element('h2', NULL, _('Preferences'));
|
|
-
|
|
- common_checkbox('smsnotify',
|
|
- _('Send me notices through SMS; I understand I may incur exorbitant charges from my carrier.'),
|
|
- $user->smsnotify);
|
|
-
|
|
- common_submit('save', _('Save'));
|
|
-
|
|
- common_element_end('form');
|
|
- common_show_footer();
|
|
- }
|
|
+ if ($user->sms) {
|
|
+ common_element('h2', NULL, _('Incoming email'));
|
|
+
|
|
+ if ($user->incomingemail) {
|
|
+ common_element_start('p');
|
|
+ common_element('span', 'address', $user->incomingemail);
|
|
+ common_element('span', 'input_instructions',
|
|
+ _('Send email to this address to post new notices.'));
|
|
+ common_element_end('p');
|
|
+ common_submit('removeincoming', _('Remove'));
|
|
+ }
|
|
+
|
|
+ common_element_start('p');
|
|
+ common_element('span', 'input_instructions',
|
|
+ _('Make a new email address for posting to; cancels the old one.'));
|
|
+ common_element_end('p');
|
|
+ common_submit('newincoming', _('New'));
|
|
+ }
|
|
+
|
|
+ common_element('h2', NULL, _('Preferences'));
|
|
+
|
|
+ common_checkbox('smsnotify',
|
|
+ _('Send me notices through SMS; I understand I may incur exorbitant charges from my carrier.'),
|
|
+ $user->smsnotify);
|
|
+
|
|
+ common_submit('save', _('Save'));
|
|
+
|
|
+ common_element_end('form');
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/smssettings.php 106
|
|
- function get_confirmation() {
|
|
- $user = common_current_user();
|
|
- $confirm = new Confirm_address();
|
|
- $confirm->user_id = $user->id;
|
|
- $confirm->address_type = 'sms';
|
|
- if ($confirm->find(TRUE)) {
|
|
- return $confirm;
|
|
- } else {
|
|
- return NULL;
|
|
- }
|
|
- }
|
|
+ function get_confirmation() {
|
|
+ $user = common_current_user();
|
|
+ $confirm = new Confirm_address();
|
|
+ $confirm->user_id = $user->id;
|
|
+ $confirm->address_type = 'sms';
|
|
+ if ($confirm->find(TRUE)) {
|
|
+ return $confirm;
|
|
+ } else {
|
|
+ return NULL;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/smssettings.php 118
|
|
- function handle_post() {
|
|
+ function handle_post() {
|
|
hunk ./actions/smssettings.php 120
|
|
- # CSRF protection
|
|
+ # CSRF protection
|
|
hunk ./actions/smssettings.php 122
|
|
- $token = $this->trimmed('token');
|
|
- if (!$token || $token != common_session_token()) {
|
|
- $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
- return;
|
|
- }
|
|
+ $token = $this->trimmed('token');
|
|
+ if (!$token || $token != common_session_token()) {
|
|
+ $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/smssettings.php 128
|
|
- if ($this->arg('save')) {
|
|
- $this->save_preferences();
|
|
- } else if ($this->arg('add')) {
|
|
- $this->add_address();
|
|
- } else if ($this->arg('cancel')) {
|
|
- $this->cancel_confirmation();
|
|
- } else if ($this->arg('remove')) {
|
|
- $this->remove_address();
|
|
- } else if ($this->arg('removeincoming')) {
|
|
- $this->remove_incoming();
|
|
- } else if ($this->arg('newincoming')) {
|
|
- $this->new_incoming();
|
|
- } else if ($this->arg('confirm')) {
|
|
- $this->confirm_code();
|
|
- } else {
|
|
- $this->show_form(_('Unexpected form submission.'));
|
|
- }
|
|
- }
|
|
+ if ($this->arg('save')) {
|
|
+ $this->save_preferences();
|
|
+ } else if ($this->arg('add')) {
|
|
+ $this->add_address();
|
|
+ } else if ($this->arg('cancel')) {
|
|
+ $this->cancel_confirmation();
|
|
+ } else if ($this->arg('remove')) {
|
|
+ $this->remove_address();
|
|
+ } else if ($this->arg('removeincoming')) {
|
|
+ $this->remove_incoming();
|
|
+ } else if ($this->arg('newincoming')) {
|
|
+ $this->new_incoming();
|
|
+ } else if ($this->arg('confirm')) {
|
|
+ $this->confirm_code();
|
|
+ } else {
|
|
+ $this->show_form(_('Unexpected form submission.'));
|
|
+ }
|
|
+ }
|
|
hunk ./actions/smssettings.php 147
|
|
- function save_preferences() {
|
|
+ function save_preferences() {
|
|
hunk ./actions/smssettings.php 149
|
|
- $smsnotify = $this->boolean('smsnotify');
|
|
-
|
|
- $user = common_current_user();
|
|
+ $smsnotify = $this->boolean('smsnotify');
|
|
+
|
|
+ $user = common_current_user();
|
|
hunk ./actions/smssettings.php 153
|
|
- assert(!is_null($user)); # should already be checked
|
|
+ assert(!is_null($user)); # should already be checked
|
|
hunk ./actions/smssettings.php 155
|
|
- $user->query('BEGIN');
|
|
+ $user->query('BEGIN');
|
|
hunk ./actions/smssettings.php 157
|
|
- $original = clone($user);
|
|
+ $original = clone($user);
|
|
hunk ./actions/smssettings.php 159
|
|
- $user->smsnotify = $smsnotify;
|
|
+ $user->smsnotify = $smsnotify;
|
|
hunk ./actions/smssettings.php 161
|
|
- $result = $user->update($original);
|
|
+ $result = $user->update($original);
|
|
hunk ./actions/smssettings.php 163
|
|
- if ($result === FALSE) {
|
|
- common_log_db_error($user, 'UPDATE', __FILE__);
|
|
- common_server_error(_('Couldn\'t update user.'));
|
|
- return;
|
|
- }
|
|
+ if ($result === FALSE) {
|
|
+ common_log_db_error($user, 'UPDATE', __FILE__);
|
|
+ common_server_error(_('Couldn\'t update user.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/smssettings.php 169
|
|
- $user->query('COMMIT');
|
|
+ $user->query('COMMIT');
|
|
hunk ./actions/smssettings.php 171
|
|
- $this->show_form(_('Preferences saved.'), true);
|
|
- }
|
|
+ $this->show_form(_('Preferences saved.'), true);
|
|
+ }
|
|
hunk ./actions/smssettings.php 174
|
|
- function add_address() {
|
|
+ function add_address() {
|
|
hunk ./actions/smssettings.php 176
|
|
- $user = common_current_user();
|
|
+ $user = common_current_user();
|
|
hunk ./actions/smssettings.php 178
|
|
- $sms = $this->trimmed('sms');
|
|
- $carrier_id = $this->trimmed('carrier');
|
|
-
|
|
- # Some validation
|
|
+ $sms = $this->trimmed('sms');
|
|
+ $carrier_id = $this->trimmed('carrier');
|
|
+
|
|
+ # Some validation
|
|
hunk ./actions/smssettings.php 183
|
|
- if (!$sms) {
|
|
- $this->show_form(_('No phone number.'));
|
|
- return;
|
|
- }
|
|
+ if (!$sms) {
|
|
+ $this->show_form(_('No phone number.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/smssettings.php 188
|
|
- if (!$carrier_id) {
|
|
- $this->show_form(_('No carrier selected.'));
|
|
- return;
|
|
- }
|
|
-
|
|
- $sms = common_canonical_sms($sms);
|
|
-
|
|
- if ($user->sms == $sms) {
|
|
- $this->show_form(_('That is already your phone number.'));
|
|
- return;
|
|
- } else if ($this->sms_exists($sms)) {
|
|
- $this->show_form(_('That phone number already belongs to another user.'));
|
|
- return;
|
|
- }
|
|
+ if (!$carrier_id) {
|
|
+ $this->show_form(_('No carrier selected.'));
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ $sms = common_canonical_sms($sms);
|
|
+
|
|
+ if ($user->sms == $sms) {
|
|
+ $this->show_form(_('That is already your phone number.'));
|
|
+ return;
|
|
+ } else if ($this->sms_exists($sms)) {
|
|
+ $this->show_form(_('That phone number already belongs to another user.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/smssettings.php 203
|
|
- $confirm = new Confirm_address();
|
|
- $confirm->address = $sms;
|
|
- $confirm->address_extra = $carrier_id;
|
|
- $confirm->address_type = 'sms';
|
|
- $confirm->user_id = $user->id;
|
|
- $confirm->code = common_confirmation_code(40);
|
|
+ $confirm = new Confirm_address();
|
|
+ $confirm->address = $sms;
|
|
+ $confirm->address_extra = $carrier_id;
|
|
+ $confirm->address_type = 'sms';
|
|
+ $confirm->user_id = $user->id;
|
|
+ $confirm->code = common_confirmation_code(40);
|
|
hunk ./actions/smssettings.php 210
|
|
- $result = $confirm->insert();
|
|
+ $result = $confirm->insert();
|
|
hunk ./actions/smssettings.php 212
|
|
- if ($result === FALSE) {
|
|
- common_log_db_error($confirm, 'INSERT', __FILE__);
|
|
- common_server_error(_('Couldn\'t insert confirmation code.'));
|
|
- return;
|
|
- }
|
|
+ if ($result === FALSE) {
|
|
+ common_log_db_error($confirm, 'INSERT', __FILE__);
|
|
+ common_server_error(_('Couldn\'t insert confirmation code.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/smssettings.php 218
|
|
- $carrier = Sms_carrier::staticGet($carrier_id);
|
|
-
|
|
- mail_confirm_sms($confirm->code,
|
|
- $user->nickname,
|
|
- $carrier->toEmailAddress($sms));
|
|
+ $carrier = Sms_carrier::staticGet($carrier_id);
|
|
+
|
|
+ mail_confirm_sms($confirm->code,
|
|
+ $user->nickname,
|
|
+ $carrier->toEmailAddress($sms));
|
|
hunk ./actions/smssettings.php 224
|
|
- $msg = _('A confirmation code was sent to the phone number you added. Check your inbox (and spam box!) for the code and instructions on how to use it.');
|
|
+ $msg = _('A confirmation code was sent to the phone number you added. Check your inbox (and spam box!) for the code and instructions on how to use it.');
|
|
hunk ./actions/smssettings.php 226
|
|
- $this->show_form($msg, TRUE);
|
|
- }
|
|
+ $this->show_form($msg, TRUE);
|
|
+ }
|
|
hunk ./actions/smssettings.php 229
|
|
- function cancel_confirmation() {
|
|
-
|
|
- $sms = $this->trimmed('sms');
|
|
- $carrier = $this->trimmed('carrier');
|
|
-
|
|
- $confirm = $this->get_confirmation();
|
|
-
|
|
- if (!$confirm) {
|
|
- $this->show_form(_('No pending confirmation to cancel.'));
|
|
- return;
|
|
- }
|
|
- if ($confirm->address != $sms) {
|
|
- $this->show_form(_('That is the wrong confirmation number.'));
|
|
- return;
|
|
- }
|
|
+ function cancel_confirmation() {
|
|
+
|
|
+ $sms = $this->trimmed('sms');
|
|
+ $carrier = $this->trimmed('carrier');
|
|
+
|
|
+ $confirm = $this->get_confirmation();
|
|
+
|
|
+ if (!$confirm) {
|
|
+ $this->show_form(_('No pending confirmation to cancel.'));
|
|
+ return;
|
|
+ }
|
|
+ if ($confirm->address != $sms) {
|
|
+ $this->show_form(_('That is the wrong confirmation number.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/smssettings.php 248
|
|
- common_log_db_error($confirm, 'DELETE', __FILE__);
|
|
+ common_log_db_error($confirm, 'DELETE', __FILE__);
|
|
hunk ./actions/smssettings.php 254
|
|
- }
|
|
+ }
|
|
hunk ./actions/smssettings.php 256
|
|
- function remove_address() {
|
|
+ function remove_address() {
|
|
hunk ./actions/smssettings.php 258
|
|
- $user = common_current_user();
|
|
- $sms = $this->arg('sms');
|
|
- $carrier = $this->arg('carrier');
|
|
-
|
|
- # Maybe an old tab open...?
|
|
+ $user = common_current_user();
|
|
+ $sms = $this->arg('sms');
|
|
+ $carrier = $this->arg('carrier');
|
|
+
|
|
+ # Maybe an old tab open...?
|
|
hunk ./actions/smssettings.php 264
|
|
- if ($user->sms != $sms) {
|
|
- $this->show_form(_('That is not your phone number.'));
|
|
- return;
|
|
- }
|
|
+ if ($user->sms != $sms) {
|
|
+ $this->show_form(_('That is not your phone number.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/smssettings.php 269
|
|
- $user->query('BEGIN');
|
|
- $original = clone($user);
|
|
- $user->sms = NULL;
|
|
- $user->carrier = NULL;
|
|
- $user->smsemail = NULL;
|
|
- $result = $user->updateKeys($original);
|
|
- if (!$result) {
|
|
- common_log_db_error($user, 'UPDATE', __FILE__);
|
|
- common_server_error(_('Couldn\'t update user.'));
|
|
- return;
|
|
- }
|
|
- $user->query('COMMIT');
|
|
+ $user->query('BEGIN');
|
|
+ $original = clone($user);
|
|
+ $user->sms = NULL;
|
|
+ $user->carrier = NULL;
|
|
+ $user->smsemail = NULL;
|
|
+ $result = $user->updateKeys($original);
|
|
+ if (!$result) {
|
|
+ common_log_db_error($user, 'UPDATE', __FILE__);
|
|
+ common_server_error(_('Couldn\'t update user.'));
|
|
+ return;
|
|
+ }
|
|
+ $user->query('COMMIT');
|
|
hunk ./actions/smssettings.php 282
|
|
- $this->show_form(_('The address was removed.'), TRUE);
|
|
- }
|
|
-
|
|
- function sms_exists($sms) {
|
|
- $user = common_current_user();
|
|
- $other = User::staticGet('sms', $sms);
|
|
- if (!$other) {
|
|
- return false;
|
|
- } else {
|
|
- return $other->id != $user->id;
|
|
- }
|
|
- }
|
|
+ $this->show_form(_('The address was removed.'), TRUE);
|
|
+ }
|
|
+
|
|
+ function sms_exists($sms) {
|
|
+ $user = common_current_user();
|
|
+ $other = User::staticGet('sms', $sms);
|
|
+ if (!$other) {
|
|
+ return false;
|
|
+ } else {
|
|
+ return $other->id != $user->id;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/smssettings.php 295
|
|
- function carrier_select() {
|
|
- $carrier = new Sms_carrier();
|
|
- $cnt = $carrier->find();
|
|
+ function carrier_select() {
|
|
+ $carrier = new Sms_carrier();
|
|
+ $cnt = $carrier->find();
|
|
hunk ./actions/smssettings.php 299
|
|
- common_element_start('p');
|
|
- common_element('label', array('for' => 'carrier'));
|
|
- common_element_start('select', array('name' => 'carrier',
|
|
- 'id' => 'carrier'));
|
|
- common_element('option', array('value' => 0),
|
|
- _('Select a carrier'));
|
|
- while ($carrier->fetch()) {
|
|
- common_element('option', array('value' => $carrier->id),
|
|
- $carrier->name);
|
|
- }
|
|
- common_element_end('select');
|
|
- common_element_end('p');
|
|
- common_element('span', 'input_instructions',
|
|
- sprintf(_('Mobile carrier for your phone. '.
|
|
- 'If you know a carrier that accepts ' .
|
|
- 'SMS over email but isn\'t listed here, ' .
|
|
- 'send email to let us know at %s.'),
|
|
- common_config('site', 'email')));
|
|
- }
|
|
+ common_element_start('p');
|
|
+ common_element('label', array('for' => 'carrier'));
|
|
+ common_element_start('select', array('name' => 'carrier',
|
|
+ 'id' => 'carrier'));
|
|
+ common_element('option', array('value' => 0),
|
|
+ _('Select a carrier'));
|
|
+ while ($carrier->fetch()) {
|
|
+ common_element('option', array('value' => $carrier->id),
|
|
+ $carrier->name);
|
|
+ }
|
|
+ common_element_end('select');
|
|
+ common_element_end('p');
|
|
+ common_element('span', 'input_instructions',
|
|
+ sprintf(_('Mobile carrier for your phone. '.
|
|
+ 'If you know a carrier that accepts ' .
|
|
+ 'SMS over email but isn\'t listed here, ' .
|
|
+ 'send email to let us know at %s.'),
|
|
+ common_config('site', 'email')));
|
|
+ }
|
|
hunk ./actions/smssettings.php 319
|
|
- function confirm_code() {
|
|
-
|
|
- $code = $this->trimmed('code');
|
|
-
|
|
- if (!$code) {
|
|
- $this->show_form(_('No code entered'));
|
|
- return;
|
|
- }
|
|
-
|
|
- common_redirect(common_local_url('confirmaddress',
|
|
- array('code' => $code)));
|
|
- }
|
|
+ function confirm_code() {
|
|
+
|
|
+ $code = $this->trimmed('code');
|
|
+
|
|
+ if (!$code) {
|
|
+ $this->show_form(_('No code entered'));
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ common_redirect(common_local_url('confirmaddress',
|
|
+ array('code' => $code)));
|
|
+ }
|
|
hunk ./actions/subedit.php 35
|
|
- $token = $this->trimmed('token');
|
|
+ $token = $this->trimmed('token');
|
|
hunk ./actions/subedit.php 37
|
|
- if (!$token || $token != common_session_token()) {
|
|
- $this->client_error(_('There was a problem with your session token. Try again, please.'));
|
|
- return;
|
|
- }
|
|
+ if (!$token || $token != common_session_token()) {
|
|
+ $this->client_error(_('There was a problem with your session token. Try again, please.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/subscribe.php 24
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/subscribe.php 27
|
|
- if (!common_logged_in()) {
|
|
- common_user_error(_('Not logged in.'));
|
|
- return;
|
|
- }
|
|
+ if (!common_logged_in()) {
|
|
+ common_user_error(_('Not logged in.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/subscribe.php 32
|
|
- $user = common_current_user();
|
|
+ $user = common_current_user();
|
|
hunk ./actions/subscribe.php 34
|
|
- if ($_SERVER['REQUEST_METHOD'] != 'POST') {
|
|
- common_redirect(common_local_url('subscriptions', array('nickname' => $user->nickname)));
|
|
- return;
|
|
- }
|
|
+ if ($_SERVER['REQUEST_METHOD'] != 'POST') {
|
|
+ common_redirect(common_local_url('subscriptions', array('nickname' => $user->nickname)));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/subscribe.php 39
|
|
- # CSRF protection
|
|
+ # CSRF protection
|
|
hunk ./actions/subscribe.php 41
|
|
- $token = $this->trimmed('token');
|
|
+ $token = $this->trimmed('token');
|
|
hunk ./actions/subscribe.php 43
|
|
- if (!$token || $token != common_session_token()) {
|
|
- $this->client_error(_('There was a problem with your session token. Try again, please.'));
|
|
- return;
|
|
- }
|
|
+ if (!$token || $token != common_session_token()) {
|
|
+ $this->client_error(_('There was a problem with your session token. Try again, please.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/subscribe.php 48
|
|
- $other_id = $this->arg('subscribeto');
|
|
+ $other_id = $this->arg('subscribeto');
|
|
hunk ./actions/subscribe.php 53
|
|
- $this->client_error(_('Not a local user.'));
|
|
- return;
|
|
+ $this->client_error(_('Not a local user.'));
|
|
+ return;
|
|
hunk ./actions/subscribe.php 57
|
|
- $result = subs_subscribe_to($user, $other);
|
|
+ $result = subs_subscribe_to($user, $other);
|
|
hunk ./actions/subscribe.php 59
|
|
- if($result != true) {
|
|
- common_user_error($result);
|
|
- return;
|
|
- }
|
|
+ if($result != true) {
|
|
+ common_user_error($result);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/subscribe.php 64
|
|
- if ($this->boolean('ajax')) {
|
|
- common_start_html('text/xml;charset=utf-8', true);
|
|
- common_element_start('head');
|
|
- common_element('title', null, _('Subscribed'));
|
|
- common_element_end('head');
|
|
- common_element_start('body');
|
|
- common_unsubscribe_form($other->getProfile());
|
|
- common_element_end('body');
|
|
- common_element_end('html');
|
|
- } else {
|
|
- common_redirect(common_local_url('subscriptions', array('nickname' =>
|
|
- $user->nickname)));
|
|
+ if ($this->boolean('ajax')) {
|
|
+ common_start_html('text/xml;charset=utf-8', true);
|
|
+ common_element_start('head');
|
|
+ common_element('title', null, _('Subscribed'));
|
|
+ common_element_end('head');
|
|
+ common_element_start('body');
|
|
+ common_unsubscribe_form($other->getProfile());
|
|
+ common_element_end('body');
|
|
+ common_element_end('html');
|
|
+ } else {
|
|
+ common_redirect(common_local_url('subscriptions', array('nickname' =>
|
|
+ $user->nickname)));
|
|
hunk ./actions/subscribe.php 77
|
|
- }
|
|
+ }
|
|
hunk ./actions/subscribers.php 26
|
|
- function gallery_type() {
|
|
- return _('Subscribers');
|
|
- }
|
|
+ function gallery_type() {
|
|
+ return _('Subscribers');
|
|
+ }
|
|
hunk ./actions/subscribers.php 30
|
|
- function get_instructions(&$profile) {
|
|
- $user =& common_current_user();
|
|
- if ($user && ($user->id == $profile->id)) {
|
|
- return _('These are the people who listen to your notices.');
|
|
- } else {
|
|
- return sprintf(_('These are the people who listen to %s\'s notices.'), $profile->nickname);
|
|
- }
|
|
- }
|
|
+ function get_instructions(&$profile) {
|
|
+ $user =& common_current_user();
|
|
+ if ($user && ($user->id == $profile->id)) {
|
|
+ return _('These are the people who listen to your notices.');
|
|
+ } else {
|
|
+ return sprintf(_('These are the people who listen to %s\'s notices.'), $profile->nickname);
|
|
+ }
|
|
+ }
|
|
hunk ./actions/subscribers.php 39
|
|
- function fields() {
|
|
- return array('subscriber', 'subscribed');
|
|
- }
|
|
+ function fields() {
|
|
+ return array('subscriber', 'subscribed');
|
|
+ }
|
|
hunk ./actions/subscribers.php 43
|
|
- function div_class() {
|
|
- return 'subscribers';
|
|
- }
|
|
+ function div_class() {
|
|
+ return 'subscribers';
|
|
+ }
|
|
hunk ./actions/subscribers.php 47
|
|
- function get_other(&$subs) {
|
|
- return $subs->subscriber;
|
|
- }
|
|
+ function get_other(&$subs) {
|
|
+ return $subs->subscriber;
|
|
+ }
|
|
hunk ./actions/subscriptions.php 26
|
|
- function gallery_type() {
|
|
- return _('Subscriptions');
|
|
- }
|
|
+ function gallery_type() {
|
|
+ return _('Subscriptions');
|
|
+ }
|
|
hunk ./actions/subscriptions.php 30
|
|
- function get_instructions(&$profile) {
|
|
- $user =& common_current_user();
|
|
- if ($user && ($user->id == $profile->id)) {
|
|
- return _('These are the people whose notices you listen to.');
|
|
- } else {
|
|
- return sprintf(_('These are the people whose notices %s listens to.'), $profile->nickname);
|
|
- }
|
|
- }
|
|
+ function get_instructions(&$profile) {
|
|
+ $user =& common_current_user();
|
|
+ if ($user && ($user->id == $profile->id)) {
|
|
+ return _('These are the people whose notices you listen to.');
|
|
+ } else {
|
|
+ return sprintf(_('These are the people whose notices %s listens to.'), $profile->nickname);
|
|
+ }
|
|
+ }
|
|
hunk ./actions/subscriptions.php 39
|
|
- function fields() {
|
|
- return array('subscribed', 'subscriber');
|
|
- }
|
|
+ function fields() {
|
|
+ return array('subscribed', 'subscriber');
|
|
+ }
|
|
hunk ./actions/subscriptions.php 43
|
|
- function div_class() {
|
|
- return 'subscriptions';
|
|
- }
|
|
+ function div_class() {
|
|
+ return 'subscriptions';
|
|
+ }
|
|
hunk ./actions/subscriptions.php 47
|
|
- function get_other(&$subs) {
|
|
- return $subs->subscribed;
|
|
- }
|
|
+ function get_other(&$subs) {
|
|
+ return $subs->subscribed;
|
|
+ }
|
|
hunk ./actions/subscriptions.php 60
|
|
- $sub = Subscription::pkeyGet(array('subscriber' => $this->owner->id,
|
|
- 'subscribed' => $profile->id));
|
|
+ $sub = Subscription::pkeyGet(array('subscriber' => $this->owner->id,
|
|
+ 'subscribed' => $profile->id));
|
|
hunk ./actions/sup.php 23
|
|
-
|
|
- function handle($args) {
|
|
-
|
|
- parent::handle($args);
|
|
-
|
|
- $seconds = $this->trimmed('seconds');
|
|
-
|
|
- if (!$seconds) {
|
|
- $seconds = 15;
|
|
- }
|
|
+
|
|
+ function handle($args) {
|
|
+
|
|
+ parent::handle($args);
|
|
+
|
|
+ $seconds = $this->trimmed('seconds');
|
|
+
|
|
+ if (!$seconds) {
|
|
+ $seconds = 15;
|
|
+ }
|
|
hunk ./actions/sup.php 34
|
|
- $updates = $this->get_updates($seconds);
|
|
-
|
|
- header('Content-Type: application/json; charset=utf-8');
|
|
-
|
|
- print json_encode(array('updated_time' => date('c'),
|
|
- 'since_time' => date('c', time() - $seconds),
|
|
- 'available_periods' => $this->available_periods(),
|
|
- 'period' => $seconds,
|
|
- 'updates' => $updates));
|
|
- }
|
|
-
|
|
- function available_periods() {
|
|
- static $periods = array(86400, 43200, 21600, 7200,
|
|
- 3600, 1800, 600, 300, 120,
|
|
- 60, 30, 15);
|
|
- $available = array();
|
|
- foreach ($periods as $period) {
|
|
- $available[$period] = common_local_url('sup',
|
|
- array('seconds' => $period));
|
|
- }
|
|
-
|
|
- return $available;
|
|
- }
|
|
-
|
|
- function get_updates($seconds) {
|
|
- $notice = new Notice();
|
|
+ $updates = $this->get_updates($seconds);
|
|
+
|
|
+ header('Content-Type: application/json; charset=utf-8');
|
|
+
|
|
+ print json_encode(array('updated_time' => date('c'),
|
|
+ 'since_time' => date('c', time() - $seconds),
|
|
+ 'available_periods' => $this->available_periods(),
|
|
+ 'period' => $seconds,
|
|
+ 'updates' => $updates));
|
|
+ }
|
|
+
|
|
+ function available_periods() {
|
|
+ static $periods = array(86400, 43200, 21600, 7200,
|
|
+ 3600, 1800, 600, 300, 120,
|
|
+ 60, 30, 15);
|
|
+ $available = array();
|
|
+ foreach ($periods as $period) {
|
|
+ $available[$period] = common_local_url('sup',
|
|
+ array('seconds' => $period));
|
|
+ }
|
|
+
|
|
+ return $available;
|
|
+ }
|
|
+
|
|
+ function get_updates($seconds) {
|
|
+ $notice = new Notice();
|
|
hunk ./actions/sup.php 61
|
|
- # XXX: cache this. Depends on how big this protocol becomes;
|
|
- # Re-doing this query every 15 seconds isn't the end of the world.
|
|
+ # XXX: cache this. Depends on how big this protocol becomes;
|
|
+ # Re-doing this query every 15 seconds isn't the end of the world.
|
|
hunk ./actions/sup.php 64
|
|
- $notice->query('SELECT profile_id, max(id) AS max_id ' .
|
|
- 'FROM notice ' .
|
|
- 'WHERE created > (now() - ' . $seconds . ') ' .
|
|
- 'GROUP BY profile_id');
|
|
-
|
|
- $updates = array();
|
|
-
|
|
- while ($notice->fetch()) {
|
|
- $updates[] = array($notice->profile_id, $notice->max_id);
|
|
- }
|
|
-
|
|
- return $updates;
|
|
- }
|
|
-
|
|
- function is_readonly() {
|
|
- return true;
|
|
- }
|
|
+ $notice->query('SELECT profile_id, max(id) AS max_id ' .
|
|
+ 'FROM notice ' .
|
|
+ 'WHERE created > (now() - ' . $seconds . ') ' .
|
|
+ 'GROUP BY profile_id');
|
|
+
|
|
+ $updates = array();
|
|
+
|
|
+ while ($notice->fetch()) {
|
|
+ $updates[] = array($notice->profile_id, $notice->max_id);
|
|
+ }
|
|
+
|
|
+ return $updates;
|
|
+ }
|
|
+
|
|
+ function is_readonly() {
|
|
+ return true;
|
|
+ }
|
|
hunk ./actions/tag.php 27
|
|
- function handle($args) {
|
|
+ function handle($args) {
|
|
hunk ./actions/tag.php 29
|
|
- parent::handle($args);
|
|
+ parent::handle($args);
|
|
hunk ./actions/tag.php 31
|
|
- # Looks like we're good; show the header
|
|
+ # Looks like we're good; show the header
|
|
hunk ./actions/tag.php 33
|
|
- if (isset($args['tag']) && $args['tag']) {
|
|
- $tag = $args['tag'];
|
|
- common_show_header(sprintf(_("Notices tagged with %s"), $tag),
|
|
- array($this, 'show_header'), $tag,
|
|
- array($this, 'show_top'));
|
|
- $this->show_notices($tag);
|
|
- } else {
|
|
- common_show_header(_("Tags"),
|
|
- array($this, 'show_header'), '',
|
|
- array($this, 'show_top'));
|
|
- $this->show_tags();
|
|
- }
|
|
+ if (isset($args['tag']) && $args['tag']) {
|
|
+ $tag = $args['tag'];
|
|
+ common_show_header(sprintf(_("Notices tagged with %s"), $tag),
|
|
+ array($this, 'show_header'), $tag,
|
|
+ array($this, 'show_top'));
|
|
+ $this->show_notices($tag);
|
|
+ } else {
|
|
+ common_show_header(_("Tags"),
|
|
+ array($this, 'show_header'), '',
|
|
+ array($this, 'show_top'));
|
|
+ $this->show_tags();
|
|
+ }
|
|
hunk ./actions/tag.php 46
|
|
- common_show_footer();
|
|
- }
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/tag.php 49
|
|
- function show_header($tag = false) {
|
|
- if ($tag) {
|
|
- common_element('link', array('rel' => 'alternate',
|
|
- 'href' => common_local_url('tagrss', array('tag' => $tag)),
|
|
- 'type' => 'application/rss+xml',
|
|
- 'title' => sprintf(_('Feed for tag %s'), $tag)));
|
|
- }
|
|
- }
|
|
+ function show_header($tag = false) {
|
|
+ if ($tag) {
|
|
+ common_element('link', array('rel' => 'alternate',
|
|
+ 'href' => common_local_url('tagrss', array('tag' => $tag)),
|
|
+ 'type' => 'application/rss+xml',
|
|
+ 'title' => sprintf(_('Feed for tag %s'), $tag)));
|
|
+ }
|
|
+ }
|
|
hunk ./actions/tag.php 58
|
|
- function get_instructions() {
|
|
- return _('Showing most popular tags from the last week');
|
|
- }
|
|
+ function get_instructions() {
|
|
+ return _('Showing most popular tags from the last week');
|
|
+ }
|
|
hunk ./actions/tag.php 62
|
|
- function show_top($tag = false) {
|
|
- if (!$tag) {
|
|
- $instr = $this->get_instructions();
|
|
- $output = common_markup_to_html($instr);
|
|
- common_element_start('div', 'instructions');
|
|
- common_raw($output);
|
|
- common_element_end('div');
|
|
- $this->public_views_menu();
|
|
- }
|
|
- else {
|
|
- $this->show_feeds_list(array(0=>array('href'=>common_local_url('tagrss'),
|
|
- 'type' => 'rss',
|
|
- 'version' => 'RSS 1.0',
|
|
- 'item' => 'tagrss')));
|
|
- }
|
|
- }
|
|
+ function show_top($tag = false) {
|
|
+ if (!$tag) {
|
|
+ $instr = $this->get_instructions();
|
|
+ $output = common_markup_to_html($instr);
|
|
+ common_element_start('div', 'instructions');
|
|
+ common_raw($output);
|
|
+ common_element_end('div');
|
|
+ $this->public_views_menu();
|
|
+ }
|
|
+ else {
|
|
+ $this->show_feeds_list(array(0=>array('href'=>common_local_url('tagrss'),
|
|
+ 'type' => 'rss',
|
|
+ 'version' => 'RSS 1.0',
|
|
+ 'item' => 'tagrss')));
|
|
+ }
|
|
+ }
|
|
hunk ./actions/tag.php 79
|
|
- function show_tags()
|
|
- {
|
|
- # This should probably be cached rather than recalculated
|
|
- $tags = DB_DataObject::factory('Notice_tag');
|
|
+ function show_tags()
|
|
+ {
|
|
+ # This should probably be cached rather than recalculated
|
|
+ $tags = DB_DataObject::factory('Notice_tag');
|
|
hunk ./actions/tag.php 84
|
|
- #Need to clear the selection and then only re-add the field
|
|
- #we are grouping by, otherwise it's not a valid 'group by'
|
|
- #even though MySQL seems to let it slide...
|
|
- $tags->selectAdd();
|
|
- $tags->selectAdd('tag');
|
|
+ #Need to clear the selection and then only re-add the field
|
|
+ #we are grouping by, otherwise it's not a valid 'group by'
|
|
+ #even though MySQL seems to let it slide...
|
|
+ $tags->selectAdd();
|
|
+ $tags->selectAdd('tag');
|
|
hunk ./actions/tag.php 90
|
|
- #Add the aggregated columns...
|
|
- $tags->selectAdd('max(notice_id) as last_notice_id');
|
|
- if(common_config('db','type')=='pgsql') {
|
|
- $calc='sum(exp(-extract(epoch from (now()-created))/%s)) as weight';
|
|
- } else {
|
|
- $calc='sum(exp(-(now() - created)/%s)) as weight';
|
|
- }
|
|
- $tags->selectAdd(sprintf($calc, common_config('tag', 'dropoff')));
|
|
- $tags->groupBy('tag');
|
|
- $tags->orderBy('weight DESC');
|
|
+ #Add the aggregated columns...
|
|
+ $tags->selectAdd('max(notice_id) as last_notice_id');
|
|
+ if(common_config('db','type')=='pgsql') {
|
|
+ $calc='sum(exp(-extract(epoch from (now()-created))/%s)) as weight';
|
|
+ } else {
|
|
+ $calc='sum(exp(-(now() - created)/%s)) as weight';
|
|
+ }
|
|
+ $tags->selectAdd(sprintf($calc, common_config('tag', 'dropoff')));
|
|
+ $tags->groupBy('tag');
|
|
+ $tags->orderBy('weight DESC');
|
|
hunk ./actions/tag.php 101
|
|
- # $tags->whereAdd('created > "' . strftime('%Y-%m-%d %H:%M:%S', strtotime('-1 MONTH')) . '"');
|
|
+ # $tags->whereAdd('created > "' . strftime('%Y-%m-%d %H:%M:%S', strtotime('-1 MONTH')) . '"');
|
|
hunk ./actions/tag.php 103
|
|
- $tags->limit(TAGS_PER_PAGE);
|
|
+ $tags->limit(TAGS_PER_PAGE);
|
|
hunk ./actions/tag.php 105
|
|
- $cnt = $tags->find();
|
|
+ $cnt = $tags->find();
|
|
hunk ./actions/tag.php 107
|
|
- if ($cnt > 0) {
|
|
- common_element_start('p', 'tagcloud');
|
|
+ if ($cnt > 0) {
|
|
+ common_element_start('p', 'tagcloud');
|
|
hunk ./actions/tag.php 110
|
|
- $tw = array();
|
|
- $sum = 0;
|
|
- while ($tags->fetch()) {
|
|
- $tw[$tags->tag] = $tags->weight;
|
|
- $sum += $tags->weight;
|
|
- }
|
|
+ $tw = array();
|
|
+ $sum = 0;
|
|
+ while ($tags->fetch()) {
|
|
+ $tw[$tags->tag] = $tags->weight;
|
|
+ $sum += $tags->weight;
|
|
+ }
|
|
hunk ./actions/tag.php 117
|
|
- ksort($tw);
|
|
+ ksort($tw);
|
|
hunk ./actions/tag.php 119
|
|
- foreach ($tw as $tag => $weight) {
|
|
- $this->show_tag($tag, $weight, $weight/$sum);
|
|
- }
|
|
+ foreach ($tw as $tag => $weight) {
|
|
+ $this->show_tag($tag, $weight, $weight/$sum);
|
|
+ }
|
|
hunk ./actions/tag.php 123
|
|
- common_element_end('p');
|
|
- }
|
|
- }
|
|
+ common_element_end('p');
|
|
+ }
|
|
+ }
|
|
hunk ./actions/tag.php 127
|
|
- function show_tag($tag, $weight, $relative) {
|
|
+ function show_tag($tag, $weight, $relative) {
|
|
hunk ./actions/tag.php 129
|
|
- # XXX: these should probably tune to the size of the site
|
|
- if ($relative > 0.1) {
|
|
- $cls = 'largest';
|
|
- } else if ($relative > 0.05) {
|
|
- $cls = 'verylarge';
|
|
- } else if ($relative > 0.02) {
|
|
- $cls = 'large';
|
|
- } else if ($relative > 0.01) {
|
|
- $cls = 'medium';
|
|
- } else if ($relative > 0.005) {
|
|
- $cls = 'small';
|
|
- } else if ($relative > 0.002) {
|
|
- $cls = 'verysmall';
|
|
- } else {
|
|
- $cls = 'smallest';
|
|
- }
|
|
+ # XXX: these should probably tune to the size of the site
|
|
+ if ($relative > 0.1) {
|
|
+ $cls = 'largest';
|
|
+ } else if ($relative > 0.05) {
|
|
+ $cls = 'verylarge';
|
|
+ } else if ($relative > 0.02) {
|
|
+ $cls = 'large';
|
|
+ } else if ($relative > 0.01) {
|
|
+ $cls = 'medium';
|
|
+ } else if ($relative > 0.005) {
|
|
+ $cls = 'small';
|
|
+ } else if ($relative > 0.002) {
|
|
+ $cls = 'verysmall';
|
|
+ } else {
|
|
+ $cls = 'smallest';
|
|
+ }
|
|
hunk ./actions/tag.php 146
|
|
- common_element('a', array('class' => "$cls weight-$weight relative-$relative",
|
|
- 'href' => common_local_url('tag', array('tag' => $tag))),
|
|
- $tag);
|
|
- common_text(' ');
|
|
- }
|
|
+ common_element('a', array('class' => "$cls weight-$weight relative-$relative",
|
|
+ 'href' => common_local_url('tag', array('tag' => $tag))),
|
|
+ $tag);
|
|
+ common_text(' ');
|
|
+ }
|
|
hunk ./actions/tag.php 152
|
|
- function show_notices($tag) {
|
|
+ function show_notices($tag) {
|
|
hunk ./actions/tag.php 154
|
|
- $cnt = 0;
|
|
+ $cnt = 0;
|
|
hunk ./actions/tag.php 156
|
|
- $page = ($this->arg('page')) ? ($this->arg('page')+0) : 1;
|
|
+ $page = ($this->arg('page')) ? ($this->arg('page')+0) : 1;
|
|
hunk ./actions/tag.php 158
|
|
- $notice = Notice_tag::getStream($tag, (($page-1)*NOTICES_PER_PAGE), NOTICES_PER_PAGE + 1);
|
|
+ $notice = Notice_tag::getStream($tag, (($page-1)*NOTICES_PER_PAGE), NOTICES_PER_PAGE + 1);
|
|
hunk ./actions/tag.php 162
|
|
- common_pagination($page > 1, $cnt > NOTICES_PER_PAGE,
|
|
- $page, 'tag', array('tag' => $tag));
|
|
- }
|
|
+ common_pagination($page > 1, $cnt > NOTICES_PER_PAGE,
|
|
+ $page, 'tag', array('tag' => $tag));
|
|
+ }
|
|
hunk ./actions/tagother.php 26
|
|
- function handle($args) {
|
|
+ function handle($args) {
|
|
hunk ./actions/tagother.php 28
|
|
- parent::handle($args);
|
|
+ parent::handle($args);
|
|
hunk ./actions/tagother.php 30
|
|
- if (!common_logged_in()) {
|
|
- $this->client_error(_('Not logged in'), 403);
|
|
- return;
|
|
- }
|
|
+ if (!common_logged_in()) {
|
|
+ $this->client_error(_('Not logged in'), 403);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/tagother.php 35
|
|
- if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
|
- $this->save_tags();
|
|
- } else {
|
|
- $id = $this->trimmed('id');
|
|
- if (!$id) {
|
|
- $this->client_error(_('No id argument.'));
|
|
- return;
|
|
- }
|
|
- $profile = Profile::staticGet('id', $id);
|
|
- if (!$profile) {
|
|
- $this->client_error(_('No profile with that ID.'));
|
|
- return;
|
|
- }
|
|
- $this->show_form($profile);
|
|
- }
|
|
- }
|
|
+ if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
|
+ $this->save_tags();
|
|
+ } else {
|
|
+ $id = $this->trimmed('id');
|
|
+ if (!$id) {
|
|
+ $this->client_error(_('No id argument.'));
|
|
+ return;
|
|
+ }
|
|
+ $profile = Profile::staticGet('id', $id);
|
|
+ if (!$profile) {
|
|
+ $this->client_error(_('No profile with that ID.'));
|
|
+ return;
|
|
+ }
|
|
+ $this->show_form($profile);
|
|
+ }
|
|
+ }
|
|
hunk ./actions/tagother.php 52
|
|
- function show_form($profile, $error=NULL) {
|
|
+ function show_form($profile, $error=NULL) {
|
|
hunk ./actions/tagother.php 54
|
|
- $user = common_current_user();
|
|
+ $user = common_current_user();
|
|
hunk ./actions/tagother.php 56
|
|
- common_show_header(_('Tag a person'),
|
|
- NULL, array($profile, $error), array($this, 'show_top'));
|
|
+ common_show_header(_('Tag a person'),
|
|
+ NULL, array($profile, $error), array($this, 'show_top'));
|
|
hunk ./actions/tagother.php 59
|
|
- $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE);
|
|
+ $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE);
|
|
hunk ./actions/tagother.php 61
|
|
- common_element('img', array('src' => ($avatar) ? common_avatar_display_url($avatar) : common_default_avatar(AVATAR_PROFILE_SIZE),
|
|
- 'class' => 'avatar stream',
|
|
- 'width' => AVATAR_PROFILE_SIZE,
|
|
- 'height' => AVATAR_PROFILE_SIZE,
|
|
- 'alt' =>
|
|
- ($profile->fullname) ? $profile->fullname :
|
|
- $profile->nickname));
|
|
+ common_element('img', array('src' => ($avatar) ? common_avatar_display_url($avatar) : common_default_avatar(AVATAR_PROFILE_SIZE),
|
|
+ 'class' => 'avatar stream',
|
|
+ 'width' => AVATAR_PROFILE_SIZE,
|
|
+ 'height' => AVATAR_PROFILE_SIZE,
|
|
+ 'alt' =>
|
|
+ ($profile->fullname) ? $profile->fullname :
|
|
+ $profile->nickname));
|
|
hunk ./actions/tagother.php 69
|
|
- common_element('a', array('href' => $profile->profileurl,
|
|
- 'class' => 'external profile nickname'),
|
|
- $profile->nickname);
|
|
+ common_element('a', array('href' => $profile->profileurl,
|
|
+ 'class' => 'external profile nickname'),
|
|
+ $profile->nickname);
|
|
hunk ./actions/tagother.php 73
|
|
- if ($profile->fullname) {
|
|
- common_element_start('div', 'fullname');
|
|
- if ($profile->homepage) {
|
|
- common_element('a', array('href' => $profile->homepage),
|
|
- $profile->fullname);
|
|
- } else {
|
|
- common_text($profile->fullname);
|
|
- }
|
|
- common_element_end('div');
|
|
- }
|
|
- if ($profile->location) {
|
|
- common_element('div', 'location', $profile->location);
|
|
- }
|
|
- if ($profile->bio) {
|
|
- common_element('div', 'bio', $profile->bio);
|
|
- }
|
|
+ if ($profile->fullname) {
|
|
+ common_element_start('div', 'fullname');
|
|
+ if ($profile->homepage) {
|
|
+ common_element('a', array('href' => $profile->homepage),
|
|
+ $profile->fullname);
|
|
+ } else {
|
|
+ common_text($profile->fullname);
|
|
+ }
|
|
+ common_element_end('div');
|
|
+ }
|
|
+ if ($profile->location) {
|
|
+ common_element('div', 'location', $profile->location);
|
|
+ }
|
|
+ if ($profile->bio) {
|
|
+ common_element('div', 'bio', $profile->bio);
|
|
+ }
|
|
hunk ./actions/tagother.php 90
|
|
- common_element_start('form', array('method' => 'post',
|
|
- 'id' => 'tag_user',
|
|
- 'name' => 'tagother',
|
|
- 'action' => $this->self_url()));
|
|
- common_hidden('token', common_session_token());
|
|
- common_hidden('id', $profile->id);
|
|
- common_input('tags', _('Tags'),
|
|
- ($this->arg('tags')) ? $this->arg('tags') : implode(' ', Profile_tag::getTags($user->id, $profile->id)),
|
|
- _('Tags for this user (letters, numbers, -, ., and _), comma- or space- separated'));
|
|
+ common_element_start('form', array('method' => 'post',
|
|
+ 'id' => 'tag_user',
|
|
+ 'name' => 'tagother',
|
|
+ 'action' => $this->self_url()));
|
|
+ common_hidden('token', common_session_token());
|
|
+ common_hidden('id', $profile->id);
|
|
+ common_input('tags', _('Tags'),
|
|
+ ($this->arg('tags')) ? $this->arg('tags') : implode(' ', Profile_tag::getTags($user->id, $profile->id)),
|
|
+ _('Tags for this user (letters, numbers, -, ., and _), comma- or space- separated'));
|
|
hunk ./actions/tagother.php 100
|
|
- common_submit('save', _('Save'));
|
|
- common_element_end('form');
|
|
- common_show_footer();
|
|
+ common_submit('save', _('Save'));
|
|
+ common_element_end('form');
|
|
+ common_show_footer();
|
|
hunk ./actions/tagother.php 104
|
|
- }
|
|
+ }
|
|
hunk ./actions/tagother.php 106
|
|
- function save_tags() {
|
|
+ function save_tags() {
|
|
hunk ./actions/tagother.php 108
|
|
- $id = $this->trimmed('id');
|
|
- $tagstring = $this->trimmed('tags');
|
|
- $token = $this->trimmed('token');
|
|
+ $id = $this->trimmed('id');
|
|
+ $tagstring = $this->trimmed('tags');
|
|
+ $token = $this->trimmed('token');
|
|
hunk ./actions/tagother.php 112
|
|
- if (!$token || $token != common_session_token()) {
|
|
- $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
- return;
|
|
- }
|
|
+ if (!$token || $token != common_session_token()) {
|
|
+ $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/tagother.php 117
|
|
- $profile = Profile::staticGet('id', $id);
|
|
+ $profile = Profile::staticGet('id', $id);
|
|
hunk ./actions/tagother.php 119
|
|
- if (!$profile) {
|
|
- $this->client_error(_('No such profile.'));
|
|
- return;
|
|
- }
|
|
+ if (!$profile) {
|
|
+ $this->client_error(_('No such profile.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/tagother.php 124
|
|
- if (is_string($tagstring) && strlen($tagstring) > 0) {
|
|
+ if (is_string($tagstring) && strlen($tagstring) > 0) {
|
|
hunk ./actions/tagother.php 126
|
|
- $tags = array_map('common_canonical_tag',
|
|
- preg_split('/[\s,]+/', $tagstring));
|
|
+ $tags = array_map('common_canonical_tag',
|
|
+ preg_split('/[\s,]+/', $tagstring));
|
|
hunk ./actions/tagother.php 129
|
|
- foreach ($tags as $tag) {
|
|
- if (!common_valid_profile_tag($tag)) {
|
|
- $this->show_form($profile, sprintf(_('Invalid tag: "%s"'), $tag));
|
|
- return;
|
|
- }
|
|
- }
|
|
- } else {
|
|
- $tags = array();
|
|
- }
|
|
+ foreach ($tags as $tag) {
|
|
+ if (!common_valid_profile_tag($tag)) {
|
|
+ $this->show_form($profile, sprintf(_('Invalid tag: "%s"'), $tag));
|
|
+ return;
|
|
+ }
|
|
+ }
|
|
+ } else {
|
|
+ $tags = array();
|
|
+ }
|
|
hunk ./actions/tagother.php 139
|
|
- $user = common_current_user();
|
|
+ $user = common_current_user();
|
|
hunk ./actions/tagother.php 141
|
|
- if (!Subscription::pkeyGet(array('subscriber' => $user->id,
|
|
- 'subscribed' => $profile->id)) &&
|
|
- !Subscription::pkeyGet(array('subscriber' => $profile->id,
|
|
- 'subscribed' => $user->id)))
|
|
- {
|
|
- $this->client_error(_('You can only tag people you are subscribed to or who are subscribed to you.'));
|
|
- return;
|
|
- }
|
|
+ if (!Subscription::pkeyGet(array('subscriber' => $user->id,
|
|
+ 'subscribed' => $profile->id)) &&
|
|
+ !Subscription::pkeyGet(array('subscriber' => $profile->id,
|
|
+ 'subscribed' => $user->id)))
|
|
+ {
|
|
+ $this->client_error(_('You can only tag people you are subscribed to or who are subscribed to you.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/tagother.php 150
|
|
- $result = Profile_tag::setTags($user->id, $profile->id, $tags);
|
|
+ $result = Profile_tag::setTags($user->id, $profile->id, $tags);
|
|
hunk ./actions/tagother.php 152
|
|
- if (!$result) {
|
|
- $this->client_error(_('Could not save tags.'));
|
|
- return;
|
|
- }
|
|
+ if (!$result) {
|
|
+ $this->client_error(_('Could not save tags.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/tagother.php 157
|
|
- $action = $user->isSubscribed($profile) ? 'subscriptions' : 'subscribers';
|
|
+ $action = $user->isSubscribed($profile) ? 'subscriptions' : 'subscribers';
|
|
hunk ./actions/tagother.php 159
|
|
- if ($this->boolean('ajax')) {
|
|
- common_start_html('text/xml');
|
|
- common_element_start('head');
|
|
- common_element('title', null, _('Tags'));
|
|
- common_element_end('head');
|
|
- common_element_start('body');
|
|
- common_element_start('p', 'subtags');
|
|
- foreach ($tags as $tag) {
|
|
- common_element('a', array('href' => common_local_url($action,
|
|
- array('nickname' => $user->nickname,
|
|
- 'tag' => $tag))),
|
|
- $tag);
|
|
- }
|
|
- common_element_end('p');
|
|
- common_element_end('body');
|
|
- common_element_end('html');
|
|
- } else {
|
|
- common_redirect(common_local_url($action, array('nickname' =>
|
|
- $user->nickname)));
|
|
+ if ($this->boolean('ajax')) {
|
|
+ common_start_html('text/xml');
|
|
+ common_element_start('head');
|
|
+ common_element('title', null, _('Tags'));
|
|
+ common_element_end('head');
|
|
+ common_element_start('body');
|
|
+ common_element_start('p', 'subtags');
|
|
+ foreach ($tags as $tag) {
|
|
+ common_element('a', array('href' => common_local_url($action,
|
|
+ array('nickname' => $user->nickname,
|
|
+ 'tag' => $tag))),
|
|
+ $tag);
|
|
+ }
|
|
+ common_element_end('p');
|
|
+ common_element_end('body');
|
|
+ common_element_end('html');
|
|
+ } else {
|
|
+ common_redirect(common_local_url($action, array('nickname' =>
|
|
+ $user->nickname)));
|
|
hunk ./actions/tagother.php 179
|
|
- }
|
|
+ }
|
|
hunk ./actions/tagother.php 181
|
|
- function show_top($arr = NULL) {
|
|
- list($profile, $error) = $arr;
|
|
- if ($error) {
|
|
- common_element('p', 'error', $error);
|
|
- } else {
|
|
- common_element_start('div', 'instructions');
|
|
- common_element('p', NULL,
|
|
- _('Use this form to add tags to your subscribers or subscriptions.'));
|
|
- common_element_end('div');
|
|
- }
|
|
- }
|
|
+ function show_top($arr = NULL) {
|
|
+ list($profile, $error) = $arr;
|
|
+ if ($error) {
|
|
+ common_element('p', 'error', $error);
|
|
+ } else {
|
|
+ common_element_start('div', 'instructions');
|
|
+ common_element('p', NULL,
|
|
+ _('Use this form to add tags to your subscribers or subscriptions.'));
|
|
+ common_element_end('div');
|
|
+ }
|
|
+ }
|
|
hunk ./actions/tagrss.php 28
|
|
- function init() {
|
|
- $tag = $this->trimmed('tag');
|
|
- $this->tag = Notice_tag::staticGet('tag', $tag);
|
|
+ function init() {
|
|
+ $tag = $this->trimmed('tag');
|
|
+ $this->tag = Notice_tag::staticGet('tag', $tag);
|
|
hunk ./actions/tagrss.php 32
|
|
- if (!$this->tag) {
|
|
- common_user_error(_('No such tag.'));
|
|
- return false;
|
|
- } else {
|
|
- return true;
|
|
- }
|
|
- }
|
|
+ if (!$this->tag) {
|
|
+ common_user_error(_('No such tag.'));
|
|
+ return false;
|
|
+ } else {
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/tagrss.php 40
|
|
- function get_notices($limit=0) {
|
|
- $tag = $this->tag;
|
|
+ function get_notices($limit=0) {
|
|
+ $tag = $this->tag;
|
|
hunk ./actions/tagrss.php 43
|
|
- if (is_null($tag)) {
|
|
- return NULL;
|
|
- }
|
|
+ if (is_null($tag)) {
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./actions/tagrss.php 47
|
|
- $notice = Notice_tag::getStream($tag->tag, 0, ($limit == 0) ? NOTICES_PER_PAGE : $limit);
|
|
+ $notice = Notice_tag::getStream($tag->tag, 0, ($limit == 0) ? NOTICES_PER_PAGE : $limit);
|
|
hunk ./actions/tagrss.php 49
|
|
- while ($notice->fetch()) {
|
|
- $notices[] = clone($notice);
|
|
- }
|
|
+ while ($notice->fetch()) {
|
|
+ $notices[] = clone($notice);
|
|
+ }
|
|
hunk ./actions/tagrss.php 53
|
|
- return $notices;
|
|
- }
|
|
+ return $notices;
|
|
+ }
|
|
hunk ./actions/tagrss.php 56
|
|
- function get_channel() {
|
|
- $tag = $this->tag->tag;
|
|
+ function get_channel() {
|
|
+ $tag = $this->tag->tag;
|
|
hunk ./actions/tagrss.php 59
|
|
- $c = array('url' => common_local_url('tagrss', array('tag' => $tagname)),
|
|
- 'title' => $tagname,
|
|
- 'link' => common_local_url('tagrss', array('tag' => $tagname)),
|
|
- 'description' => sprintf(_('Microblog tagged with %s'), $tagname));
|
|
- return $c;
|
|
- }
|
|
+ $c = array('url' => common_local_url('tagrss', array('tag' => $tagname)),
|
|
+ 'title' => $tagname,
|
|
+ 'link' => common_local_url('tagrss', array('tag' => $tagname)),
|
|
+ 'description' => sprintf(_('Microblog tagged with %s'), $tagname));
|
|
+ return $c;
|
|
+ }
|
|
hunk ./actions/twitapiaccount.php 26
|
|
- function verify_credentials($args, $apidata) {
|
|
- parent::handle($args);
|
|
+ function verify_credentials($args, $apidata) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/twitapiaccount.php 29
|
|
- if (!in_array($apidata['content-type'], array('xml', 'json'))) {
|
|
- common_user_error(_('API method not found!'), $code = 404);
|
|
- return;
|
|
- }
|
|
+ if (!in_array($apidata['content-type'], array('xml', 'json'))) {
|
|
+ common_user_error(_('API method not found!'), $code = 404);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapiaccount.php 34
|
|
- $this->show_extended_profile($apidata['user'], $apidata);
|
|
- }
|
|
+ $this->show_extended_profile($apidata['user'], $apidata);
|
|
+ }
|
|
hunk ./actions/twitapiaccount.php 37
|
|
- function end_session($args, $apidata) {
|
|
- parent::handle($args);
|
|
- common_server_error(_('API method under construction.'), $code=501);
|
|
- }
|
|
+ function end_session($args, $apidata) {
|
|
+ parent::handle($args);
|
|
+ common_server_error(_('API method under construction.'), $code=501);
|
|
+ }
|
|
hunk ./actions/twitapiaccount.php 42
|
|
- function update_location($args, $apidata) {
|
|
- parent::handle($args);
|
|
+ function update_location($args, $apidata) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/twitapiaccount.php 45
|
|
- if ($_SERVER['REQUEST_METHOD'] != 'POST') {
|
|
- $this->client_error(_('This method requires a POST.'), 400, $apidata['content-type']);
|
|
- return;
|
|
- }
|
|
+ if ($_SERVER['REQUEST_METHOD'] != 'POST') {
|
|
+ $this->client_error(_('This method requires a POST.'), 400, $apidata['content-type']);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapiaccount.php 50
|
|
- $location = trim($this->arg('location'));
|
|
+ $location = trim($this->arg('location'));
|
|
hunk ./actions/twitapiaccount.php 52
|
|
- if (!is_null($location) && strlen($location) > 255) {
|
|
+ if (!is_null($location) && strlen($location) > 255) {
|
|
hunk ./actions/twitapiaccount.php 54
|
|
- // XXX: But Twitter just truncates and runs with it. -- Zach
|
|
- $this->client_error(_('That\'s too long. Max notice size is 255 chars.'), 406, $apidate['content-type']);
|
|
- return;
|
|
- }
|
|
+ // XXX: But Twitter just truncates and runs with it. -- Zach
|
|
+ $this->client_error(_('That\'s too long. Max notice size is 255 chars.'), 406, $apidate['content-type']);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapiaccount.php 59
|
|
- $user = $apidata['user'];
|
|
- $profile = $user->getProfile();
|
|
+ $user = $apidata['user'];
|
|
+ $profile = $user->getProfile();
|
|
hunk ./actions/twitapiaccount.php 62
|
|
- if (!$profile) {
|
|
- common_server_error(_('User has no profile.'));
|
|
- return;
|
|
- }
|
|
+ if (!$profile) {
|
|
+ common_server_error(_('User has no profile.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapiaccount.php 67
|
|
- $orig_profile = clone($profile);
|
|
- $profile->location = $location;
|
|
+ $orig_profile = clone($profile);
|
|
+ $profile->location = $location;
|
|
hunk ./actions/twitapiaccount.php 70
|
|
- $result = $profile->update($orig_profile);
|
|
+ $result = $profile->update($orig_profile);
|
|
hunk ./actions/twitapiaccount.php 72
|
|
- if (!$result) {
|
|
- common_log_db_error($profile, 'UPDATE', __FILE__);
|
|
- common_server_error(_('Couldn\'t save profile.'));
|
|
- return;
|
|
- }
|
|
+ if (!$result) {
|
|
+ common_log_db_error($profile, 'UPDATE', __FILE__);
|
|
+ common_server_error(_('Couldn\'t save profile.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapiaccount.php 78
|
|
- common_broadcast_profile($profile);
|
|
- $type = $apidata['content-type'];
|
|
+ common_broadcast_profile($profile);
|
|
+ $type = $apidata['content-type'];
|
|
hunk ./actions/twitapiaccount.php 81
|
|
- $this->init_document($type);
|
|
- $this->show_profile($profile, $type);
|
|
- $this->end_document($type);
|
|
- }
|
|
+ $this->init_document($type);
|
|
+ $this->show_profile($profile, $type);
|
|
+ $this->end_document($type);
|
|
+ }
|
|
hunk ./actions/twitapiaccount.php 87
|
|
- function update_delivery_device($args, $apidata) {
|
|
- parent::handle($args);
|
|
- common_server_error(_('API method under construction.'), $code=501);
|
|
- }
|
|
+ function update_delivery_device($args, $apidata) {
|
|
+ parent::handle($args);
|
|
+ common_server_error(_('API method under construction.'), $code=501);
|
|
+ }
|
|
hunk ./actions/twitapiaccount.php 92
|
|
- function rate_limit_status($args, $apidata) {
|
|
- parent::handle($args);
|
|
- common_server_error(_('API method under construction.'), $code=501);
|
|
- }
|
|
+ function rate_limit_status($args, $apidata) {
|
|
+ parent::handle($args);
|
|
+ common_server_error(_('API method under construction.'), $code=501);
|
|
+ }
|
|
hunk ./actions/twitapiblocks.php 26
|
|
- function create($args, $apidata) {
|
|
+ function create($args, $apidata) {
|
|
hunk ./actions/twitapiblocks.php 28
|
|
- parent::handle($args);
|
|
+ parent::handle($args);
|
|
hunk ./actions/twitapiblocks.php 30
|
|
- $blockee = $this->get_user($apidata['api_arg'], $apidata);
|
|
+ $blockee = $this->get_user($apidata['api_arg'], $apidata);
|
|
hunk ./actions/twitapiblocks.php 33
|
|
- $this->client_error('Not Found', 404, $apidata['content-type']);
|
|
- return;
|
|
+ $this->client_error('Not Found', 404, $apidata['content-type']);
|
|
+ return;
|
|
hunk ./actions/twitapiblocks.php 45
|
|
- common_server_error(_('Block user failed.'));
|
|
+ common_server_error(_('Block user failed.'));
|
|
hunk ./actions/twitapiblocks.php 47
|
|
- }
|
|
+ }
|
|
hunk ./actions/twitapiblocks.php 49
|
|
- function destroy($args, $apidata) {
|
|
- parent::handle($args);
|
|
- $blockee = $this->get_user($apidata['api_arg'], $apidata);
|
|
+ function destroy($args, $apidata) {
|
|
+ parent::handle($args);
|
|
+ $blockee = $this->get_user($apidata['api_arg'], $apidata);
|
|
hunk ./actions/twitapiblocks.php 54
|
|
- $this->client_error('Not Found', 404, $apidata['content-type']);
|
|
- return;
|
|
+ $this->client_error('Not Found', 404, $apidata['content-type']);
|
|
+ return;
|
|
hunk ./actions/twitapiblocks.php 66
|
|
- common_server_error(_('Unblock user failed.'));
|
|
+ common_server_error(_('Unblock user failed.'));
|
|
hunk ./actions/twitapiblocks.php 68
|
|
- }
|
|
+ }
|
|
hunk ./actions/twitapidirect_messages.php 26
|
|
- function direct_messages($args, $apidata) {
|
|
- parent::handle($args);
|
|
- return $this->show_messages($args, $apidata, 'received');
|
|
- }
|
|
+ function direct_messages($args, $apidata) {
|
|
+ parent::handle($args);
|
|
+ return $this->show_messages($args, $apidata, 'received');
|
|
+ }
|
|
hunk ./actions/twitapidirect_messages.php 31
|
|
- function sent($args, $apidata) {
|
|
- parent::handle($args);
|
|
- return $this->show_messages($args, $apidata, 'sent');
|
|
- }
|
|
+ function sent($args, $apidata) {
|
|
+ parent::handle($args);
|
|
+ return $this->show_messages($args, $apidata, 'sent');
|
|
+ }
|
|
hunk ./actions/twitapidirect_messages.php 36
|
|
- function show_messages($args, $apidata, $type) {
|
|
+ function show_messages($args, $apidata, $type) {
|
|
hunk ./actions/twitapidirect_messages.php 38
|
|
- $user = $apidata['user'];
|
|
+ $user = $apidata['user'];
|
|
hunk ./actions/twitapidirect_messages.php 40
|
|
- $count = $this->arg('count');
|
|
- $since = $this->arg('since');
|
|
- $since_id = $this->arg('since_id');
|
|
- $before_id = $this->arg('before_id');
|
|
+ $count = $this->arg('count');
|
|
+ $since = $this->arg('since');
|
|
+ $since_id = $this->arg('since_id');
|
|
+ $before_id = $this->arg('before_id');
|
|
hunk ./actions/twitapidirect_messages.php 45
|
|
- $page = $this->arg('page');
|
|
+ $page = $this->arg('page');
|
|
hunk ./actions/twitapidirect_messages.php 47
|
|
- if (!$page) {
|
|
- $page = 1;
|
|
- }
|
|
+ if (!$page) {
|
|
+ $page = 1;
|
|
+ }
|
|
hunk ./actions/twitapidirect_messages.php 51
|
|
- if (!$count) {
|
|
- $count = 20;
|
|
- }
|
|
+ if (!$count) {
|
|
+ $count = 20;
|
|
+ }
|
|
hunk ./actions/twitapidirect_messages.php 55
|
|
- $message = new Message();
|
|
+ $message = new Message();
|
|
hunk ./actions/twitapidirect_messages.php 57
|
|
- $title = null;
|
|
- $subtitle = null;
|
|
- $link = null;
|
|
- $server = common_root_url();
|
|
+ $title = null;
|
|
+ $subtitle = null;
|
|
+ $link = null;
|
|
+ $server = common_root_url();
|
|
hunk ./actions/twitapidirect_messages.php 62
|
|
- if ($type == 'received') {
|
|
- $message->to_profile = $user->id;
|
|
- $title = sprintf(_("Direct messages to %s"), $user->nickname);
|
|
- $subtitle = sprintf(_("All the direct messages sent to %s"), $user->nickname);
|
|
- $link = $server . $user->nickname . '/inbox';
|
|
- } else {
|
|
- $message->from_profile = $user->id;
|
|
- $title = _('Direct Messages You\'ve Sent');
|
|
- $subtitle = sprintf(_("All the direct messages sent from %s"), $user->nickname);
|
|
- $link = $server . $user->nickname . '/outbox';
|
|
- }
|
|
+ if ($type == 'received') {
|
|
+ $message->to_profile = $user->id;
|
|
+ $title = sprintf(_("Direct messages to %s"), $user->nickname);
|
|
+ $subtitle = sprintf(_("All the direct messages sent to %s"), $user->nickname);
|
|
+ $link = $server . $user->nickname . '/inbox';
|
|
+ } else {
|
|
+ $message->from_profile = $user->id;
|
|
+ $title = _('Direct Messages You\'ve Sent');
|
|
+ $subtitle = sprintf(_("All the direct messages sent from %s"), $user->nickname);
|
|
+ $link = $server . $user->nickname . '/outbox';
|
|
+ }
|
|
hunk ./actions/twitapidirect_messages.php 74
|
|
- if ($before_id) {
|
|
- $message->whereAdd("id < $before_id");
|
|
- }
|
|
+ if ($before_id) {
|
|
+ $message->whereAdd("id < $before_id");
|
|
+ }
|
|
hunk ./actions/twitapidirect_messages.php 78
|
|
- if ($since_id) {
|
|
- $message->whereAdd("id > $since_id");
|
|
- }
|
|
+ if ($since_id) {
|
|
+ $message->whereAdd("id > $since_id");
|
|
+ }
|
|
hunk ./actions/twitapidirect_messages.php 82
|
|
- $since = strtotime($this->arg('since'));
|
|
+ $since = strtotime($this->arg('since'));
|
|
hunk ./actions/twitapidirect_messages.php 84
|
|
- if ($since) {
|
|
- $d = date('Y-m-d H:i:s', $since);
|
|
- $message->whereAdd("created > '$d'");
|
|
- }
|
|
+ if ($since) {
|
|
+ $d = date('Y-m-d H:i:s', $since);
|
|
+ $message->whereAdd("created > '$d'");
|
|
+ }
|
|
hunk ./actions/twitapidirect_messages.php 89
|
|
- $message->orderBy('created DESC, id DESC');
|
|
- $message->limit((($page-1)*20), $count);
|
|
- $message->find();
|
|
+ $message->orderBy('created DESC, id DESC');
|
|
+ $message->limit((($page-1)*20), $count);
|
|
+ $message->find();
|
|
hunk ./actions/twitapidirect_messages.php 93
|
|
- switch($apidata['content-type']) {
|
|
- case 'xml':
|
|
- $this->show_xml_dmsgs($message);
|
|
- break;
|
|
- case 'rss':
|
|
- $this->show_rss_dmsgs($message, $title, $link, $subtitle);
|
|
- break;
|
|
- case 'atom':
|
|
- $this->show_atom_dmsgs($message, $title, $link, $subtitle);
|
|
- break;
|
|
- case 'json':
|
|
- $this->show_json_dmsgs($message);
|
|
- break;
|
|
- default:
|
|
- common_user_error(_('API method not found!'), $code = 404);
|
|
- }
|
|
+ switch($apidata['content-type']) {
|
|
+ case 'xml':
|
|
+ $this->show_xml_dmsgs($message);
|
|
+ break;
|
|
+ case 'rss':
|
|
+ $this->show_rss_dmsgs($message, $title, $link, $subtitle);
|
|
+ break;
|
|
+ case 'atom':
|
|
+ $this->show_atom_dmsgs($message, $title, $link, $subtitle);
|
|
+ break;
|
|
+ case 'json':
|
|
+ $this->show_json_dmsgs($message);
|
|
+ break;
|
|
+ default:
|
|
+ common_user_error(_('API method not found!'), $code = 404);
|
|
+ }
|
|
hunk ./actions/twitapidirect_messages.php 110
|
|
- }
|
|
+ }
|
|
hunk ./actions/twitapidirect_messages.php 112
|
|
- // had to change this from "new" to "create" to avoid PHP reserved word
|
|
- function create($args, $apidata) {
|
|
- parent::handle($args);
|
|
+ // had to change this from "new" to "create" to avoid PHP reserved word
|
|
+ function create($args, $apidata) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/twitapidirect_messages.php 116
|
|
- if ($_SERVER['REQUEST_METHOD'] != 'POST') {
|
|
- $this->client_error(_('This method requires a POST.'), 400, $apidata['content-type']);
|
|
- return;
|
|
- }
|
|
+ if ($_SERVER['REQUEST_METHOD'] != 'POST') {
|
|
+ $this->client_error(_('This method requires a POST.'), 400, $apidata['content-type']);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapidirect_messages.php 121
|
|
- $user = $apidata['user'];
|
|
- $source = $this->trimmed('source'); // Not supported by Twitter.
|
|
+ $user = $apidata['user'];
|
|
+ $source = $this->trimmed('source'); // Not supported by Twitter.
|
|
hunk ./actions/twitapidirect_messages.php 125
|
|
- if (!$source || in_array($source, $reserved_sources)) {
|
|
- $source = 'api';
|
|
- }
|
|
+ if (!$source || in_array($source, $reserved_sources)) {
|
|
+ $source = 'api';
|
|
+ }
|
|
hunk ./actions/twitapidirect_messages.php 129
|
|
- $content = $this->trimmed('text');
|
|
+ $content = $this->trimmed('text');
|
|
hunk ./actions/twitapidirect_messages.php 131
|
|
- if (!$content) {
|
|
- $this->client_error(_('No message text!'), $code = 406, $apidata['content-type']);
|
|
- } else {
|
|
- $content_shortened = common_shorten_links($content);
|
|
- if (mb_strlen($content_shortened) > 140) {
|
|
- $this->client_error(_('That\'s too long. Max message size is 140 chars.'),
|
|
- $code = 406, $apidata['content-type']);
|
|
- return;
|
|
- }
|
|
- }
|
|
+ if (!$content) {
|
|
+ $this->client_error(_('No message text!'), $code = 406, $apidata['content-type']);
|
|
+ } else {
|
|
+ $content_shortened = common_shorten_links($content);
|
|
+ if (mb_strlen($content_shortened) > 140) {
|
|
+ $this->client_error(_('That\'s too long. Max message size is 140 chars.'),
|
|
+ $code = 406, $apidata['content-type']);
|
|
+ return;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/twitapidirect_messages.php 142
|
|
- $other = $this->get_user($this->trimmed('user'));
|
|
+ $other = $this->get_user($this->trimmed('user'));
|
|
hunk ./actions/twitapidirect_messages.php 144
|
|
- if (!$other) {
|
|
- $this->client_error(_('Recipient user not found.'), $code = 403, $apidata['content-type']);
|
|
- return;
|
|
- } else if (!$user->mutuallySubscribed($other)) {
|
|
- $this->client_error(_('Can\'t send direct messages to users who aren\'t your friend.'),
|
|
- $code = 403, $apidata['content-type']);
|
|
- return;
|
|
- } else if ($user->id == $other->id) {
|
|
- // Sending msgs to yourself is allowed by Twitter
|
|
- $this->client_error(_('Don\'t send a message to yourself; just say it to yourself quietly instead.'),
|
|
- $code = 403, $apidata['content-type']);
|
|
- return;
|
|
- }
|
|
+ if (!$other) {
|
|
+ $this->client_error(_('Recipient user not found.'), $code = 403, $apidata['content-type']);
|
|
+ return;
|
|
+ } else if (!$user->mutuallySubscribed($other)) {
|
|
+ $this->client_error(_('Can\'t send direct messages to users who aren\'t your friend.'),
|
|
+ $code = 403, $apidata['content-type']);
|
|
+ return;
|
|
+ } else if ($user->id == $other->id) {
|
|
+ // Sending msgs to yourself is allowed by Twitter
|
|
+ $this->client_error(_('Don\'t send a message to yourself; just say it to yourself quietly instead.'),
|
|
+ $code = 403, $apidata['content-type']);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapidirect_messages.php 158
|
|
- $message = Message::saveNew($user->id, $other->id,
|
|
- html_entity_decode($content, ENT_NOQUOTES, 'UTF-8'), $source);
|
|
+ $message = Message::saveNew($user->id, $other->id,
|
|
+ html_entity_decode($content, ENT_NOQUOTES, 'UTF-8'), $source);
|
|
hunk ./actions/twitapidirect_messages.php 161
|
|
- if (is_string($message)) {
|
|
- $this->server_error($message);
|
|
- return;
|
|
- }
|
|
+ if (is_string($message)) {
|
|
+ $this->server_error($message);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapidirect_messages.php 166
|
|
- $this->notify($user, $other, $message);
|
|
+ $this->notify($user, $other, $message);
|
|
hunk ./actions/twitapidirect_messages.php 168
|
|
- if ($apidata['content-type'] == 'xml') {
|
|
- $this->show_single_xml_dmsg($message);
|
|
- } elseif ($apidata['content-type'] == 'json') {
|
|
- $this->show_single_json_dmsg($message);
|
|
- }
|
|
+ if ($apidata['content-type'] == 'xml') {
|
|
+ $this->show_single_xml_dmsg($message);
|
|
+ } elseif ($apidata['content-type'] == 'json') {
|
|
+ $this->show_single_json_dmsg($message);
|
|
+ }
|
|
hunk ./actions/twitapidirect_messages.php 174
|
|
- }
|
|
+ }
|
|
hunk ./actions/twitapidirect_messages.php 176
|
|
- function destroy($args, $apidata) {
|
|
- parent::handle($args);
|
|
- common_server_error(_('API method under construction.'), $code=501);
|
|
- }
|
|
+ function destroy($args, $apidata) {
|
|
+ parent::handle($args);
|
|
+ common_server_error(_('API method under construction.'), $code=501);
|
|
+ }
|
|
hunk ./actions/twitapidirect_messages.php 181
|
|
- function show_xml_dmsgs($message) {
|
|
+ function show_xml_dmsgs($message) {
|
|
hunk ./actions/twitapidirect_messages.php 183
|
|
- $this->init_document('xml');
|
|
- common_element_start('direct-messages', array('type' => 'array'));
|
|
+ $this->init_document('xml');
|
|
+ common_element_start('direct-messages', array('type' => 'array'));
|
|
hunk ./actions/twitapidirect_messages.php 186
|
|
- if (is_array($messages)) {
|
|
- foreach ($message as $m) {
|
|
- $twitter_dm = $this->twitter_dmsg_array($m);
|
|
- $this->show_twitter_xml_dmsg($twitter_dm);
|
|
- }
|
|
- } else {
|
|
- while ($message->fetch()) {
|
|
- $twitter_dm = $this->twitter_dmsg_array($message);
|
|
- $this->show_twitter_xml_dmsg($twitter_dm);
|
|
- }
|
|
- }
|
|
+ if (is_array($messages)) {
|
|
+ foreach ($message as $m) {
|
|
+ $twitter_dm = $this->twitter_dmsg_array($m);
|
|
+ $this->show_twitter_xml_dmsg($twitter_dm);
|
|
+ }
|
|
+ } else {
|
|
+ while ($message->fetch()) {
|
|
+ $twitter_dm = $this->twitter_dmsg_array($message);
|
|
+ $this->show_twitter_xml_dmsg($twitter_dm);
|
|
+ }
|
|
+ }
|
|
hunk ./actions/twitapidirect_messages.php 198
|
|
- common_element_end('direct-messages');
|
|
- $this->end_document('xml');
|
|
+ common_element_end('direct-messages');
|
|
+ $this->end_document('xml');
|
|
hunk ./actions/twitapidirect_messages.php 201
|
|
- }
|
|
+ }
|
|
hunk ./actions/twitapidirect_messages.php 203
|
|
- function show_json_dmsgs($message) {
|
|
+ function show_json_dmsgs($message) {
|
|
hunk ./actions/twitapidirect_messages.php 205
|
|
- $this->init_document('json');
|
|
+ $this->init_document('json');
|
|
hunk ./actions/twitapidirect_messages.php 207
|
|
- $dmsgs = array();
|
|
+ $dmsgs = array();
|
|
hunk ./actions/twitapidirect_messages.php 209
|
|
- if (is_array($message)) {
|
|
- foreach ($message as $m) {
|
|
- $twitter_dm = $this->twitter_dmsg_array($m);
|
|
- array_push($dmsgs, $twitter_dm);
|
|
- }
|
|
- } else {
|
|
- while ($message->fetch()) {
|
|
- $twitter_dm = $this->twitter_dmsg_array($message);
|
|
- array_push($dmsgs, $twitter_dm);
|
|
- }
|
|
- }
|
|
+ if (is_array($message)) {
|
|
+ foreach ($message as $m) {
|
|
+ $twitter_dm = $this->twitter_dmsg_array($m);
|
|
+ array_push($dmsgs, $twitter_dm);
|
|
+ }
|
|
+ } else {
|
|
+ while ($message->fetch()) {
|
|
+ $twitter_dm = $this->twitter_dmsg_array($message);
|
|
+ array_push($dmsgs, $twitter_dm);
|
|
+ }
|
|
+ }
|
|
hunk ./actions/twitapidirect_messages.php 221
|
|
- $this->show_json_objects($dmsgs);
|
|
- $this->end_document('json');
|
|
+ $this->show_json_objects($dmsgs);
|
|
+ $this->end_document('json');
|
|
hunk ./actions/twitapidirect_messages.php 224
|
|
- }
|
|
+ }
|
|
hunk ./actions/twitapidirect_messages.php 226
|
|
- function show_rss_dmsgs($message, $title, $link, $subtitle) {
|
|
+ function show_rss_dmsgs($message, $title, $link, $subtitle) {
|
|
hunk ./actions/twitapidirect_messages.php 228
|
|
- $this->init_document('rss');
|
|
+ $this->init_document('rss');
|
|
hunk ./actions/twitapidirect_messages.php 230
|
|
- common_element_start('channel');
|
|
- common_element('title', NULL, $title);
|
|
+ common_element_start('channel');
|
|
+ common_element('title', NULL, $title);
|
|
hunk ./actions/twitapidirect_messages.php 233
|
|
- common_element('link', NULL, $link);
|
|
- common_element('description', NULL, $subtitle);
|
|
- common_element('language', NULL, 'en-us');
|
|
- common_element('ttl', NULL, '40');
|
|
+ common_element('link', NULL, $link);
|
|
+ common_element('description', NULL, $subtitle);
|
|
+ common_element('language', NULL, 'en-us');
|
|
+ common_element('ttl', NULL, '40');
|
|
hunk ./actions/twitapidirect_messages.php 238
|
|
- if (is_array($message)) {
|
|
- foreach ($message as $m) {
|
|
- $entry = $this->twitter_rss_dmsg_array($m);
|
|
- $this->show_twitter_rss_item($entry);
|
|
- }
|
|
- } else {
|
|
- while ($message->fetch()) {
|
|
- $entry = $this->twitter_rss_dmsg_array($message);
|
|
- $this->show_twitter_rss_item($entry);
|
|
- }
|
|
- }
|
|
+ if (is_array($message)) {
|
|
+ foreach ($message as $m) {
|
|
+ $entry = $this->twitter_rss_dmsg_array($m);
|
|
+ $this->show_twitter_rss_item($entry);
|
|
+ }
|
|
+ } else {
|
|
+ while ($message->fetch()) {
|
|
+ $entry = $this->twitter_rss_dmsg_array($message);
|
|
+ $this->show_twitter_rss_item($entry);
|
|
+ }
|
|
+ }
|
|
hunk ./actions/twitapidirect_messages.php 250
|
|
- common_element_end('channel');
|
|
- $this->end_twitter_rss();
|
|
+ common_element_end('channel');
|
|
+ $this->end_twitter_rss();
|
|
hunk ./actions/twitapidirect_messages.php 253
|
|
- }
|
|
+ }
|
|
hunk ./actions/twitapidirect_messages.php 255
|
|
- function show_atom_dmsgs($message, $title, $link, $subtitle) {
|
|
+ function show_atom_dmsgs($message, $title, $link, $subtitle) {
|
|
hunk ./actions/twitapidirect_messages.php 257
|
|
- $this->init_document('atom');
|
|
+ $this->init_document('atom');
|
|
hunk ./actions/twitapidirect_messages.php 259
|
|
- common_element('title', NULL, $title);
|
|
- $siteserver = common_config('site', 'server');
|
|
- common_element('id', NULL, "tag:$siteserver,2008:DirectMessage");
|
|
- common_element('link', array('href' => $link, 'rel' => 'alternate', 'type' => 'text/html'), NULL);
|
|
- common_element('updated', NULL, common_date_iso8601(strftime('%c')));
|
|
- common_element('subtitle', NULL, $subtitle);
|
|
+ common_element('title', NULL, $title);
|
|
+ $siteserver = common_config('site', 'server');
|
|
+ common_element('id', NULL, "tag:$siteserver,2008:DirectMessage");
|
|
+ common_element('link', array('href' => $link, 'rel' => 'alternate', 'type' => 'text/html'), NULL);
|
|
+ common_element('updated', NULL, common_date_iso8601(strftime('%c')));
|
|
+ common_element('subtitle', NULL, $subtitle);
|
|
hunk ./actions/twitapidirect_messages.php 266
|
|
- if (is_array($message)) {
|
|
- foreach ($message as $m) {
|
|
- $entry = $this->twitter_rss_dmsg_array($m);
|
|
- $this->show_twitter_atom_entry($entry);
|
|
- }
|
|
- } else {
|
|
- while ($message->fetch()) {
|
|
- $entry = $this->twitter_rss_dmsg_array($message);
|
|
- $this->show_twitter_atom_entry($entry);
|
|
- }
|
|
- }
|
|
+ if (is_array($message)) {
|
|
+ foreach ($message as $m) {
|
|
+ $entry = $this->twitter_rss_dmsg_array($m);
|
|
+ $this->show_twitter_atom_entry($entry);
|
|
+ }
|
|
+ } else {
|
|
+ while ($message->fetch()) {
|
|
+ $entry = $this->twitter_rss_dmsg_array($message);
|
|
+ $this->show_twitter_atom_entry($entry);
|
|
+ }
|
|
+ }
|
|
hunk ./actions/twitapidirect_messages.php 278
|
|
- $this->end_document('atom');
|
|
- }
|
|
+ $this->end_document('atom');
|
|
+ }
|
|
hunk ./actions/twitapidirect_messages.php 281
|
|
- // swiped from MessageAction. Should it be place in util.php?
|
|
- function notify($from, $to, $message) {
|
|
- mail_notify_message($message, $from, $to);
|
|
- # XXX: Jabber, SMS notifications... probably queued
|
|
- }
|
|
+ // swiped from MessageAction. Should it be place in util.php?
|
|
+ function notify($from, $to, $message) {
|
|
+ mail_notify_message($message, $from, $to);
|
|
+ # XXX: Jabber, SMS notifications... probably queued
|
|
+ }
|
|
hunk ./actions/twitapifavorites.php 26
|
|
- function favorites($args, $apidata) {
|
|
- parent::handle($args);
|
|
+ function favorites($args, $apidata) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/twitapifavorites.php 29
|
|
- $this->auth_user = $apidata['user'];
|
|
- $user = $this->get_user($apidata['api_arg'], $apidata);
|
|
+ $this->auth_user = $apidata['user'];
|
|
+ $user = $this->get_user($apidata['api_arg'], $apidata);
|
|
hunk ./actions/twitapifavorites.php 32
|
|
- if (!$user) {
|
|
- $this->client_error('Not Found', 404, $apidata['content-type']);
|
|
- return;
|
|
- }
|
|
+ if (!$user) {
|
|
+ $this->client_error('Not Found', 404, $apidata['content-type']);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapifavorites.php 37
|
|
- $profile = $user->getProfile();
|
|
+ $profile = $user->getProfile();
|
|
hunk ./actions/twitapifavorites.php 39
|
|
- if (!$profile) {
|
|
- common_server_error(_('User has no profile.'));
|
|
- return;
|
|
- }
|
|
+ if (!$profile) {
|
|
+ common_server_error(_('User has no profile.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapifavorites.php 44
|
|
- $page = $this->arg('page');
|
|
+ $page = $this->arg('page');
|
|
hunk ./actions/twitapifavorites.php 46
|
|
- if (!$page) {
|
|
- $page = 1;
|
|
- }
|
|
+ if (!$page) {
|
|
+ $page = 1;
|
|
+ }
|
|
hunk ./actions/twitapifavorites.php 50
|
|
- if (!$count) {
|
|
- $count = 20;
|
|
- }
|
|
+ if (!$count) {
|
|
+ $count = 20;
|
|
+ }
|
|
hunk ./actions/twitapifavorites.php 54
|
|
- $notice = $user->favoriteNotices((($page-1)*20), $count);
|
|
+ $notice = $user->favoriteNotices((($page-1)*20), $count);
|
|
hunk ./actions/twitapifavorites.php 56
|
|
- if (!$notice) {
|
|
- common_server_error(_('Could not retrieve favorite notices.'));
|
|
- return;
|
|
- }
|
|
+ if (!$notice) {
|
|
+ common_server_error(_('Could not retrieve favorite notices.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapifavorites.php 61
|
|
- $sitename = common_config('site', 'name');
|
|
- $siteserver = common_config('site', 'server');
|
|
+ $sitename = common_config('site', 'name');
|
|
+ $siteserver = common_config('site', 'server');
|
|
hunk ./actions/twitapifavorites.php 64
|
|
- $title = sprintf(_('%s / Favorites from %s'), $sitename, $user->nickname);
|
|
- $id = "tag:$siteserver:favorites:".$user->id;
|
|
- $link = common_local_url('favorites', array('nickname' => $user->nickname));
|
|
- $subtitle = sprintf(_('%s updates favorited by %s / %s.'), $sitename, $profile->getBestName(), $user->nickname);
|
|
+ $title = sprintf(_('%s / Favorites from %s'), $sitename, $user->nickname);
|
|
+ $id = "tag:$siteserver:favorites:".$user->id;
|
|
+ $link = common_local_url('favorites', array('nickname' => $user->nickname));
|
|
+ $subtitle = sprintf(_('%s updates favorited by %s / %s.'), $sitename, $profile->getBestName(), $user->nickname);
|
|
hunk ./actions/twitapifavorites.php 69
|
|
- switch($apidata['content-type']) {
|
|
- case 'xml':
|
|
- $this->show_xml_timeline($notice);
|
|
- break;
|
|
- case 'rss':
|
|
- $this->show_rss_timeline($notice, $title, $link, $subtitle);
|
|
- break;
|
|
- case 'atom':
|
|
- $this->show_atom_timeline($notice, $title, $id, $link, $subtitle);
|
|
- break;
|
|
- case 'json':
|
|
- $this->show_json_timeline($notice);
|
|
- break;
|
|
- default:
|
|
- common_user_error(_('API method not found!'), $code = 404);
|
|
- }
|
|
+ switch($apidata['content-type']) {
|
|
+ case 'xml':
|
|
+ $this->show_xml_timeline($notice);
|
|
+ break;
|
|
+ case 'rss':
|
|
+ $this->show_rss_timeline($notice, $title, $link, $subtitle);
|
|
+ break;
|
|
+ case 'atom':
|
|
+ $this->show_atom_timeline($notice, $title, $id, $link, $subtitle);
|
|
+ break;
|
|
+ case 'json':
|
|
+ $this->show_json_timeline($notice);
|
|
+ break;
|
|
+ default:
|
|
+ common_user_error(_('API method not found!'), $code = 404);
|
|
+ }
|
|
hunk ./actions/twitapifavorites.php 86
|
|
- }
|
|
+ }
|
|
hunk ./actions/twitapifavorites.php 88
|
|
- function create($args, $apidata) {
|
|
- parent::handle($args);
|
|
+ function create($args, $apidata) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/twitapifavorites.php 91
|
|
- // Check for RESTfulness
|
|
- if (!in_array($_SERVER['REQUEST_METHOD'], array('POST', 'DELETE'))) {
|
|
- // XXX: Twitter just prints the err msg, no XML / JSON.
|
|
- $this->client_error(_('This method requires a POST or DELETE.'), 400, $apidata['content-type']);
|
|
- return;
|
|
- }
|
|
+ // Check for RESTfulness
|
|
+ if (!in_array($_SERVER['REQUEST_METHOD'], array('POST', 'DELETE'))) {
|
|
+ // XXX: Twitter just prints the err msg, no XML / JSON.
|
|
+ $this->client_error(_('This method requires a POST or DELETE.'), 400, $apidata['content-type']);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapifavorites.php 98
|
|
- if (!in_array($apidata['content-type'], array('xml', 'json'))) {
|
|
- common_user_error(_('API method not found!'), $code = 404);
|
|
- return;
|
|
- }
|
|
+ if (!in_array($apidata['content-type'], array('xml', 'json'))) {
|
|
+ common_user_error(_('API method not found!'), $code = 404);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapifavorites.php 103
|
|
- $this->auth_user = $apidata['user'];
|
|
- $user = $this->auth_user;
|
|
- $notice_id = $apidata['api_arg'];
|
|
- $notice = Notice::staticGet($notice_id);
|
|
+ $this->auth_user = $apidata['user'];
|
|
+ $user = $this->auth_user;
|
|
+ $notice_id = $apidata['api_arg'];
|
|
+ $notice = Notice::staticGet($notice_id);
|
|
hunk ./actions/twitapifavorites.php 108
|
|
- if (!$notice) {
|
|
- $this->client_error(_('No status found with that ID.'), 404, $apidata['content-type']);
|
|
- return;
|
|
- }
|
|
+ if (!$notice) {
|
|
+ $this->client_error(_('No status found with that ID.'), 404, $apidata['content-type']);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapifavorites.php 113
|
|
- // XXX: Twitter lets you fave things repeatedly via api.
|
|
- if ($user->hasFave($notice)) {
|
|
- $this->client_error(_('This notice is already a favorite!'), 403, $apidata['content-type']);
|
|
- return;
|
|
- }
|
|
+ // XXX: Twitter lets you fave things repeatedly via api.
|
|
+ if ($user->hasFave($notice)) {
|
|
+ $this->client_error(_('This notice is already a favorite!'), 403, $apidata['content-type']);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapifavorites.php 119
|
|
- $fave = Fave::addNew($user, $notice);
|
|
+ $fave = Fave::addNew($user, $notice);
|
|
hunk ./actions/twitapifavorites.php 121
|
|
- if (!$fave) {
|
|
- common_server_error(_('Could not create favorite.'));
|
|
- return;
|
|
- }
|
|
+ if (!$fave) {
|
|
+ common_server_error(_('Could not create favorite.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapifavorites.php 126
|
|
- $this->notify($fave, $notice, $user);
|
|
- $user->blowFavesCache();
|
|
+ $this->notify($fave, $notice, $user);
|
|
+ $user->blowFavesCache();
|
|
hunk ./actions/twitapifavorites.php 129
|
|
- if ($apidata['content-type'] == 'xml') {
|
|
- $this->show_single_xml_status($notice);
|
|
- } elseif ($apidata['content-type'] == 'json') {
|
|
- $this->show_single_json_status($notice);
|
|
- }
|
|
+ if ($apidata['content-type'] == 'xml') {
|
|
+ $this->show_single_xml_status($notice);
|
|
+ } elseif ($apidata['content-type'] == 'json') {
|
|
+ $this->show_single_json_status($notice);
|
|
+ }
|
|
hunk ./actions/twitapifavorites.php 135
|
|
- }
|
|
+ }
|
|
hunk ./actions/twitapifavorites.php 137
|
|
- function destroy($args, $apidata) {
|
|
- parent::handle($args);
|
|
- common_server_error(_('API method under construction.'), $code=501);
|
|
- }
|
|
+ function destroy($args, $apidata) {
|
|
+ parent::handle($args);
|
|
+ common_server_error(_('API method under construction.'), $code=501);
|
|
+ }
|
|
hunk ./actions/twitapifavorites.php 142
|
|
- // XXX: these two funcs swiped from faves. Maybe put in util.php, or some common base class?
|
|
+ // XXX: these two funcs swiped from faves. Maybe put in util.php, or some common base class?
|
|
hunk ./actions/twitapifavorites.php 144
|
|
- function notify($fave, $notice, $user) {
|
|
- $other = User::staticGet('id', $notice->profile_id);
|
|
- if ($other && $other->id != $user->id) {
|
|
- if ($other->email && $other->emailnotifyfav) {
|
|
- $this->notify_mail($other, $user, $notice);
|
|
- }
|
|
- # XXX: notify by IM
|
|
- # XXX: notify by SMS
|
|
- }
|
|
- }
|
|
+ function notify($fave, $notice, $user) {
|
|
+ $other = User::staticGet('id', $notice->profile_id);
|
|
+ if ($other && $other->id != $user->id) {
|
|
+ if ($other->email && $other->emailnotifyfav) {
|
|
+ $this->notify_mail($other, $user, $notice);
|
|
+ }
|
|
+ # XXX: notify by IM
|
|
+ # XXX: notify by SMS
|
|
+ }
|
|
+ }
|
|
hunk ./actions/twitapifavorites.php 155
|
|
- function notify_mail($other, $user, $notice) {
|
|
- $profile = $user->getProfile();
|
|
- $bestname = $profile->getBestName();
|
|
- $subject = sprintf(_('%s added your notice as a favorite'), $bestname);
|
|
- $body = sprintf(_("%1\$s just added your notice from %2\$s as one of their favorites.\n\n" .
|
|
- "In case you forgot, you can see the text of your notice here:\n\n" .
|
|
- "%3\$s\n\n" .
|
|
- "You can see the list of %1\$s's favorites here:\n\n" .
|
|
- "%4\$s\n\n" .
|
|
- "Faithfully yours,\n" .
|
|
- "%5\$s\n"),
|
|
- $bestname,
|
|
- common_exact_date($notice->created),
|
|
- common_local_url('shownotice', array('notice' => $notice->id)),
|
|
- common_local_url('showfavorites', array('nickname' => $user->nickname)),
|
|
- common_config('site', 'name'));
|
|
+ function notify_mail($other, $user, $notice) {
|
|
+ $profile = $user->getProfile();
|
|
+ $bestname = $profile->getBestName();
|
|
+ $subject = sprintf(_('%s added your notice as a favorite'), $bestname);
|
|
+ $body = sprintf(_("%1\$s just added your notice from %2\$s as one of their favorites.\n\n" .
|
|
+ "In case you forgot, you can see the text of your notice here:\n\n" .
|
|
+ "%3\$s\n\n" .
|
|
+ "You can see the list of %1\$s's favorites here:\n\n" .
|
|
+ "%4\$s\n\n" .
|
|
+ "Faithfully yours,\n" .
|
|
+ "%5\$s\n"),
|
|
+ $bestname,
|
|
+ common_exact_date($notice->created),
|
|
+ common_local_url('shownotice', array('notice' => $notice->id)),
|
|
+ common_local_url('showfavorites', array('nickname' => $user->nickname)),
|
|
+ common_config('site', 'name'));
|
|
hunk ./actions/twitapifavorites.php 172
|
|
- mail_to_user($other, $subject, $body);
|
|
- }
|
|
+ mail_to_user($other, $subject, $body);
|
|
+ }
|
|
hunk ./actions/twitapifriendships.php 26
|
|
- function create($args, $apidata) {
|
|
- parent::handle($args);
|
|
+ function create($args, $apidata) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/twitapifriendships.php 29
|
|
- if ($_SERVER['REQUEST_METHOD'] != 'POST') {
|
|
- $this->client_error(_('This method requires a POST.'), 400, $apidata['content-type']);
|
|
- return;
|
|
- }
|
|
+ if ($_SERVER['REQUEST_METHOD'] != 'POST') {
|
|
+ $this->client_error(_('This method requires a POST.'), 400, $apidata['content-type']);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapifriendships.php 34
|
|
- $id = $apidata['api_arg'];
|
|
+ $id = $apidata['api_arg'];
|
|
hunk ./actions/twitapifriendships.php 36
|
|
- $other = $this->get_user($id);
|
|
+ $other = $this->get_user($id);
|
|
hunk ./actions/twitapifriendships.php 38
|
|
- if (!$other) {
|
|
- $this->client_error(_('Could not follow user: User not found.'), 403, $apidata['content-type']);
|
|
- return;
|
|
- }
|
|
+ if (!$other) {
|
|
+ $this->client_error(_('Could not follow user: User not found.'), 403, $apidata['content-type']);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapifriendships.php 43
|
|
- $user = $apidata['user'];
|
|
+ $user = $apidata['user'];
|
|
hunk ./actions/twitapifriendships.php 45
|
|
- if ($user->isSubscribed($other)) {
|
|
- $errmsg = sprintf(_('Could not follow user: %s is already on your list.'), $other->nickname);
|
|
- $this->client_error($errmsg, 403, $apidata['content-type']);
|
|
- return;
|
|
- }
|
|
+ if ($user->isSubscribed($other)) {
|
|
+ $errmsg = sprintf(_('Could not follow user: %s is already on your list.'), $other->nickname);
|
|
+ $this->client_error($errmsg, 403, $apidata['content-type']);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapifriendships.php 51
|
|
- $sub = new Subscription();
|
|
+ $sub = new Subscription();
|
|
hunk ./actions/twitapifriendships.php 53
|
|
- $sub->query('BEGIN');
|
|
+ $sub->query('BEGIN');
|
|
hunk ./actions/twitapifriendships.php 55
|
|
- $sub->subscriber = $user->id;
|
|
- $sub->subscribed = $other->id;
|
|
- $sub->created = DB_DataObject_Cast::dateTime(); # current time
|
|
+ $sub->subscriber = $user->id;
|
|
+ $sub->subscribed = $other->id;
|
|
+ $sub->created = DB_DataObject_Cast::dateTime(); # current time
|
|
hunk ./actions/twitapifriendships.php 59
|
|
- $result = $sub->insert();
|
|
+ $result = $sub->insert();
|
|
hunk ./actions/twitapifriendships.php 61
|
|
- if (!$result) {
|
|
- $errmsg = sprintf(_('Could not follow user: %s is already on your list.'), $other->nickname);
|
|
- $this->client_error($errmsg, 400, $apidata['content-type']);
|
|
- return;
|
|
- }
|
|
+ if (!$result) {
|
|
+ $errmsg = sprintf(_('Could not follow user: %s is already on your list.'), $other->nickname);
|
|
+ $this->client_error($errmsg, 400, $apidata['content-type']);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapifriendships.php 67
|
|
- $sub->query('COMMIT');
|
|
+ $sub->query('COMMIT');
|
|
hunk ./actions/twitapifriendships.php 69
|
|
- mail_subscribe_notify($other, $user);
|
|
+ mail_subscribe_notify($other, $user);
|
|
hunk ./actions/twitapifriendships.php 71
|
|
- $type = $apidata['content-type'];
|
|
- $this->init_document($type);
|
|
- $this->show_profile($other, $type);
|
|
- $this->end_document($type);
|
|
+ $type = $apidata['content-type'];
|
|
+ $this->init_document($type);
|
|
+ $this->show_profile($other, $type);
|
|
+ $this->end_document($type);
|
|
hunk ./actions/twitapifriendships.php 76
|
|
- }
|
|
+ }
|
|
hunk ./actions/twitapifriendships.php 78
|
|
- function destroy($args, $apidata) {
|
|
- parent::handle($args);
|
|
+ function destroy($args, $apidata) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/twitapifriendships.php 81
|
|
- if (!in_array($_SERVER['REQUEST_METHOD'], array('POST', 'DELETE'))) {
|
|
- $this->client_error(_('This method requires a POST or DELETE.'), 400, $apidata['content-type']);
|
|
- return;
|
|
- }
|
|
+ if (!in_array($_SERVER['REQUEST_METHOD'], array('POST', 'DELETE'))) {
|
|
+ $this->client_error(_('This method requires a POST or DELETE.'), 400, $apidata['content-type']);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapifriendships.php 86
|
|
- $id = $apidata['api_arg'];
|
|
+ $id = $apidata['api_arg'];
|
|
hunk ./actions/twitapifriendships.php 88
|
|
- # We can't subscribe to a remote person, but we can unsub
|
|
+ # We can't subscribe to a remote person, but we can unsub
|
|
hunk ./actions/twitapifriendships.php 90
|
|
- $other = $this->get_profile($id);
|
|
- $user = $apidata['user'];
|
|
+ $other = $this->get_profile($id);
|
|
+ $user = $apidata['user'];
|
|
hunk ./actions/twitapifriendships.php 93
|
|
- $sub = new Subscription();
|
|
- $sub->subscriber = $user->id;
|
|
- $sub->subscribed = $other->id;
|
|
+ $sub = new Subscription();
|
|
+ $sub->subscriber = $user->id;
|
|
+ $sub->subscribed = $other->id;
|
|
hunk ./actions/twitapifriendships.php 97
|
|
- if ($sub->find(TRUE)) {
|
|
- $sub->query('BEGIN');
|
|
- $sub->delete();
|
|
- $sub->query('COMMIT');
|
|
- } else {
|
|
- $this->client_error(_('You are not friends with the specified user.'), 403, $apidata['content-type']);
|
|
- return;
|
|
- }
|
|
+ if ($sub->find(TRUE)) {
|
|
+ $sub->query('BEGIN');
|
|
+ $sub->delete();
|
|
+ $sub->query('COMMIT');
|
|
+ } else {
|
|
+ $this->client_error(_('You are not friends with the specified user.'), 403, $apidata['content-type']);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapifriendships.php 106
|
|
- $type = $apidata['content-type'];
|
|
- $this->init_document($type);
|
|
- $this->show_profile($other, $type);
|
|
- $this->end_document($type);
|
|
+ $type = $apidata['content-type'];
|
|
+ $this->init_document($type);
|
|
+ $this->show_profile($other, $type);
|
|
+ $this->end_document($type);
|
|
hunk ./actions/twitapifriendships.php 111
|
|
- }
|
|
+ }
|
|
hunk ./actions/twitapifriendships.php 113
|
|
- function exists($args, $apidata) {
|
|
- parent::handle($args);
|
|
+ function exists($args, $apidata) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/twitapifriendships.php 116
|
|
- if (!in_array($apidata['content-type'], array('xml', 'json'))) {
|
|
- common_user_error(_('API method not found!'), $code = 404);
|
|
- return;
|
|
- }
|
|
+ if (!in_array($apidata['content-type'], array('xml', 'json'))) {
|
|
+ common_user_error(_('API method not found!'), $code = 404);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapifriendships.php 121
|
|
- $user_a_id = $this->trimmed('user_a');
|
|
- $user_b_id = $this->trimmed('user_b');
|
|
+ $user_a_id = $this->trimmed('user_a');
|
|
+ $user_b_id = $this->trimmed('user_b');
|
|
hunk ./actions/twitapifriendships.php 124
|
|
- $user_a = $this->get_user($user_a_id);
|
|
- $user_b = $this->get_user($user_b_id);
|
|
+ $user_a = $this->get_user($user_a_id);
|
|
+ $user_b = $this->get_user($user_b_id);
|
|
hunk ./actions/twitapifriendships.php 127
|
|
- if (!$user_a || !$user_b) {
|
|
- $this->client_error(_('Two user ids or screen_names must be supplied.'), 400, $apidata['content-type']);
|
|
- return;
|
|
- }
|
|
+ if (!$user_a || !$user_b) {
|
|
+ $this->client_error(_('Two user ids or screen_names must be supplied.'), 400, $apidata['content-type']);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapifriendships.php 132
|
|
- if ($user_a->isSubscribed($user_b)) {
|
|
- $result = 'true';
|
|
- } else {
|
|
- $result = 'false';
|
|
- }
|
|
+ if ($user_a->isSubscribed($user_b)) {
|
|
+ $result = 'true';
|
|
+ } else {
|
|
+ $result = 'false';
|
|
+ }
|
|
hunk ./actions/twitapifriendships.php 138
|
|
- switch ($apidata['content-type']) {
|
|
- case 'xml':
|
|
- $this->init_document('xml');
|
|
- common_element('friends', NULL, $result);
|
|
- $this->end_document('xml');
|
|
- break;
|
|
- case 'json':
|
|
- $this->init_document('json');
|
|
- print json_encode($result);
|
|
- $this->end_document('json');
|
|
- break;
|
|
- default:
|
|
- break;
|
|
- }
|
|
+ switch ($apidata['content-type']) {
|
|
+ case 'xml':
|
|
+ $this->init_document('xml');
|
|
+ common_element('friends', NULL, $result);
|
|
+ $this->end_document('xml');
|
|
+ break;
|
|
+ case 'json':
|
|
+ $this->init_document('json');
|
|
+ print json_encode($result);
|
|
+ $this->end_document('json');
|
|
+ break;
|
|
+ default:
|
|
+ break;
|
|
+ }
|
|
hunk ./actions/twitapifriendships.php 153
|
|
- }
|
|
+ }
|
|
hunk ./actions/twitapihelp.php 26
|
|
- /* Returns the string "ok" in the requested format with a 200 OK HTTP status code.
|
|
- * URL:http://identi.ca/api/help/test.format
|
|
- * Formats: xml, json
|
|
- */
|
|
- function test($args, $apidata) {
|
|
- parent::handle($args);
|
|
+ /* Returns the string "ok" in the requested format with a 200 OK HTTP status code.
|
|
+ * URL:http://identi.ca/api/help/test.format
|
|
+ * Formats: xml, json
|
|
+ */
|
|
+ function test($args, $apidata) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/twitapihelp.php 33
|
|
- if ($apidata['content-type'] == 'xml') {
|
|
- $this->init_document('xml');
|
|
- common_element('ok', NULL, 'true');
|
|
- $this->end_document('xml');
|
|
- } elseif ($apidata['content-type'] == 'json') {
|
|
- $this->init_document('json');
|
|
- print '"ok"';
|
|
- $this->end_document('json');
|
|
- } else {
|
|
- common_user_error(_('API method not found!'), $code=404);
|
|
- }
|
|
+ if ($apidata['content-type'] == 'xml') {
|
|
+ $this->init_document('xml');
|
|
+ common_element('ok', NULL, 'true');
|
|
+ $this->end_document('xml');
|
|
+ } elseif ($apidata['content-type'] == 'json') {
|
|
+ $this->init_document('json');
|
|
+ print '"ok"';
|
|
+ $this->end_document('json');
|
|
+ } else {
|
|
+ common_user_error(_('API method not found!'), $code=404);
|
|
+ }
|
|
hunk ./actions/twitapihelp.php 45
|
|
- }
|
|
+ }
|
|
hunk ./actions/twitapihelp.php 47
|
|
- function downtime_schedule($args, $apidata) {
|
|
- parent::handle($args);
|
|
- common_server_error(_('API method under construction.'), $code=501);
|
|
- }
|
|
+ function downtime_schedule($args, $apidata) {
|
|
+ parent::handle($args);
|
|
+ common_server_error(_('API method under construction.'), $code=501);
|
|
+ }
|
|
hunk ./actions/twitapinotifications.php 27
|
|
- function follow($args, $apidata) {
|
|
- parent::handle($args);
|
|
- common_server_error(_('API method under construction.'), $code=501);
|
|
- }
|
|
+ function follow($args, $apidata) {
|
|
+ parent::handle($args);
|
|
+ common_server_error(_('API method under construction.'), $code=501);
|
|
+ }
|
|
hunk ./actions/twitapinotifications.php 32
|
|
- function leave($args, $apidata) {
|
|
- parent::handle($args);
|
|
- common_server_error(_('API method under construction.'), $code=501);
|
|
- }
|
|
+ function leave($args, $apidata) {
|
|
+ parent::handle($args);
|
|
+ common_server_error(_('API method under construction.'), $code=501);
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 26
|
|
- function public_timeline($args, $apidata) {
|
|
- parent::handle($args);
|
|
+ function public_timeline($args, $apidata) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/twitapistatuses.php 29
|
|
- $sitename = common_config('site', 'name');
|
|
- $siteserver = common_config('site', 'server');
|
|
- $title = sprintf(_("%s public timeline"), $sitename);
|
|
- $id = "tag:$siteserver:Statuses";
|
|
- $link = common_root_url();
|
|
- $subtitle = sprintf(_("%s updates from everyone!"), $sitename);
|
|
+ $sitename = common_config('site', 'name');
|
|
+ $siteserver = common_config('site', 'server');
|
|
+ $title = sprintf(_("%s public timeline"), $sitename);
|
|
+ $id = "tag:$siteserver:Statuses";
|
|
+ $link = common_root_url();
|
|
+ $subtitle = sprintf(_("%s updates from everyone!"), $sitename);
|
|
hunk ./actions/twitapistatuses.php 36
|
|
- // Number of public statuses to return by default -- Twitter sends 20
|
|
- $MAX_PUBSTATUSES = 20;
|
|
+ // Number of public statuses to return by default -- Twitter sends 20
|
|
+ $MAX_PUBSTATUSES = 20;
|
|
hunk ./actions/twitapistatuses.php 39
|
|
- // FIXME: To really live up to the spec we need to build a list
|
|
- // of notices by users who have custom avatars, so fix this SQL -- Zach
|
|
+ // FIXME: To really live up to the spec we need to build a list
|
|
+ // of notices by users who have custom avatars, so fix this SQL -- Zach
|
|
hunk ./actions/twitapistatuses.php 42
|
|
- $page = $this->arg('page');
|
|
- $since_id = $this->arg('since_id');
|
|
- $before_id = $this->arg('before_id');
|
|
+ $page = $this->arg('page');
|
|
+ $since_id = $this->arg('since_id');
|
|
+ $before_id = $this->arg('before_id');
|
|
hunk ./actions/twitapistatuses.php 46
|
|
- // NOTE: page, since_id, and before_id are extensions to Twitter API -- TB
|
|
- if (!$page) {
|
|
- $page = 1;
|
|
- }
|
|
- if (!$since_id) {
|
|
- $since_id = 0;
|
|
- }
|
|
- if (!$before_id) {
|
|
- $before_id = 0;
|
|
- }
|
|
+ // NOTE: page, since_id, and before_id are extensions to Twitter API -- TB
|
|
+ if (!$page) {
|
|
+ $page = 1;
|
|
+ }
|
|
+ if (!$since_id) {
|
|
+ $since_id = 0;
|
|
+ }
|
|
+ if (!$before_id) {
|
|
+ $before_id = 0;
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 57
|
|
- $since = strtotime($this->arg('since'));
|
|
+ $since = strtotime($this->arg('since'));
|
|
hunk ./actions/twitapistatuses.php 59
|
|
- $notice = Notice::publicStream((($page-1)*$MAX_PUBSTATUSES), $MAX_PUBSTATUSES, $since_id, $before_id, $since);
|
|
+ $notice = Notice::publicStream((($page-1)*$MAX_PUBSTATUSES), $MAX_PUBSTATUSES, $since_id, $before_id, $since);
|
|
hunk ./actions/twitapistatuses.php 61
|
|
- if ($notice) {
|
|
+ if ($notice) {
|
|
hunk ./actions/twitapistatuses.php 63
|
|
- switch($apidata['content-type']) {
|
|
- case 'xml':
|
|
- $this->show_xml_timeline($notice);
|
|
- break;
|
|
- case 'rss':
|
|
- $this->show_rss_timeline($notice, $title, $link, $subtitle);
|
|
- break;
|
|
- case 'atom':
|
|
- $this->show_atom_timeline($notice, $title, $id, $link, $subtitle);
|
|
- break;
|
|
- case 'json':
|
|
- $this->show_json_timeline($notice);
|
|
- break;
|
|
- default:
|
|
- common_user_error(_('API method not found!'), $code = 404);
|
|
- break;
|
|
- }
|
|
+ switch($apidata['content-type']) {
|
|
+ case 'xml':
|
|
+ $this->show_xml_timeline($notice);
|
|
+ break;
|
|
+ case 'rss':
|
|
+ $this->show_rss_timeline($notice, $title, $link, $subtitle);
|
|
+ break;
|
|
+ case 'atom':
|
|
+ $this->show_atom_timeline($notice, $title, $id, $link, $subtitle);
|
|
+ break;
|
|
+ case 'json':
|
|
+ $this->show_json_timeline($notice);
|
|
+ break;
|
|
+ default:
|
|
+ common_user_error(_('API method not found!'), $code = 404);
|
|
+ break;
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 81
|
|
- } else {
|
|
- common_server_error(_('Couldn\'t find any statuses.'), $code = 503);
|
|
- }
|
|
+ } else {
|
|
+ common_server_error(_('Couldn\'t find any statuses.'), $code = 503);
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 85
|
|
- }
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 87
|
|
- function friends_timeline($args, $apidata) {
|
|
- parent::handle($args);
|
|
+ function friends_timeline($args, $apidata) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/twitapistatuses.php 90
|
|
- $since = $this->arg('since');
|
|
- $since_id = $this->arg('since_id');
|
|
- $count = $this->arg('count');
|
|
- $page = $this->arg('page');
|
|
- $before_id = $this->arg('before_id');
|
|
+ $since = $this->arg('since');
|
|
+ $since_id = $this->arg('since_id');
|
|
+ $count = $this->arg('count');
|
|
+ $page = $this->arg('page');
|
|
+ $before_id = $this->arg('before_id');
|
|
hunk ./actions/twitapistatuses.php 96
|
|
- if (!$page) {
|
|
- $page = 1;
|
|
- }
|
|
+ if (!$page) {
|
|
+ $page = 1;
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 100
|
|
- if (!$count) {
|
|
- $count = 20;
|
|
- }
|
|
+ if (!$count) {
|
|
+ $count = 20;
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 104
|
|
- if (!$since_id) {
|
|
- $since_id = 0;
|
|
- }
|
|
+ if (!$since_id) {
|
|
+ $since_id = 0;
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 108
|
|
- // NOTE: before_id is an extension to Twitter API -- TB
|
|
- if (!$before_id) {
|
|
- $before_id = 0;
|
|
- }
|
|
+ // NOTE: before_id is an extension to Twitter API -- TB
|
|
+ if (!$before_id) {
|
|
+ $before_id = 0;
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 113
|
|
- $since = strtotime($this->arg('since'));
|
|
+ $since = strtotime($this->arg('since'));
|
|
hunk ./actions/twitapistatuses.php 115
|
|
- $user = $this->get_user(NULL, $apidata);
|
|
- $this->auth_user = $user;
|
|
+ $user = $this->get_user(NULL, $apidata);
|
|
+ $this->auth_user = $user;
|
|
hunk ./actions/twitapistatuses.php 118
|
|
- $profile = $user->getProfile();
|
|
+ $profile = $user->getProfile();
|
|
hunk ./actions/twitapistatuses.php 120
|
|
- $sitename = common_config('site', 'name');
|
|
- $siteserver = common_config('site', 'server');
|
|
+ $sitename = common_config('site', 'name');
|
|
+ $siteserver = common_config('site', 'server');
|
|
hunk ./actions/twitapistatuses.php 123
|
|
- $title = sprintf(_("%s and friends"), $user->nickname);
|
|
- $id = "tag:$siteserver:friends:" . $user->id;
|
|
- $link = common_local_url('all', array('nickname' => $user->nickname));
|
|
- $subtitle = sprintf(_('Updates from %1$s and friends on %2$s!'), $user->nickname, $sitename);
|
|
+ $title = sprintf(_("%s and friends"), $user->nickname);
|
|
+ $id = "tag:$siteserver:friends:" . $user->id;
|
|
+ $link = common_local_url('all', array('nickname' => $user->nickname));
|
|
+ $subtitle = sprintf(_('Updates from %1$s and friends on %2$s!'), $user->nickname, $sitename);
|
|
hunk ./actions/twitapistatuses.php 128
|
|
- $notice = $user->noticesWithFriends(($page-1)*20, $count, $since_id, $before_id, $since);
|
|
+ $notice = $user->noticesWithFriends(($page-1)*20, $count, $since_id, $before_id, $since);
|
|
hunk ./actions/twitapistatuses.php 130
|
|
- switch($apidata['content-type']) {
|
|
- case 'xml':
|
|
- $this->show_xml_timeline($notice);
|
|
- break;
|
|
- case 'rss':
|
|
- $this->show_rss_timeline($notice, $title, $link, $subtitle);
|
|
- break;
|
|
- case 'atom':
|
|
- $this->show_atom_timeline($notice, $title, $id, $link, $subtitle);
|
|
- break;
|
|
- case 'json':
|
|
- $this->show_json_timeline($notice);
|
|
- break;
|
|
- default:
|
|
- common_user_error(_('API method not found!'), $code = 404);
|
|
- }
|
|
+ switch($apidata['content-type']) {
|
|
+ case 'xml':
|
|
+ $this->show_xml_timeline($notice);
|
|
+ break;
|
|
+ case 'rss':
|
|
+ $this->show_rss_timeline($notice, $title, $link, $subtitle);
|
|
+ break;
|
|
+ case 'atom':
|
|
+ $this->show_atom_timeline($notice, $title, $id, $link, $subtitle);
|
|
+ break;
|
|
+ case 'json':
|
|
+ $this->show_json_timeline($notice);
|
|
+ break;
|
|
+ default:
|
|
+ common_user_error(_('API method not found!'), $code = 404);
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 147
|
|
- }
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 149
|
|
- function user_timeline($args, $apidata) {
|
|
- parent::handle($args);
|
|
+ function user_timeline($args, $apidata) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/twitapistatuses.php 152
|
|
- $this->auth_user = $apidata['user'];
|
|
- $user = $this->get_user($apidata['api_arg'], $apidata);
|
|
+ $this->auth_user = $apidata['user'];
|
|
+ $user = $this->get_user($apidata['api_arg'], $apidata);
|
|
hunk ./actions/twitapistatuses.php 155
|
|
- if (!$user) {
|
|
- $this->client_error('Not Found', 404, $apidata['content-type']);
|
|
- return;
|
|
- }
|
|
+ if (!$user) {
|
|
+ $this->client_error('Not Found', 404, $apidata['content-type']);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 160
|
|
- $profile = $user->getProfile();
|
|
+ $profile = $user->getProfile();
|
|
hunk ./actions/twitapistatuses.php 162
|
|
- if (!$profile) {
|
|
- common_server_error(_('User has no profile.'));
|
|
- return;
|
|
- }
|
|
+ if (!$profile) {
|
|
+ common_server_error(_('User has no profile.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 167
|
|
- $count = $this->arg('count');
|
|
- $since = $this->arg('since');
|
|
- $since_id = $this->arg('since_id');
|
|
- $page = $this->arg('page');
|
|
- $before_id = $this->arg('before_id');
|
|
+ $count = $this->arg('count');
|
|
+ $since = $this->arg('since');
|
|
+ $since_id = $this->arg('since_id');
|
|
+ $page = $this->arg('page');
|
|
+ $before_id = $this->arg('before_id');
|
|
hunk ./actions/twitapistatuses.php 173
|
|
- if (!$page) {
|
|
- $page = 1;
|
|
- }
|
|
+ if (!$page) {
|
|
+ $page = 1;
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 177
|
|
- if (!$count) {
|
|
- $count = 20;
|
|
- }
|
|
+ if (!$count) {
|
|
+ $count = 20;
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 181
|
|
- if (!$since_id) {
|
|
- $since_id = 0;
|
|
- }
|
|
+ if (!$since_id) {
|
|
+ $since_id = 0;
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 185
|
|
- // NOTE: before_id is an extensions to Twitter API -- TB
|
|
- if (!$before_id) {
|
|
- $before_id = 0;
|
|
- }
|
|
+ // NOTE: before_id is an extensions to Twitter API -- TB
|
|
+ if (!$before_id) {
|
|
+ $before_id = 0;
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 190
|
|
- $since = strtotime($this->arg('since'));
|
|
+ $since = strtotime($this->arg('since'));
|
|
hunk ./actions/twitapistatuses.php 192
|
|
- $sitename = common_config('site', 'name');
|
|
- $siteserver = common_config('site', 'server');
|
|
+ $sitename = common_config('site', 'name');
|
|
+ $siteserver = common_config('site', 'server');
|
|
hunk ./actions/twitapistatuses.php 195
|
|
- $title = sprintf(_("%s timeline"), $user->nickname);
|
|
- $id = "tag:$siteserver:user:".$user->id;
|
|
- $link = common_local_url('showstream', array('nickname' => $user->nickname));
|
|
- $subtitle = sprintf(_('Updates from %1$s on %2$s!'), $user->nickname, $sitename);
|
|
+ $title = sprintf(_("%s timeline"), $user->nickname);
|
|
+ $id = "tag:$siteserver:user:".$user->id;
|
|
+ $link = common_local_url('showstream', array('nickname' => $user->nickname));
|
|
+ $subtitle = sprintf(_('Updates from %1$s on %2$s!'), $user->nickname, $sitename);
|
|
hunk ./actions/twitapistatuses.php 200
|
|
- # FriendFeed's SUP protocol
|
|
- # Also added RSS and Atom feeds
|
|
+ # FriendFeed's SUP protocol
|
|
+ # Also added RSS and Atom feeds
|
|
hunk ./actions/twitapistatuses.php 203
|
|
- $suplink = common_local_url('sup', NULL, $user->id);
|
|
- header('X-SUP-ID: '.$suplink);
|
|
+ $suplink = common_local_url('sup', NULL, $user->id);
|
|
+ header('X-SUP-ID: '.$suplink);
|
|
hunk ./actions/twitapistatuses.php 206
|
|
- # XXX: since
|
|
+ # XXX: since
|
|
hunk ./actions/twitapistatuses.php 208
|
|
- $notice = $user->getNotices((($page-1)*20), $count, $since_id, $before_id, $since);
|
|
+ $notice = $user->getNotices((($page-1)*20), $count, $since_id, $before_id, $since);
|
|
hunk ./actions/twitapistatuses.php 210
|
|
- switch($apidata['content-type']) {
|
|
- case 'xml':
|
|
- $this->show_xml_timeline($notice);
|
|
- break;
|
|
- case 'rss':
|
|
- $this->show_rss_timeline($notice, $title, $link, $subtitle, $suplink);
|
|
- break;
|
|
- case 'atom':
|
|
- $this->show_atom_timeline($notice, $title, $id, $link, $subtitle, $suplink);
|
|
- break;
|
|
- case 'json':
|
|
- $this->show_json_timeline($notice);
|
|
- break;
|
|
- default:
|
|
- common_user_error(_('API method not found!'), $code = 404);
|
|
- }
|
|
+ switch($apidata['content-type']) {
|
|
+ case 'xml':
|
|
+ $this->show_xml_timeline($notice);
|
|
+ break;
|
|
+ case 'rss':
|
|
+ $this->show_rss_timeline($notice, $title, $link, $subtitle, $suplink);
|
|
+ break;
|
|
+ case 'atom':
|
|
+ $this->show_atom_timeline($notice, $title, $id, $link, $subtitle, $suplink);
|
|
+ break;
|
|
+ case 'json':
|
|
+ $this->show_json_timeline($notice);
|
|
+ break;
|
|
+ default:
|
|
+ common_user_error(_('API method not found!'), $code = 404);
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 227
|
|
- }
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 229
|
|
- function update($args, $apidata) {
|
|
+ function update($args, $apidata) {
|
|
hunk ./actions/twitapistatuses.php 231
|
|
- parent::handle($args);
|
|
+ parent::handle($args);
|
|
hunk ./actions/twitapistatuses.php 233
|
|
- if (!in_array($apidata['content-type'], array('xml', 'json'))) {
|
|
- common_user_error(_('API method not found!'), $code = 404);
|
|
- return;
|
|
- }
|
|
+ if (!in_array($apidata['content-type'], array('xml', 'json'))) {
|
|
+ common_user_error(_('API method not found!'), $code = 404);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 238
|
|
- if ($_SERVER['REQUEST_METHOD'] != 'POST') {
|
|
- $this->client_error(_('This method requires a POST.'), 400, $apidata['content-type']);
|
|
- return;
|
|
- }
|
|
+ if ($_SERVER['REQUEST_METHOD'] != 'POST') {
|
|
+ $this->client_error(_('This method requires a POST.'), 400, $apidata['content-type']);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 243
|
|
- $this->auth_user = $apidata['user'];
|
|
- $user = $this->auth_user;
|
|
- $status = $this->trimmed('status');
|
|
- $source = $this->trimmed('source');
|
|
- $in_reply_to_status_id = intval($this->trimmed('in_reply_to_status_id'));
|
|
+ $this->auth_user = $apidata['user'];
|
|
+ $user = $this->auth_user;
|
|
+ $status = $this->trimmed('status');
|
|
+ $source = $this->trimmed('source');
|
|
+ $in_reply_to_status_id = intval($this->trimmed('in_reply_to_status_id'));
|
|
hunk ./actions/twitapistatuses.php 249
|
|
- if (!$source || in_array($source, $reserved_sources)) {
|
|
- $source = 'api';
|
|
- }
|
|
+ if (!$source || in_array($source, $reserved_sources)) {
|
|
+ $source = 'api';
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 253
|
|
- if (!$status) {
|
|
+ if (!$status) {
|
|
hunk ./actions/twitapistatuses.php 255
|
|
- // XXX: Note: In this case, Twitter simply returns '200 OK'
|
|
- // No error is given, but the status is not posted to the
|
|
- // user's timeline. Seems bad. Shouldn't we throw an
|
|
- // errror? -- Zach
|
|
- return;
|
|
+ // XXX: Note: In this case, Twitter simply returns '200 OK'
|
|
+ // No error is given, but the status is not posted to the
|
|
+ // user's timeline. Seems bad. Shouldn't we throw an
|
|
+ // errror? -- Zach
|
|
+ return;
|
|
hunk ./actions/twitapistatuses.php 261
|
|
- } else {
|
|
+ } else {
|
|
hunk ./actions/twitapistatuses.php 263
|
|
- $status_shortened = common_shorten_links($status);
|
|
+ $status_shortened = common_shorten_links($status);
|
|
hunk ./actions/twitapistatuses.php 265
|
|
- if (mb_strlen($status_shortened) > 140) {
|
|
+ if (mb_strlen($status_shortened) > 140) {
|
|
hunk ./actions/twitapistatuses.php 267
|
|
- // XXX: Twitter truncates anything over 140, flags the status
|
|
- // as "truncated." Sending this error may screw up some clients
|
|
- // that assume Twitter will truncate for them. Should we just
|
|
- // truncate too? -- Zach
|
|
- $this->client_error(_('That\'s too long. Max notice size is 140 chars.'), $code = 406, $apidata['content-type']);
|
|
- return;
|
|
+ // XXX: Twitter truncates anything over 140, flags the status
|
|
+ // as "truncated." Sending this error may screw up some clients
|
|
+ // that assume Twitter will truncate for them. Should we just
|
|
+ // truncate too? -- Zach
|
|
+ $this->client_error(_('That\'s too long. Max notice size is 140 chars.'), $code = 406, $apidata['content-type']);
|
|
+ return;
|
|
hunk ./actions/twitapistatuses.php 274
|
|
- }
|
|
- }
|
|
+ }
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 277
|
|
- // Check for commands
|
|
- $inter = new CommandInterpreter();
|
|
- $cmd = $inter->handle_command($user, $status_shortened);
|
|
+ // Check for commands
|
|
+ $inter = new CommandInterpreter();
|
|
+ $cmd = $inter->handle_command($user, $status_shortened);
|
|
hunk ./actions/twitapistatuses.php 281
|
|
- if ($cmd) {
|
|
+ if ($cmd) {
|
|
hunk ./actions/twitapistatuses.php 283
|
|
- if ($this->supported($cmd)) {
|
|
- $cmd->execute(new Channel());
|
|
- }
|
|
+ if ($this->supported($cmd)) {
|
|
+ $cmd->execute(new Channel());
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 287
|
|
- // cmd not supported? Twitter just returns your latest status.
|
|
- // And, it returns your last status whether the cmd was successful
|
|
- // or not!
|
|
- $n = $user->getCurrentNotice();
|
|
- $apidata['api_arg'] = $n->id;
|
|
- } else {
|
|
+ // cmd not supported? Twitter just returns your latest status.
|
|
+ // And, it returns your last status whether the cmd was successful
|
|
+ // or not!
|
|
+ $n = $user->getCurrentNotice();
|
|
+ $apidata['api_arg'] = $n->id;
|
|
+ } else {
|
|
hunk ./actions/twitapistatuses.php 294
|
|
- $reply_to = NULL;
|
|
+ $reply_to = NULL;
|
|
hunk ./actions/twitapistatuses.php 296
|
|
- if ($in_reply_to_status_id) {
|
|
+ if ($in_reply_to_status_id) {
|
|
hunk ./actions/twitapistatuses.php 298
|
|
- // check whether notice actually exists
|
|
- $reply = Notice::staticGet($in_reply_to_status_id);
|
|
+ // check whether notice actually exists
|
|
+ $reply = Notice::staticGet($in_reply_to_status_id);
|
|
hunk ./actions/twitapistatuses.php 301
|
|
- if ($reply) {
|
|
- $reply_to = $in_reply_to_status_id;
|
|
- } else {
|
|
- $this->client_error(_('Not found'), $code = 404, $apidata['content-type']);
|
|
- return;
|
|
- }
|
|
- }
|
|
+ if ($reply) {
|
|
+ $reply_to = $in_reply_to_status_id;
|
|
+ } else {
|
|
+ $this->client_error(_('Not found'), $code = 404, $apidata['content-type']);
|
|
+ return;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 309
|
|
- $notice = Notice::saveNew($user->id, html_entity_decode($status, ENT_NOQUOTES, 'UTF-8'),
|
|
- $source, 1, $reply_to);
|
|
+ $notice = Notice::saveNew($user->id, html_entity_decode($status, ENT_NOQUOTES, 'UTF-8'),
|
|
+ $source, 1, $reply_to);
|
|
hunk ./actions/twitapistatuses.php 312
|
|
- if (is_string($notice)) {
|
|
- $this->server_error($notice);
|
|
- return;
|
|
- }
|
|
+ if (is_string($notice)) {
|
|
+ $this->server_error($notice);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 317
|
|
- common_broadcast_notice($notice);
|
|
- $apidata['api_arg'] = $notice->id;
|
|
- }
|
|
+ common_broadcast_notice($notice);
|
|
+ $apidata['api_arg'] = $notice->id;
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 321
|
|
- $this->show($args, $apidata);
|
|
- }
|
|
+ $this->show($args, $apidata);
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 324
|
|
- function replies($args, $apidata) {
|
|
+ function replies($args, $apidata) {
|
|
hunk ./actions/twitapistatuses.php 326
|
|
- parent::handle($args);
|
|
+ parent::handle($args);
|
|
hunk ./actions/twitapistatuses.php 328
|
|
- $since = $this->arg('since');
|
|
- $count = $this->arg('count');
|
|
- $page = $this->arg('page');
|
|
- $since_id = $this->arg('since_id');
|
|
- $before_id = $this->arg('before_id');
|
|
+ $since = $this->arg('since');
|
|
+ $count = $this->arg('count');
|
|
+ $page = $this->arg('page');
|
|
+ $since_id = $this->arg('since_id');
|
|
+ $before_id = $this->arg('before_id');
|
|
hunk ./actions/twitapistatuses.php 334
|
|
- $this->auth_user = $apidata['user'];
|
|
- $user = $this->auth_user;
|
|
- $profile = $user->getProfile();
|
|
+ $this->auth_user = $apidata['user'];
|
|
+ $user = $this->auth_user;
|
|
+ $profile = $user->getProfile();
|
|
hunk ./actions/twitapistatuses.php 338
|
|
- $sitename = common_config('site', 'name');
|
|
- $siteserver = common_config('site', 'server');
|
|
+ $sitename = common_config('site', 'name');
|
|
+ $siteserver = common_config('site', 'server');
|
|
hunk ./actions/twitapistatuses.php 341
|
|
- $title = sprintf(_('%1$s / Updates replying to %2$s'), $sitename, $user->nickname);
|
|
- $id = "tag:$siteserver:replies:".$user->id;
|
|
- $link = common_local_url('replies', array('nickname' => $user->nickname));
|
|
- $subtitle = sprintf(_('%1$s updates that reply to updates from %2$s / %3$s.'), $sitename, $user->nickname, $profile->getBestName());
|
|
+ $title = sprintf(_('%1$s / Updates replying to %2$s'), $sitename, $user->nickname);
|
|
+ $id = "tag:$siteserver:replies:".$user->id;
|
|
+ $link = common_local_url('replies', array('nickname' => $user->nickname));
|
|
+ $subtitle = sprintf(_('%1$s updates that reply to updates from %2$s / %3$s.'), $sitename, $user->nickname, $profile->getBestName());
|
|
hunk ./actions/twitapistatuses.php 346
|
|
- if (!$page) {
|
|
- $page = 1;
|
|
- }
|
|
+ if (!$page) {
|
|
+ $page = 1;
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 350
|
|
- if (!$count) {
|
|
- $count = 20;
|
|
- }
|
|
+ if (!$count) {
|
|
+ $count = 20;
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 354
|
|
- if (!$since_id) {
|
|
- $since_id = 0;
|
|
- }
|
|
+ if (!$since_id) {
|
|
+ $since_id = 0;
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 358
|
|
- // NOTE: before_id is an extension to Twitter API -- TB
|
|
- if (!$before_id) {
|
|
- $before_id = 0;
|
|
- }
|
|
+ // NOTE: before_id is an extension to Twitter API -- TB
|
|
+ if (!$before_id) {
|
|
+ $before_id = 0;
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 363
|
|
- $since = strtotime($this->arg('since'));
|
|
+ $since = strtotime($this->arg('since'));
|
|
hunk ./actions/twitapistatuses.php 365
|
|
- $notice = $user->getReplies((($page-1)*20), $count, $since_id, $before_id, $since);
|
|
- $notices = array();
|
|
+ $notice = $user->getReplies((($page-1)*20), $count, $since_id, $before_id, $since);
|
|
+ $notices = array();
|
|
hunk ./actions/twitapistatuses.php 368
|
|
- while ($notice->fetch()) {
|
|
- $notices[] = clone($notice);
|
|
- }
|
|
+ while ($notice->fetch()) {
|
|
+ $notices[] = clone($notice);
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 372
|
|
- switch($apidata['content-type']) {
|
|
- case 'xml':
|
|
- $this->show_xml_timeline($notices);
|
|
- break;
|
|
- case 'rss':
|
|
- $this->show_rss_timeline($notices, $title, $link, $subtitle);
|
|
- break;
|
|
- case 'atom':
|
|
- $this->show_atom_timeline($notices, $title, $id, $link, $subtitle);
|
|
- break;
|
|
- case 'json':
|
|
- $this->show_json_timeline($notices);
|
|
- break;
|
|
- default:
|
|
- common_user_error(_('API method not found!'), $code = 404);
|
|
- }
|
|
+ switch($apidata['content-type']) {
|
|
+ case 'xml':
|
|
+ $this->show_xml_timeline($notices);
|
|
+ break;
|
|
+ case 'rss':
|
|
+ $this->show_rss_timeline($notices, $title, $link, $subtitle);
|
|
+ break;
|
|
+ case 'atom':
|
|
+ $this->show_atom_timeline($notices, $title, $id, $link, $subtitle);
|
|
+ break;
|
|
+ case 'json':
|
|
+ $this->show_json_timeline($notices);
|
|
+ break;
|
|
+ default:
|
|
+ common_user_error(_('API method not found!'), $code = 404);
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 389
|
|
- }
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 391
|
|
- function show($args, $apidata) {
|
|
- parent::handle($args);
|
|
+ function show($args, $apidata) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/twitapistatuses.php 394
|
|
- if (!in_array($apidata['content-type'], array('xml', 'json'))) {
|
|
- common_user_error(_('API method not found!'), $code = 404);
|
|
- return;
|
|
- }
|
|
+ if (!in_array($apidata['content-type'], array('xml', 'json'))) {
|
|
+ common_user_error(_('API method not found!'), $code = 404);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 399
|
|
- $this->auth_user = $apidata['user'];
|
|
- $notice_id = $apidata['api_arg'];
|
|
- $notice = Notice::staticGet($notice_id);
|
|
+ $this->auth_user = $apidata['user'];
|
|
+ $notice_id = $apidata['api_arg'];
|
|
+ $notice = Notice::staticGet($notice_id);
|
|
hunk ./actions/twitapistatuses.php 403
|
|
- if ($notice) {
|
|
- if ($apidata['content-type'] == 'xml') {
|
|
- $this->show_single_xml_status($notice);
|
|
- } elseif ($apidata['content-type'] == 'json') {
|
|
- $this->show_single_json_status($notice);
|
|
- }
|
|
- } else {
|
|
- // XXX: Twitter just sets a 404 header and doens't bother to return an err msg
|
|
- $this->client_error(_('No status with that ID found.'), 404, $apidata['content-type']);
|
|
- }
|
|
+ if ($notice) {
|
|
+ if ($apidata['content-type'] == 'xml') {
|
|
+ $this->show_single_xml_status($notice);
|
|
+ } elseif ($apidata['content-type'] == 'json') {
|
|
+ $this->show_single_json_status($notice);
|
|
+ }
|
|
+ } else {
|
|
+ // XXX: Twitter just sets a 404 header and doens't bother to return an err msg
|
|
+ $this->client_error(_('No status with that ID found.'), 404, $apidata['content-type']);
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 414
|
|
- }
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 416
|
|
- function destroy($args, $apidata) {
|
|
+ function destroy($args, $apidata) {
|
|
hunk ./actions/twitapistatuses.php 418
|
|
- parent::handle($args);
|
|
+ parent::handle($args);
|
|
hunk ./actions/twitapistatuses.php 420
|
|
- if (!in_array($apidata['content-type'], array('xml', 'json'))) {
|
|
- common_user_error(_('API method not found!'), $code = 404);
|
|
- return;
|
|
- }
|
|
+ if (!in_array($apidata['content-type'], array('xml', 'json'))) {
|
|
+ common_user_error(_('API method not found!'), $code = 404);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 425
|
|
- // Check for RESTfulness
|
|
- if (!in_array($_SERVER['REQUEST_METHOD'], array('POST', 'DELETE'))) {
|
|
- // XXX: Twitter just prints the err msg, no XML / JSON.
|
|
- $this->client_error(_('This method requires a POST or DELETE.'), 400, $apidata['content-type']);
|
|
- return;
|
|
- }
|
|
+ // Check for RESTfulness
|
|
+ if (!in_array($_SERVER['REQUEST_METHOD'], array('POST', 'DELETE'))) {
|
|
+ // XXX: Twitter just prints the err msg, no XML / JSON.
|
|
+ $this->client_error(_('This method requires a POST or DELETE.'), 400, $apidata['content-type']);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 432
|
|
- $this->auth_user = $apidata['user'];
|
|
- $user = $this->auth_user;
|
|
- $notice_id = $apidata['api_arg'];
|
|
- $notice = Notice::staticGet($notice_id);
|
|
+ $this->auth_user = $apidata['user'];
|
|
+ $user = $this->auth_user;
|
|
+ $notice_id = $apidata['api_arg'];
|
|
+ $notice = Notice::staticGet($notice_id);
|
|
hunk ./actions/twitapistatuses.php 437
|
|
- if (!$notice) {
|
|
- $this->client_error(_('No status found with that ID.'), 404, $apidata['content-type']);
|
|
- return;
|
|
- }
|
|
+ if (!$notice) {
|
|
+ $this->client_error(_('No status found with that ID.'), 404, $apidata['content-type']);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 442
|
|
- if ($user->id == $notice->profile_id) {
|
|
- $replies = new Reply;
|
|
- $replies->get('notice_id', $notice_id);
|
|
- common_dequeue_notice($notice);
|
|
- $replies->delete();
|
|
- $notice->delete();
|
|
+ if ($user->id == $notice->profile_id) {
|
|
+ $replies = new Reply;
|
|
+ $replies->get('notice_id', $notice_id);
|
|
+ common_dequeue_notice($notice);
|
|
+ $replies->delete();
|
|
+ $notice->delete();
|
|
hunk ./actions/twitapistatuses.php 449
|
|
- if ($apidata['content-type'] == 'xml') {
|
|
- $this->show_single_xml_status($notice);
|
|
- } elseif ($apidata['content-type'] == 'json') {
|
|
- $this->show_single_json_status($notice);
|
|
- }
|
|
- } else {
|
|
- $this->client_error(_('You may not delete another user\'s status.'), 403, $apidata['content-type']);
|
|
- }
|
|
+ if ($apidata['content-type'] == 'xml') {
|
|
+ $this->show_single_xml_status($notice);
|
|
+ } elseif ($apidata['content-type'] == 'json') {
|
|
+ $this->show_single_json_status($notice);
|
|
+ }
|
|
+ } else {
|
|
+ $this->client_error(_('You may not delete another user\'s status.'), 403, $apidata['content-type']);
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 458
|
|
- }
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 460
|
|
- function friends($args, $apidata) {
|
|
- parent::handle($args);
|
|
- return $this->subscriptions($apidata, 'subscribed', 'subscriber');
|
|
- }
|
|
+ function friends($args, $apidata) {
|
|
+ parent::handle($args);
|
|
+ return $this->subscriptions($apidata, 'subscribed', 'subscriber');
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 465
|
|
- function followers($args, $apidata) {
|
|
- parent::handle($args);
|
|
+ function followers($args, $apidata) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/twitapistatuses.php 468
|
|
- return $this->subscriptions($apidata, 'subscriber', 'subscribed');
|
|
- }
|
|
+ return $this->subscriptions($apidata, 'subscriber', 'subscribed');
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 471
|
|
- function subscriptions($apidata, $other_attr, $user_attr) {
|
|
+ function subscriptions($apidata, $other_attr, $user_attr) {
|
|
hunk ./actions/twitapistatuses.php 473
|
|
- # XXX: lite
|
|
+ # XXX: lite
|
|
hunk ./actions/twitapistatuses.php 475
|
|
- $this->auth_user = $apidate['user'];
|
|
- $user = $this->get_user($apidata['api_arg'], $apidata);
|
|
+ $this->auth_user = $apidate['user'];
|
|
+ $user = $this->get_user($apidata['api_arg'], $apidata);
|
|
hunk ./actions/twitapistatuses.php 478
|
|
- if (!$user) {
|
|
- $this->client_error('Not Found', 404, $apidata['content-type']);
|
|
- return;
|
|
- }
|
|
+ if (!$user) {
|
|
+ $this->client_error('Not Found', 404, $apidata['content-type']);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 483
|
|
- $page = $this->trimmed('page');
|
|
+ $page = $this->trimmed('page');
|
|
hunk ./actions/twitapistatuses.php 485
|
|
- if (!$page || !is_numeric($page)) {
|
|
- $page = 1;
|
|
- }
|
|
+ if (!$page || !is_numeric($page)) {
|
|
+ $page = 1;
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 489
|
|
- $profile = $user->getProfile();
|
|
+ $profile = $user->getProfile();
|
|
hunk ./actions/twitapistatuses.php 491
|
|
- if (!$profile) {
|
|
- common_server_error(_('User has no profile.'));
|
|
- return;
|
|
- }
|
|
+ if (!$profile) {
|
|
+ common_server_error(_('User has no profile.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 496
|
|
- $sub = new Subscription();
|
|
- $sub->$user_attr = $profile->id;
|
|
+ $sub = new Subscription();
|
|
+ $sub->$user_attr = $profile->id;
|
|
hunk ./actions/twitapistatuses.php 499
|
|
- $since = strtotime($this->trimmed('since'));
|
|
+ $since = strtotime($this->trimmed('since'));
|
|
hunk ./actions/twitapistatuses.php 501
|
|
- if ($since) {
|
|
- $d = date('Y-m-d H:i:s', $since);
|
|
- $sub->whereAdd("created > '$d'");
|
|
- }
|
|
+ if ($since) {
|
|
+ $d = date('Y-m-d H:i:s', $since);
|
|
+ $sub->whereAdd("created > '$d'");
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 506
|
|
- $sub->orderBy('created DESC');
|
|
- $sub->limit(($page-1)*100, 100);
|
|
+ $sub->orderBy('created DESC');
|
|
+ $sub->limit(($page-1)*100, 100);
|
|
hunk ./actions/twitapistatuses.php 509
|
|
- $others = array();
|
|
+ $others = array();
|
|
hunk ./actions/twitapistatuses.php 511
|
|
- if ($sub->find()) {
|
|
- while ($sub->fetch()) {
|
|
- $others[] = Profile::staticGet($sub->$other_attr);
|
|
- }
|
|
- } else {
|
|
- // user has no followers
|
|
- }
|
|
+ if ($sub->find()) {
|
|
+ while ($sub->fetch()) {
|
|
+ $others[] = Profile::staticGet($sub->$other_attr);
|
|
+ }
|
|
+ } else {
|
|
+ // user has no followers
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 519
|
|
- $type = $apidata['content-type'];
|
|
+ $type = $apidata['content-type'];
|
|
hunk ./actions/twitapistatuses.php 521
|
|
- $this->init_document($type);
|
|
- $this->show_profiles($others, $type);
|
|
- $this->end_document($type);
|
|
- }
|
|
+ $this->init_document($type);
|
|
+ $this->show_profiles($others, $type);
|
|
+ $this->end_document($type);
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 526
|
|
- function show_profiles($profiles, $type) {
|
|
- switch ($type) {
|
|
- case 'xml':
|
|
- common_element_start('users', array('type' => 'array'));
|
|
- foreach ($profiles as $profile) {
|
|
- $this->show_profile($profile);
|
|
- }
|
|
- common_element_end('users');
|
|
- break;
|
|
- case 'json':
|
|
- $arrays = array();
|
|
- foreach ($profiles as $profile) {
|
|
- $arrays[] = $this->twitter_user_array($profile, true);
|
|
- }
|
|
- print json_encode($arrays);
|
|
- break;
|
|
- default:
|
|
- $this->client_error(_('unsupported file type'));
|
|
- }
|
|
- }
|
|
+ function show_profiles($profiles, $type) {
|
|
+ switch ($type) {
|
|
+ case 'xml':
|
|
+ common_element_start('users', array('type' => 'array'));
|
|
+ foreach ($profiles as $profile) {
|
|
+ $this->show_profile($profile);
|
|
+ }
|
|
+ common_element_end('users');
|
|
+ break;
|
|
+ case 'json':
|
|
+ $arrays = array();
|
|
+ foreach ($profiles as $profile) {
|
|
+ $arrays[] = $this->twitter_user_array($profile, true);
|
|
+ }
|
|
+ print json_encode($arrays);
|
|
+ break;
|
|
+ default:
|
|
+ $this->client_error(_('unsupported file type'));
|
|
+ }
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 547
|
|
- function featured($args, $apidata) {
|
|
- parent::handle($args);
|
|
- common_server_error(_('API method under construction.'), $code=501);
|
|
- }
|
|
+ function featured($args, $apidata) {
|
|
+ parent::handle($args);
|
|
+ common_server_error(_('API method under construction.'), $code=501);
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 552
|
|
- function supported($cmd) {
|
|
+ function supported($cmd) {
|
|
hunk ./actions/twitapistatuses.php 554
|
|
- $cmdlist = array('MessageCommand', 'SubCommand', 'UnsubCommand', 'FavCommand', 'OnCommand', 'OffCommand');
|
|
+ $cmdlist = array('MessageCommand', 'SubCommand', 'UnsubCommand', 'FavCommand', 'OnCommand', 'OffCommand');
|
|
hunk ./actions/twitapistatuses.php 556
|
|
- if (in_array(get_class($cmd), $cmdlist)) {
|
|
- return true;
|
|
- }
|
|
+ if (in_array(get_class($cmd), $cmdlist)) {
|
|
+ return true;
|
|
+ }
|
|
hunk ./actions/twitapistatuses.php 560
|
|
- return false;
|
|
- }
|
|
+ return false;
|
|
+ }
|
|
hunk ./actions/twitapiusers.php 13
|
|
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
hunk ./actions/twitapiusers.php 17
|
|
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
hunk ./actions/twitapiusers.php 26
|
|
- function show($args, $apidata) {
|
|
- parent::handle($args);
|
|
+ function show($args, $apidata) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/twitapiusers.php 29
|
|
- if (!in_array($apidata['content-type'], array('xml', 'json'))) {
|
|
- common_user_error(_('API method not found!'), $code = 404);
|
|
- return;
|
|
- }
|
|
+ if (!in_array($apidata['content-type'], array('xml', 'json'))) {
|
|
+ common_user_error(_('API method not found!'), $code = 404);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapiusers.php 34
|
|
- $user = null;
|
|
- $email = $this->arg('email');
|
|
+ $user = null;
|
|
+ $email = $this->arg('email');
|
|
hunk ./actions/twitapiusers.php 37
|
|
- if ($email) {
|
|
- $user = User::staticGet('email', $email);
|
|
- } elseif (isset($apidata['api_arg'])) {
|
|
- $user = $this->get_user($apidata['api_arg']);
|
|
- }
|
|
+ if ($email) {
|
|
+ $user = User::staticGet('email', $email);
|
|
+ } elseif (isset($apidata['api_arg'])) {
|
|
+ $user = $this->get_user($apidata['api_arg']);
|
|
+ }
|
|
hunk ./actions/twitapiusers.php 43
|
|
- if (!$user) {
|
|
- // XXX: Twitter returns a random(?) user instead of throwing and err! -- Zach
|
|
- $this->client_error(_('Not found.'), 404, $apidata['content-type']);
|
|
- return;
|
|
- }
|
|
+ if (!$user) {
|
|
+ // XXX: Twitter returns a random(?) user instead of throwing and err! -- Zach
|
|
+ $this->client_error(_('Not found.'), 404, $apidata['content-type']);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twitapiusers.php 49
|
|
- $this->show_extended_profile($user, $apidata);
|
|
- }
|
|
+ $this->show_extended_profile($user, $apidata);
|
|
+ }
|
|
hunk ./actions/twittersettings.php 28
|
|
- function get_instructions() {
|
|
- return _('Add your Twitter account to automatically send your notices to Twitter, ' .
|
|
- 'and subscribe to Twitter friends already here.');
|
|
- }
|
|
+ function get_instructions() {
|
|
+ return _('Add your Twitter account to automatically send your notices to Twitter, ' .
|
|
+ 'and subscribe to Twitter friends already here.');
|
|
+ }
|
|
hunk ./actions/twittersettings.php 33
|
|
- function show_form($msg=NULL, $success=false) {
|
|
- $user = common_current_user();
|
|
- $profile = $user->getProfile();
|
|
- $fuser = NULL;
|
|
- $flink = Foreign_link::getByUserID($user->id, 1); // 1 == Twitter
|
|
+ function show_form($msg=NULL, $success=false) {
|
|
+ $user = common_current_user();
|
|
+ $profile = $user->getProfile();
|
|
+ $fuser = NULL;
|
|
+ $flink = Foreign_link::getByUserID($user->id, 1); // 1 == Twitter
|
|
hunk ./actions/twittersettings.php 39
|
|
- if ($flink) {
|
|
- $fuser = $flink->getForeignUser();
|
|
- }
|
|
+ if ($flink) {
|
|
+ $fuser = $flink->getForeignUser();
|
|
+ }
|
|
hunk ./actions/twittersettings.php 43
|
|
- $this->form_header(_('Twitter settings'), $msg, $success);
|
|
- common_element_start('form', array('method' => 'post',
|
|
- 'id' => 'twittersettings',
|
|
- 'action' =>
|
|
- common_local_url('twittersettings')));
|
|
- common_hidden('token', common_session_token());
|
|
+ $this->form_header(_('Twitter settings'), $msg, $success);
|
|
+ common_element_start('form', array('method' => 'post',
|
|
+ 'id' => 'twittersettings',
|
|
+ 'action' =>
|
|
+ common_local_url('twittersettings')));
|
|
+ common_hidden('token', common_session_token());
|
|
hunk ./actions/twittersettings.php 50
|
|
- common_element('h2', NULL, _('Twitter Account'));
|
|
+ common_element('h2', NULL, _('Twitter Account'));
|
|
hunk ./actions/twittersettings.php 52
|
|
- if ($fuser) {
|
|
- common_element_start('p');
|
|
+ if ($fuser) {
|
|
+ common_element_start('p');
|
|
hunk ./actions/twittersettings.php 55
|
|
- common_element('span', 'twitter_user', $fuser->nickname);
|
|
- common_element('a', array('href' => $fuser->uri), $fuser->uri);
|
|
- common_element('span', 'input_instructions',
|
|
- _('Current verified Twitter account.'));
|
|
- common_hidden('flink_foreign_id', $flink->foreign_id);
|
|
- common_element_end('p');
|
|
- common_submit('remove', _('Remove'));
|
|
- } else {
|
|
- common_input('twitter_username', _('Twitter user name'),
|
|
- ($this->arg('twitter_username')) ? $this->arg('twitter_username') : $profile->nickname,
|
|
- _('No spaces, please.')); // hey, it's what Twitter says
|
|
+ common_element('span', 'twitter_user', $fuser->nickname);
|
|
+ common_element('a', array('href' => $fuser->uri), $fuser->uri);
|
|
+ common_element('span', 'input_instructions',
|
|
+ _('Current verified Twitter account.'));
|
|
+ common_hidden('flink_foreign_id', $flink->foreign_id);
|
|
+ common_element_end('p');
|
|
+ common_submit('remove', _('Remove'));
|
|
+ } else {
|
|
+ common_input('twitter_username', _('Twitter user name'),
|
|
+ ($this->arg('twitter_username')) ? $this->arg('twitter_username') : $profile->nickname,
|
|
+ _('No spaces, please.')); // hey, it's what Twitter says
|
|
hunk ./actions/twittersettings.php 67
|
|
- common_password('twitter_password', _('Twitter password'));
|
|
- }
|
|
+ common_password('twitter_password', _('Twitter password'));
|
|
+ }
|
|
hunk ./actions/twittersettings.php 70
|
|
- common_element('h2', NULL, _('Preferences'));
|
|
+ common_element('h2', NULL, _('Preferences'));
|
|
hunk ./actions/twittersettings.php 72
|
|
- common_checkbox('noticesync', _('Automatically send my notices to Twitter.'),
|
|
- ($flink) ? ($flink->noticesync & FOREIGN_NOTICE_SEND) : true);
|
|
+ common_checkbox('noticesync', _('Automatically send my notices to Twitter.'),
|
|
+ ($flink) ? ($flink->noticesync & FOREIGN_NOTICE_SEND) : true);
|
|
hunk ./actions/twittersettings.php 75
|
|
- common_checkbox('replysync', _('Send local "@" replies to Twitter.'),
|
|
- ($flink) ? ($flink->noticesync & FOREIGN_NOTICE_SEND_REPLY) : true);
|
|
+ common_checkbox('replysync', _('Send local "@" replies to Twitter.'),
|
|
+ ($flink) ? ($flink->noticesync & FOREIGN_NOTICE_SEND_REPLY) : true);
|
|
hunk ./actions/twittersettings.php 78
|
|
- common_checkbox('friendsync', _('Subscribe to my Twitter friends here.'),
|
|
- ($flink) ? ($flink->friendsync & FOREIGN_FRIEND_RECV) : false);
|
|
+ common_checkbox('friendsync', _('Subscribe to my Twitter friends here.'),
|
|
+ ($flink) ? ($flink->friendsync & FOREIGN_FRIEND_RECV) : false);
|
|
hunk ./actions/twittersettings.php 81
|
|
- if ($flink) {
|
|
- common_submit('save', _('Save'));
|
|
- } else {
|
|
- common_submit('add', _('Add'));
|
|
- }
|
|
+ if ($flink) {
|
|
+ common_submit('save', _('Save'));
|
|
+ } else {
|
|
+ common_submit('add', _('Add'));
|
|
+ }
|
|
hunk ./actions/twittersettings.php 87
|
|
- $this->show_twitter_subscriptions();
|
|
+ $this->show_twitter_subscriptions();
|
|
hunk ./actions/twittersettings.php 89
|
|
- common_element_end('form');
|
|
+ common_element_end('form');
|
|
hunk ./actions/twittersettings.php 91
|
|
- common_show_footer();
|
|
- }
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/twittersettings.php 94
|
|
- function subscribed_twitter_users() {
|
|
+ function subscribed_twitter_users() {
|
|
hunk ./actions/twittersettings.php 96
|
|
- $current_user = common_current_user();
|
|
+ $current_user = common_current_user();
|
|
hunk ./actions/twittersettings.php 98
|
|
- $qry = 'SELECT user.* ' .
|
|
- 'FROM subscription ' .
|
|
- 'JOIN user ON subscription.subscribed = user.id ' .
|
|
- 'JOIN foreign_link ON foreign_link.user_id = user.id ' .
|
|
- 'WHERE subscriber = %d ' .
|
|
- 'ORDER BY user.nickname';
|
|
+ $qry = 'SELECT user.* ' .
|
|
+ 'FROM subscription ' .
|
|
+ 'JOIN user ON subscription.subscribed = user.id ' .
|
|
+ 'JOIN foreign_link ON foreign_link.user_id = user.id ' .
|
|
+ 'WHERE subscriber = %d ' .
|
|
+ 'ORDER BY user.nickname';
|
|
hunk ./actions/twittersettings.php 105
|
|
- $user = new User();
|
|
+ $user = new User();
|
|
hunk ./actions/twittersettings.php 107
|
|
- $user->query(sprintf($qry, $current_user->id));
|
|
+ $user->query(sprintf($qry, $current_user->id));
|
|
hunk ./actions/twittersettings.php 109
|
|
- $users = array();
|
|
+ $users = array();
|
|
hunk ./actions/twittersettings.php 111
|
|
- while ($user->fetch()) {
|
|
+ while ($user->fetch()) {
|
|
hunk ./actions/twittersettings.php 113
|
|
- // Don't include the user's own self-subscription
|
|
- if ($user->id != $current_user->id) {
|
|
- $users[] = clone($user);
|
|
- }
|
|
- }
|
|
+ // Don't include the user's own self-subscription
|
|
+ if ($user->id != $current_user->id) {
|
|
+ $users[] = clone($user);
|
|
+ }
|
|
+ }
|
|
hunk ./actions/twittersettings.php 119
|
|
- return $users;
|
|
- }
|
|
+ return $users;
|
|
+ }
|
|
hunk ./actions/twittersettings.php 122
|
|
- function show_twitter_subscriptions() {
|
|
+ function show_twitter_subscriptions() {
|
|
hunk ./actions/twittersettings.php 124
|
|
- $friends = $this->subscribed_twitter_users();
|
|
- $friends_count = count($friends);
|
|
+ $friends = $this->subscribed_twitter_users();
|
|
+ $friends_count = count($friends);
|
|
hunk ./actions/twittersettings.php 127
|
|
- if ($friends_count > 0) {
|
|
+ if ($friends_count > 0) {
|
|
hunk ./actions/twittersettings.php 129
|
|
- common_element('h3', NULL, _('Twitter Friends'));
|
|
- common_element_start('div', array('id' => 'subscriptions'));
|
|
- common_element_start('ul', array('id' => 'subscriptions_avatars'));
|
|
+ common_element('h3', NULL, _('Twitter Friends'));
|
|
+ common_element_start('div', array('id' => 'subscriptions'));
|
|
+ common_element_start('ul', array('id' => 'subscriptions_avatars'));
|
|
hunk ./actions/twittersettings.php 133
|
|
- for ($i = 0; $i < min($friends_count, SUBSCRIPTIONS); $i++) {
|
|
+ for ($i = 0; $i < min($friends_count, SUBSCRIPTIONS); $i++) {
|
|
hunk ./actions/twittersettings.php 135
|
|
- $other = Profile::staticGet($friends[$i]->id);
|
|
+ $other = Profile::staticGet($friends[$i]->id);
|
|
hunk ./actions/twittersettings.php 137
|
|
- if (!$other) {
|
|
- common_log_db_error($subs, 'SELECT', __FILE__);
|
|
- continue;
|
|
- }
|
|
+ if (!$other) {
|
|
+ common_log_db_error($subs, 'SELECT', __FILE__);
|
|
+ continue;
|
|
+ }
|
|
hunk ./actions/twittersettings.php 142
|
|
- common_element_start('li');
|
|
- common_element_start('a', array('title' => ($other->fullname) ?
|
|
- $other->fullname :
|
|
- $other->nickname,
|
|
- 'href' => $other->profileurl,
|
|
- 'rel' => 'contact',
|
|
- 'class' => 'subscription'));
|
|
- $avatar = $other->getAvatar(AVATAR_MINI_SIZE);
|
|
- common_element('img', array('src' => (($avatar) ? common_avatar_display_url($avatar) : common_default_avatar(AVATAR_MINI_SIZE)),
|
|
- 'width' => AVATAR_MINI_SIZE,
|
|
- 'height' => AVATAR_MINI_SIZE,
|
|
- 'class' => 'avatar mini',
|
|
- 'alt' => ($other->fullname) ?
|
|
- $other->fullname :
|
|
- $other->nickname));
|
|
- common_element_end('a');
|
|
- common_element_end('li');
|
|
+ common_element_start('li');
|
|
+ common_element_start('a', array('title' => ($other->fullname) ?
|
|
+ $other->fullname :
|
|
+ $other->nickname,
|
|
+ 'href' => $other->profileurl,
|
|
+ 'rel' => 'contact',
|
|
+ 'class' => 'subscription'));
|
|
+ $avatar = $other->getAvatar(AVATAR_MINI_SIZE);
|
|
+ common_element('img', array('src' => (($avatar) ? common_avatar_display_url($avatar) : common_default_avatar(AVATAR_MINI_SIZE)),
|
|
+ 'width' => AVATAR_MINI_SIZE,
|
|
+ 'height' => AVATAR_MINI_SIZE,
|
|
+ 'class' => 'avatar mini',
|
|
+ 'alt' => ($other->fullname) ?
|
|
+ $other->fullname :
|
|
+ $other->nickname));
|
|
+ common_element_end('a');
|
|
+ common_element_end('li');
|
|
hunk ./actions/twittersettings.php 160
|
|
- }
|
|
+ }
|
|
hunk ./actions/twittersettings.php 162
|
|
- common_element_end('ul');
|
|
- common_element_end('div');
|
|
+ common_element_end('ul');
|
|
+ common_element_end('div');
|
|
hunk ./actions/twittersettings.php 165
|
|
- }
|
|
+ }
|
|
hunk ./actions/twittersettings.php 167
|
|
- // XXX Figure out a way to show all Twitter friends... ?
|
|
+ // XXX Figure out a way to show all Twitter friends... ?
|
|
hunk ./actions/twittersettings.php 169
|
|
- /*
|
|
- if ($subs_count > SUBSCRIPTIONS) {
|
|
- common_element_start('p', array('id' => 'subscriptions_viewall'));
|
|
+ /*
|
|
+ if ($subs_count > SUBSCRIPTIONS) {
|
|
+ common_element_start('p', array('id' => 'subscriptions_viewall'));
|
|
hunk ./actions/twittersettings.php 173
|
|
- common_element('a', array('href' => common_local_url('subscriptions',
|
|
- array('nickname' => $profile->nickname)),
|
|
- 'class' => 'moresubscriptions'),
|
|
- _('All subscriptions'));
|
|
- common_element_end('p');
|
|
- }
|
|
- */
|
|
+ common_element('a', array('href' => common_local_url('subscriptions',
|
|
+ array('nickname' => $profile->nickname)),
|
|
+ 'class' => 'moresubscriptions'),
|
|
+ _('All subscriptions'));
|
|
+ common_element_end('p');
|
|
+ }
|
|
+ */
|
|
hunk ./actions/twittersettings.php 181
|
|
- }
|
|
+ }
|
|
hunk ./actions/twittersettings.php 183
|
|
- function handle_post() {
|
|
+ function handle_post() {
|
|
hunk ./actions/twittersettings.php 185
|
|
- # CSRF protection
|
|
- $token = $this->trimmed('token');
|
|
- if (!$token || $token != common_session_token()) {
|
|
- $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
- return;
|
|
- }
|
|
+ # CSRF protection
|
|
+ $token = $this->trimmed('token');
|
|
+ if (!$token || $token != common_session_token()) {
|
|
+ $this->show_form(_('There was a problem with your session token. Try again, please.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twittersettings.php 192
|
|
- if ($this->arg('save')) {
|
|
- $this->save_preferences();
|
|
- } else if ($this->arg('add')) {
|
|
- $this->add_twitter_acct();
|
|
- } else if ($this->arg('remove')) {
|
|
- $this->remove_twitter_acct();
|
|
- } else {
|
|
- $this->show_form(_('Unexpected form submission.'));
|
|
- }
|
|
- }
|
|
+ if ($this->arg('save')) {
|
|
+ $this->save_preferences();
|
|
+ } else if ($this->arg('add')) {
|
|
+ $this->add_twitter_acct();
|
|
+ } else if ($this->arg('remove')) {
|
|
+ $this->remove_twitter_acct();
|
|
+ } else {
|
|
+ $this->show_form(_('Unexpected form submission.'));
|
|
+ }
|
|
+ }
|
|
hunk ./actions/twittersettings.php 203
|
|
- function add_twitter_acct() {
|
|
+ function add_twitter_acct() {
|
|
hunk ./actions/twittersettings.php 205
|
|
- $screen_name = $this->trimmed('twitter_username');
|
|
- $password = $this->trimmed('twitter_password');
|
|
- $noticesync = $this->boolean('noticesync');
|
|
- $replysync = $this->boolean('replysync');
|
|
- $friendsync = $this->boolean('friendsync');
|
|
+ $screen_name = $this->trimmed('twitter_username');
|
|
+ $password = $this->trimmed('twitter_password');
|
|
+ $noticesync = $this->boolean('noticesync');
|
|
+ $replysync = $this->boolean('replysync');
|
|
+ $friendsync = $this->boolean('friendsync');
|
|
hunk ./actions/twittersettings.php 211
|
|
- if (!Validate::string($screen_name,
|
|
- array( 'min_length' => 1,
|
|
- 'max_length' => 15,
|
|
- 'format' => VALIDATE_NUM . VALIDATE_ALPHA . '_'))) {
|
|
- $this->show_form(
|
|
- _('Username must have only numbers, upper- and lowercase letters, and underscore (_). 15 chars max.'));
|
|
- return;
|
|
- }
|
|
+ if (!Validate::string($screen_name,
|
|
+ array( 'min_length' => 1,
|
|
+ 'max_length' => 15,
|
|
+ 'format' => VALIDATE_NUM . VALIDATE_ALPHA . '_'))) {
|
|
+ $this->show_form(
|
|
+ _('Username must have only numbers, upper- and lowercase letters, and underscore (_). 15 chars max.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twittersettings.php 220
|
|
- if (!$this->verify_credentials($screen_name, $password)) {
|
|
- $this->show_form(_('Could not verify your Twitter credentials!'));
|
|
- return;
|
|
- }
|
|
+ if (!$this->verify_credentials($screen_name, $password)) {
|
|
+ $this->show_form(_('Could not verify your Twitter credentials!'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twittersettings.php 225
|
|
- $twit_user = twitter_user_info($screen_name, $password);
|
|
+ $twit_user = twitter_user_info($screen_name, $password);
|
|
hunk ./actions/twittersettings.php 227
|
|
- if (!$twit_user) {
|
|
- $this->show_form(sprintf(_('Unable to retrieve account information for "%s" from Twitter.'),
|
|
- $screen_name));
|
|
- return;
|
|
- }
|
|
+ if (!$twit_user) {
|
|
+ $this->show_form(sprintf(_('Unable to retrieve account information for "%s" from Twitter.'),
|
|
+ $screen_name));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twittersettings.php 233
|
|
- if (!save_twitter_user($twit_user->id, $screen_name)) {
|
|
- $this->show_form(_('Unable to save your Twitter settings!'));
|
|
- return;
|
|
- }
|
|
+ if (!save_twitter_user($twit_user->id, $screen_name)) {
|
|
+ $this->show_form(_('Unable to save your Twitter settings!'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twittersettings.php 238
|
|
- $user = common_current_user();
|
|
+ $user = common_current_user();
|
|
hunk ./actions/twittersettings.php 240
|
|
- $flink = DB_DataObject::factory('foreign_link');
|
|
- $flink->user_id = $user->id;
|
|
- $flink->foreign_id = $twit_user->id;
|
|
- $flink->service = 1; // Twitter
|
|
- $flink->credentials = $password;
|
|
- $flink->created = common_sql_now();
|
|
+ $flink = DB_DataObject::factory('foreign_link');
|
|
+ $flink->user_id = $user->id;
|
|
+ $flink->foreign_id = $twit_user->id;
|
|
+ $flink->service = 1; // Twitter
|
|
+ $flink->credentials = $password;
|
|
+ $flink->created = common_sql_now();
|
|
hunk ./actions/twittersettings.php 247
|
|
- $this->set_flags($flink, $noticesync, $replysync, $friendsync);
|
|
+ $this->set_flags($flink, $noticesync, $replysync, $friendsync);
|
|
hunk ./actions/twittersettings.php 249
|
|
- $flink_id = $flink->insert();
|
|
+ $flink_id = $flink->insert();
|
|
hunk ./actions/twittersettings.php 251
|
|
- if (!$flink_id) {
|
|
- common_log_db_error($flink, 'INSERT', __FILE__);
|
|
- $this->show_form(_('Unable to save your Twitter settings!'));
|
|
- return;
|
|
- }
|
|
+ if (!$flink_id) {
|
|
+ common_log_db_error($flink, 'INSERT', __FILE__);
|
|
+ $this->show_form(_('Unable to save your Twitter settings!'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twittersettings.php 257
|
|
- if ($friendsync) {
|
|
- save_twitter_friends($user, $twit_user->id, $screen_name, $password);
|
|
- }
|
|
+ if ($friendsync) {
|
|
+ save_twitter_friends($user, $twit_user->id, $screen_name, $password);
|
|
+ }
|
|
hunk ./actions/twittersettings.php 261
|
|
- $this->show_form(_('Twitter settings saved.'), true);
|
|
- }
|
|
+ $this->show_form(_('Twitter settings saved.'), true);
|
|
+ }
|
|
hunk ./actions/twittersettings.php 264
|
|
- function remove_twitter_acct() {
|
|
+ function remove_twitter_acct() {
|
|
hunk ./actions/twittersettings.php 266
|
|
- $user = common_current_user();
|
|
- $flink = Foreign_link::getByUserID($user->id, 1);
|
|
- $flink_foreign_id = $this->arg('flink_foreign_id');
|
|
+ $user = common_current_user();
|
|
+ $flink = Foreign_link::getByUserID($user->id, 1);
|
|
+ $flink_foreign_id = $this->arg('flink_foreign_id');
|
|
hunk ./actions/twittersettings.php 270
|
|
- # Maybe an old tab open...?
|
|
- if ($flink->foreign_id != $flink_foreign_id) {
|
|
- $this->show_form(_('That is not your Twitter account.'));
|
|
- return;
|
|
- }
|
|
+ # Maybe an old tab open...?
|
|
+ if ($flink->foreign_id != $flink_foreign_id) {
|
|
+ $this->show_form(_('That is not your Twitter account.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twittersettings.php 276
|
|
- $result = $flink->delete();
|
|
+ $result = $flink->delete();
|
|
hunk ./actions/twittersettings.php 278
|
|
- if (!$result) {
|
|
- common_log_db_error($flink, 'DELETE', __FILE__);
|
|
- common_server_error(_('Couldn\'t remove Twitter user.'));
|
|
- return;
|
|
- }
|
|
+ if (!$result) {
|
|
+ common_log_db_error($flink, 'DELETE', __FILE__);
|
|
+ common_server_error(_('Couldn\'t remove Twitter user.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twittersettings.php 284
|
|
- $this->show_form(_('Twitter account removed.'), TRUE);
|
|
- }
|
|
+ $this->show_form(_('Twitter account removed.'), TRUE);
|
|
+ }
|
|
hunk ./actions/twittersettings.php 287
|
|
- function save_preferences() {
|
|
+ function save_preferences() {
|
|
hunk ./actions/twittersettings.php 289
|
|
- $noticesync = $this->boolean('noticesync');
|
|
- $friendsync = $this->boolean('friendsync');
|
|
- $replysync = $this->boolean('replysync');
|
|
+ $noticesync = $this->boolean('noticesync');
|
|
+ $friendsync = $this->boolean('friendsync');
|
|
+ $replysync = $this->boolean('replysync');
|
|
hunk ./actions/twittersettings.php 293
|
|
- $user = common_current_user();
|
|
+ $user = common_current_user();
|
|
hunk ./actions/twittersettings.php 295
|
|
- $flink = Foreign_link::getByUserID($user->id, 1);
|
|
+ $flink = Foreign_link::getByUserID($user->id, 1);
|
|
hunk ./actions/twittersettings.php 297
|
|
- if (!$flink) {
|
|
- common_log_db_error($flink, 'SELECT', __FILE__);
|
|
- $this->show_form(_('Couldn\'t save Twitter preferences.'));
|
|
- return;
|
|
- }
|
|
+ if (!$flink) {
|
|
+ common_log_db_error($flink, 'SELECT', __FILE__);
|
|
+ $this->show_form(_('Couldn\'t save Twitter preferences.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twittersettings.php 303
|
|
- $twitter_id = $flink->foreign_id;
|
|
- $password = $flink->credentials;
|
|
+ $twitter_id = $flink->foreign_id;
|
|
+ $password = $flink->credentials;
|
|
hunk ./actions/twittersettings.php 306
|
|
- $fuser = $flink->getForeignUser();
|
|
+ $fuser = $flink->getForeignUser();
|
|
hunk ./actions/twittersettings.php 308
|
|
- if (!$fuser) {
|
|
- common_log_db_error($fuser, 'SELECT', __FILE__);
|
|
- $this->show_form(_('Couldn\'t save Twitter preferences.'));
|
|
- return;
|
|
- }
|
|
+ if (!$fuser) {
|
|
+ common_log_db_error($fuser, 'SELECT', __FILE__);
|
|
+ $this->show_form(_('Couldn\'t save Twitter preferences.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twittersettings.php 314
|
|
- $screen_name = $fuser->nickname;
|
|
+ $screen_name = $fuser->nickname;
|
|
hunk ./actions/twittersettings.php 316
|
|
- $original = clone($flink);
|
|
- $this->set_flags($flink, $noticesync, $replysync, $friendsync);
|
|
- $result = $flink->update($original);
|
|
+ $original = clone($flink);
|
|
+ $this->set_flags($flink, $noticesync, $replysync, $friendsync);
|
|
+ $result = $flink->update($original);
|
|
hunk ./actions/twittersettings.php 320
|
|
- if ($result === FALSE) {
|
|
- common_log_db_error($flink, 'UPDATE', __FILE__);
|
|
- $this->show_form(_('Couldn\'t save Twitter preferences.'));
|
|
- return;
|
|
- }
|
|
+ if ($result === FALSE) {
|
|
+ common_log_db_error($flink, 'UPDATE', __FILE__);
|
|
+ $this->show_form(_('Couldn\'t save Twitter preferences.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/twittersettings.php 326
|
|
- if ($friendsync) {
|
|
- save_twitter_friends($user, $flink->foreign_id, $screen_name, $password);
|
|
- }
|
|
+ if ($friendsync) {
|
|
+ save_twitter_friends($user, $flink->foreign_id, $screen_name, $password);
|
|
+ }
|
|
hunk ./actions/twittersettings.php 330
|
|
- $this->show_form(_('Twitter preferences saved.'));
|
|
- }
|
|
+ $this->show_form(_('Twitter preferences saved.'));
|
|
+ }
|
|
hunk ./actions/twittersettings.php 333
|
|
- function verify_credentials($screen_name, $password) {
|
|
- $uri = 'http://twitter.com/account/verify_credentials.json';
|
|
- $data = get_twitter_data($uri, $screen_name, $password);
|
|
+ function verify_credentials($screen_name, $password) {
|
|
+ $uri = 'http://twitter.com/account/verify_credentials.json';
|
|
+ $data = get_twitter_data($uri, $screen_name, $password);
|
|
hunk ./actions/twittersettings.php 337
|
|
- if (!$data) {
|
|
- return false;
|
|
- }
|
|
+ if (!$data) {
|
|
+ return false;
|
|
+ }
|
|
hunk ./actions/twittersettings.php 341
|
|
- $user = json_decode($data);
|
|
+ $user = json_decode($data);
|
|
hunk ./actions/twittersettings.php 343
|
|
- if (!$user) {
|
|
- return false;
|
|
- }
|
|
+ if (!$user) {
|
|
+ return false;
|
|
+ }
|
|
hunk ./actions/twittersettings.php 347
|
|
- $twitter_id = $user->status->id;
|
|
+ $twitter_id = $user->status->id;
|
|
hunk ./actions/twittersettings.php 349
|
|
- if ($twitter_id) {
|
|
- return $twitter_id;
|
|
- }
|
|
+ if ($twitter_id) {
|
|
+ return $twitter_id;
|
|
+ }
|
|
hunk ./actions/twittersettings.php 353
|
|
- return false;
|
|
- }
|
|
+ return false;
|
|
+ }
|
|
hunk ./actions/twittersettings.php 356
|
|
- function set_flags(&$flink, $noticesync, $replysync, $friendsync) {
|
|
- if ($noticesync) {
|
|
- $flink->noticesync |= FOREIGN_NOTICE_SEND;
|
|
- } else {
|
|
- $flink->noticesync &= ~FOREIGN_NOTICE_SEND;
|
|
- }
|
|
+ function set_flags(&$flink, $noticesync, $replysync, $friendsync) {
|
|
+ if ($noticesync) {
|
|
+ $flink->noticesync |= FOREIGN_NOTICE_SEND;
|
|
+ } else {
|
|
+ $flink->noticesync &= ~FOREIGN_NOTICE_SEND;
|
|
+ }
|
|
hunk ./actions/twittersettings.php 363
|
|
- if ($replysync) {
|
|
- $flink->noticesync |= FOREIGN_NOTICE_SEND_REPLY;
|
|
- } else {
|
|
- $flink->noticesync &= ~FOREIGN_NOTICE_SEND_REPLY;
|
|
- }
|
|
+ if ($replysync) {
|
|
+ $flink->noticesync |= FOREIGN_NOTICE_SEND_REPLY;
|
|
+ } else {
|
|
+ $flink->noticesync &= ~FOREIGN_NOTICE_SEND_REPLY;
|
|
+ }
|
|
hunk ./actions/twittersettings.php 369
|
|
- if ($friendsync) {
|
|
- $flink->friendsync |= FOREIGN_FRIEND_RECV;
|
|
- } else {
|
|
- $flink->friendsync &= ~FOREIGN_FRIEND_RECV;
|
|
- }
|
|
+ if ($friendsync) {
|
|
+ $flink->friendsync |= FOREIGN_FRIEND_RECV;
|
|
+ } else {
|
|
+ $flink->friendsync &= ~FOREIGN_FRIEND_RECV;
|
|
+ }
|
|
hunk ./actions/twittersettings.php 375
|
|
- $flink->profilesync = 0;
|
|
- }
|
|
+ $flink->profilesync = 0;
|
|
+ }
|
|
hunk ./actions/unblock.php 35
|
|
- $token = $this->trimmed('token');
|
|
+ $token = $this->trimmed('token');
|
|
hunk ./actions/unblock.php 37
|
|
- if (!$token || $token != common_session_token()) {
|
|
- $this->client_error(_('There was a problem with your session token. Try again, please.'));
|
|
- return;
|
|
- }
|
|
+ if (!$token || $token != common_session_token()) {
|
|
+ $this->client_error(_('There was a problem with your session token. Try again, please.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/unsubscribe.php 22
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
- if (!common_logged_in()) {
|
|
- common_user_error(_('Not logged in.'));
|
|
- return;
|
|
- }
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
+ if (!common_logged_in()) {
|
|
+ common_user_error(_('Not logged in.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/unsubscribe.php 29
|
|
- $user = common_current_user();
|
|
+ $user = common_current_user();
|
|
hunk ./actions/unsubscribe.php 31
|
|
- if ($_SERVER['REQUEST_METHOD'] != 'POST') {
|
|
- common_redirect(common_local_url('subscriptions', array('nickname' => $user->nickname)));
|
|
- return;
|
|
- }
|
|
+ if ($_SERVER['REQUEST_METHOD'] != 'POST') {
|
|
+ common_redirect(common_local_url('subscriptions', array('nickname' => $user->nickname)));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/unsubscribe.php 36
|
|
- # CSRF protection
|
|
+ # CSRF protection
|
|
hunk ./actions/unsubscribe.php 38
|
|
- $token = $this->trimmed('token');
|
|
+ $token = $this->trimmed('token');
|
|
hunk ./actions/unsubscribe.php 40
|
|
- if (!$token || $token != common_session_token()) {
|
|
- $this->client_error(_('There was a problem with your session token. Try again, please.'));
|
|
- return;
|
|
- }
|
|
+ if (!$token || $token != common_session_token()) {
|
|
+ $this->client_error(_('There was a problem with your session token. Try again, please.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/unsubscribe.php 45
|
|
- $other_id = $this->arg('unsubscribeto');
|
|
+ $other_id = $this->arg('unsubscribeto');
|
|
hunk ./actions/unsubscribe.php 59
|
|
- $result = subs_unsubscribe_to($user, $other);
|
|
+ $result = subs_unsubscribe_to($user, $other);
|
|
hunk ./actions/unsubscribe.php 61
|
|
- if ($result != true) {
|
|
- common_user_error($result);
|
|
- return;
|
|
- }
|
|
+ if ($result != true) {
|
|
+ common_user_error($result);
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/unsubscribe.php 66
|
|
- if ($this->boolean('ajax')) {
|
|
- common_start_html('text/xml;charset=utf-8', true);
|
|
- common_element_start('head');
|
|
- common_element('title', null, _('Unsubscribed'));
|
|
- common_element_end('head');
|
|
- common_element_start('body');
|
|
- common_subscribe_form($other);
|
|
- common_element_end('body');
|
|
- common_element_end('html');
|
|
- } else {
|
|
- common_redirect(common_local_url('subscriptions', array('nickname' =>
|
|
- $user->nickname)));
|
|
+ if ($this->boolean('ajax')) {
|
|
+ common_start_html('text/xml;charset=utf-8', true);
|
|
+ common_element_start('head');
|
|
+ common_element('title', null, _('Unsubscribed'));
|
|
+ common_element_end('head');
|
|
+ common_element_start('body');
|
|
+ common_subscribe_form($other);
|
|
+ common_element_end('body');
|
|
+ common_element_end('html');
|
|
+ } else {
|
|
+ common_redirect(common_local_url('subscriptions', array('nickname' =>
|
|
+ $user->nickname)));
|
|
hunk ./actions/unsubscribe.php 79
|
|
- }
|
|
+ }
|
|
hunk ./actions/updateprofile.php 25
|
|
-
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
- try {
|
|
- common_remove_magic_from_request();
|
|
- $req = OAuthRequest::from_request();
|
|
- # Note: server-to-server function!
|
|
- $server = omb_oauth_server();
|
|
- list($consumer, $token) = $server->verify_request($req);
|
|
- if ($this->update_profile($req, $consumer, $token)) {
|
|
- print "omb_version=".OMB_VERSION_01;
|
|
- }
|
|
- } catch (OAuthException $e) {
|
|
- $this->server_error($e->getMessage());
|
|
- return;
|
|
- }
|
|
- }
|
|
+
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
+ try {
|
|
+ common_remove_magic_from_request();
|
|
+ $req = OAuthRequest::from_request();
|
|
+ # Note: server-to-server function!
|
|
+ $server = omb_oauth_server();
|
|
+ list($consumer, $token) = $server->verify_request($req);
|
|
+ if ($this->update_profile($req, $consumer, $token)) {
|
|
+ print "omb_version=".OMB_VERSION_01;
|
|
+ }
|
|
+ } catch (OAuthException $e) {
|
|
+ $this->server_error($e->getMessage());
|
|
+ return;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/updateprofile.php 43
|
|
- function update_profile($req, $consumer, $token) {
|
|
- $version = $req->get_parameter('omb_version');
|
|
- if ($version != OMB_VERSION_01) {
|
|
- $this->client_error(_('Unsupported OMB version'), 400);
|
|
- return false;
|
|
- }
|
|
- # First, check to see if listenee exists
|
|
- $listenee = $req->get_parameter('omb_listenee');
|
|
- $remote = Remote_profile::staticGet('uri', $listenee);
|
|
- if (!$remote) {
|
|
- $this->client_error(_('Profile unknown'), 404);
|
|
- return false;
|
|
- }
|
|
- # Second, check to see if they should be able to post updates!
|
|
- # We see if there are any subscriptions to that remote user with
|
|
- # the given token.
|
|
+ function update_profile($req, $consumer, $token) {
|
|
+ $version = $req->get_parameter('omb_version');
|
|
+ if ($version != OMB_VERSION_01) {
|
|
+ $this->client_error(_('Unsupported OMB version'), 400);
|
|
+ return false;
|
|
+ }
|
|
+ # First, check to see if listenee exists
|
|
+ $listenee = $req->get_parameter('omb_listenee');
|
|
+ $remote = Remote_profile::staticGet('uri', $listenee);
|
|
+ if (!$remote) {
|
|
+ $this->client_error(_('Profile unknown'), 404);
|
|
+ return false;
|
|
+ }
|
|
+ # Second, check to see if they should be able to post updates!
|
|
+ # We see if there are any subscriptions to that remote user with
|
|
+ # the given token.
|
|
hunk ./actions/updateprofile.php 60
|
|
- $sub = new Subscription();
|
|
- $sub->subscribed = $remote->id;
|
|
- $sub->token = $token->key;
|
|
- if (!$sub->find(true)) {
|
|
- $this->client_error(_('You did not send us that profile'), 403);
|
|
- return false;
|
|
- }
|
|
+ $sub = new Subscription();
|
|
+ $sub->subscribed = $remote->id;
|
|
+ $sub->token = $token->key;
|
|
+ if (!$sub->find(true)) {
|
|
+ $this->client_error(_('You did not send us that profile'), 403);
|
|
+ return false;
|
|
+ }
|
|
hunk ./actions/updateprofile.php 68
|
|
- $profile = Profile::staticGet('id', $remote->id);
|
|
- if (!$profile) {
|
|
- # This one is our fault
|
|
- $this->server_error(_('Remote profile with no matching profile'), 500);
|
|
- return false;
|
|
- }
|
|
- $nickname = $req->get_parameter('omb_listenee_nickname');
|
|
- if ($nickname && !Validate::string($nickname, array('min_length' => 1,
|
|
- 'max_length' => 64,
|
|
- 'format' => VALIDATE_NUM . VALIDATE_ALPHA_LOWER))) {
|
|
- $this->client_error(_('Nickname must have only lowercase letters and numbers and no spaces.'));
|
|
- return false;
|
|
- }
|
|
- $license = $req->get_parameter('omb_listenee_license');
|
|
- if ($license && !common_valid_http_url($license)) {
|
|
- $this->client_error(sprintf(_("Invalid license URL '%s'"), $license));
|
|
- return false;
|
|
- }
|
|
- $profile_url = $req->get_parameter('omb_listenee_profile');
|
|
- if ($profile_url && !common_valid_http_url($profile_url)) {
|
|
- $this->client_error(sprintf(_("Invalid profile URL '%s'."), $profile_url));
|
|
- return false;
|
|
- }
|
|
- # optional stuff
|
|
- $fullname = $req->get_parameter('omb_listenee_fullname');
|
|
- if ($fullname && strlen($fullname) > 255) {
|
|
- $this->client_error(_("Full name is too long (max 255 chars)."));
|
|
- return false;
|
|
- }
|
|
- $homepage = $req->get_parameter('omb_listenee_homepage');
|
|
- if ($homepage && (!common_valid_http_url($homepage) || strlen($homepage) > 255)) {
|
|
- $this->client_error(sprintf(_("Invalid homepage '%s'"), $homepage));
|
|
- return false;
|
|
- }
|
|
- $bio = $req->get_parameter('omb_listenee_bio');
|
|
- if ($bio && strlen($bio) > 140) {
|
|
- $this->client_error(_("Bio is too long (max 140 chars)."));
|
|
- return false;
|
|
- }
|
|
- $location = $req->get_parameter('omb_listenee_location');
|
|
- if ($location && strlen($location) > 255) {
|
|
- $this->client_error(_("Location is too long (max 255 chars)."));
|
|
- return false;
|
|
- }
|
|
- $avatar = $req->get_parameter('omb_listenee_avatar');
|
|
- if ($avatar) {
|
|
- if (!common_valid_http_url($avatar) || strlen($avatar) > 255) {
|
|
- $this->client_error(sprintf(_("Invalid avatar URL '%s'"), $avatar));
|
|
- return false;
|
|
- }
|
|
- $size = @getimagesize($avatar);
|
|
- if (!$size) {
|
|
- $this->client_error(sprintf(_("Can't read avatar URL '%s'"), $avatar));
|
|
- return false;
|
|
- }
|
|
- if ($size[0] != AVATAR_PROFILE_SIZE || $size[1] != AVATAR_PROFILE_SIZE) {
|
|
- $this->client_error(sprintf(_("Wrong size image at '%s'"), $avatar));
|
|
- return false;
|
|
- }
|
|
- if (!in_array($size[2], array(IMAGETYPE_GIF, IMAGETYPE_JPEG,
|
|
- IMAGETYPE_PNG))) {
|
|
- $this->client_error(sprintf(_("Wrong image type for '%s'"), $avatar));
|
|
- return false;
|
|
- }
|
|
- }
|
|
+ $profile = Profile::staticGet('id', $remote->id);
|
|
+ if (!$profile) {
|
|
+ # This one is our fault
|
|
+ $this->server_error(_('Remote profile with no matching profile'), 500);
|
|
+ return false;
|
|
+ }
|
|
+ $nickname = $req->get_parameter('omb_listenee_nickname');
|
|
+ if ($nickname && !Validate::string($nickname, array('min_length' => 1,
|
|
+ 'max_length' => 64,
|
|
+ 'format' => VALIDATE_NUM . VALIDATE_ALPHA_LOWER))) {
|
|
+ $this->client_error(_('Nickname must have only lowercase letters and numbers and no spaces.'));
|
|
+ return false;
|
|
+ }
|
|
+ $license = $req->get_parameter('omb_listenee_license');
|
|
+ if ($license && !common_valid_http_url($license)) {
|
|
+ $this->client_error(sprintf(_("Invalid license URL '%s'"), $license));
|
|
+ return false;
|
|
+ }
|
|
+ $profile_url = $req->get_parameter('omb_listenee_profile');
|
|
+ if ($profile_url && !common_valid_http_url($profile_url)) {
|
|
+ $this->client_error(sprintf(_("Invalid profile URL '%s'."), $profile_url));
|
|
+ return false;
|
|
+ }
|
|
+ # optional stuff
|
|
+ $fullname = $req->get_parameter('omb_listenee_fullname');
|
|
+ if ($fullname && strlen($fullname) > 255) {
|
|
+ $this->client_error(_("Full name is too long (max 255 chars)."));
|
|
+ return false;
|
|
+ }
|
|
+ $homepage = $req->get_parameter('omb_listenee_homepage');
|
|
+ if ($homepage && (!common_valid_http_url($homepage) || strlen($homepage) > 255)) {
|
|
+ $this->client_error(sprintf(_("Invalid homepage '%s'"), $homepage));
|
|
+ return false;
|
|
+ }
|
|
+ $bio = $req->get_parameter('omb_listenee_bio');
|
|
+ if ($bio && strlen($bio) > 140) {
|
|
+ $this->client_error(_("Bio is too long (max 140 chars)."));
|
|
+ return false;
|
|
+ }
|
|
+ $location = $req->get_parameter('omb_listenee_location');
|
|
+ if ($location && strlen($location) > 255) {
|
|
+ $this->client_error(_("Location is too long (max 255 chars)."));
|
|
+ return false;
|
|
+ }
|
|
+ $avatar = $req->get_parameter('omb_listenee_avatar');
|
|
+ if ($avatar) {
|
|
+ if (!common_valid_http_url($avatar) || strlen($avatar) > 255) {
|
|
+ $this->client_error(sprintf(_("Invalid avatar URL '%s'"), $avatar));
|
|
+ return false;
|
|
+ }
|
|
+ $size = @getimagesize($avatar);
|
|
+ if (!$size) {
|
|
+ $this->client_error(sprintf(_("Can't read avatar URL '%s'"), $avatar));
|
|
+ return false;
|
|
+ }
|
|
+ if ($size[0] != AVATAR_PROFILE_SIZE || $size[1] != AVATAR_PROFILE_SIZE) {
|
|
+ $this->client_error(sprintf(_("Wrong size image at '%s'"), $avatar));
|
|
+ return false;
|
|
+ }
|
|
+ if (!in_array($size[2], array(IMAGETYPE_GIF, IMAGETYPE_JPEG,
|
|
+ IMAGETYPE_PNG))) {
|
|
+ $this->client_error(sprintf(_("Wrong image type for '%s'"), $avatar));
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/updateprofile.php 134
|
|
- $orig_profile = clone($profile);
|
|
+ $orig_profile = clone($profile);
|
|
hunk ./actions/updateprofile.php 136
|
|
- if ($nickname) {
|
|
- $profile->nickname = $nickname;
|
|
- }
|
|
- if ($profile_url) {
|
|
- $profile->profileurl = $profile_url;
|
|
- }
|
|
- if ($fullname) {
|
|
- $profile->fullname = $fullname;
|
|
- }
|
|
- if ($homepage) {
|
|
- $profile->homepage = $homepage;
|
|
- }
|
|
- if ($bio) {
|
|
- $profile->bio = $bio;
|
|
- }
|
|
- if ($location) {
|
|
- $profile->location = $location;
|
|
- }
|
|
+ if ($nickname) {
|
|
+ $profile->nickname = $nickname;
|
|
+ }
|
|
+ if ($profile_url) {
|
|
+ $profile->profileurl = $profile_url;
|
|
+ }
|
|
+ if ($fullname) {
|
|
+ $profile->fullname = $fullname;
|
|
+ }
|
|
+ if ($homepage) {
|
|
+ $profile->homepage = $homepage;
|
|
+ }
|
|
+ if ($bio) {
|
|
+ $profile->bio = $bio;
|
|
+ }
|
|
+ if ($location) {
|
|
+ $profile->location = $location;
|
|
+ }
|
|
hunk ./actions/updateprofile.php 155
|
|
- if (!$profile->update($orig_profile)) {
|
|
- $this->server_error(_('Could not save new profile info'), 500);
|
|
- return false;
|
|
- } else {
|
|
- if ($avatar) {
|
|
- $temp_filename = tempnam(sys_get_temp_dir(), 'listenee_avatar');
|
|
- copy($avatar, $temp_filename);
|
|
- if (!$profile->setOriginal($temp_filename)) {
|
|
- $this->server_error(_('Could not save avatar info'), 500);
|
|
- return false;
|
|
- }
|
|
- }
|
|
- header('HTTP/1.1 200 OK');
|
|
- header('Content-type: text/plain');
|
|
- print 'Updated profile';
|
|
- print "\n";
|
|
- return true;
|
|
- }
|
|
- }
|
|
+ if (!$profile->update($orig_profile)) {
|
|
+ $this->server_error(_('Could not save new profile info'), 500);
|
|
+ return false;
|
|
+ } else {
|
|
+ if ($avatar) {
|
|
+ $temp_filename = tempnam(sys_get_temp_dir(), 'listenee_avatar');
|
|
+ copy($avatar, $temp_filename);
|
|
+ if (!$profile->setOriginal($temp_filename)) {
|
|
+ $this->server_error(_('Could not save avatar info'), 500);
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+ header('HTTP/1.1 200 OK');
|
|
+ header('Content-type: text/plain');
|
|
+ print 'Updated profile';
|
|
+ print "\n";
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/userauthorization.php 27
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
hunk ./actions/userauthorization.php 30
|
|
- if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
|
- # CSRF protection
|
|
- $token = $this->trimmed('token');
|
|
- if (!$token || $token != common_session_token()) {
|
|
- $req = $this->get_stored_request();
|
|
- $this->show_form(_('There was a problem with your session token. Try again, please.'), $req);
|
|
- return;
|
|
- }
|
|
- # We've shown the form, now post user's choice
|
|
- $this->send_authorization();
|
|
- } else {
|
|
- if (!common_logged_in()) {
|
|
- # Go log in, and then come back
|
|
- common_debug('saving URL for returnto', __FILE__);
|
|
- common_set_returnto($_SERVER['REQUEST_URI']);
|
|
+ if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
|
+ # CSRF protection
|
|
+ $token = $this->trimmed('token');
|
|
+ if (!$token || $token != common_session_token()) {
|
|
+ $req = $this->get_stored_request();
|
|
+ $this->show_form(_('There was a problem with your session token. Try again, please.'), $req);
|
|
+ return;
|
|
+ }
|
|
+ # We've shown the form, now post user's choice
|
|
+ $this->send_authorization();
|
|
+ } else {
|
|
+ if (!common_logged_in()) {
|
|
+ # Go log in, and then come back
|
|
+ common_debug('saving URL for returnto', __FILE__);
|
|
+ common_set_returnto($_SERVER['REQUEST_URI']);
|
|
hunk ./actions/userauthorization.php 46
|
|
- common_debug('redirecting to login', __FILE__);
|
|
- common_redirect(common_local_url('login'));
|
|
- return;
|
|
- }
|
|
- try {
|
|
- # this must be a new request
|
|
- common_debug('getting new request', __FILE__);
|
|
- $req = $this->get_new_request();
|
|
- if (!$req) {
|
|
- $this->client_error(_('No request found!'));
|
|
- }
|
|
- common_debug('validating request', __FILE__);
|
|
- # XXX: only validate new requests, since nonce is one-time use
|
|
- $this->validate_request($req);
|
|
- common_debug('showing form', __FILE__);
|
|
- $this->store_request($req);
|
|
- $this->show_form($req);
|
|
- } catch (OAuthException $e) {
|
|
- $this->clear_request();
|
|
- $this->client_error($e->getMessage());
|
|
- return;
|
|
- }
|
|
+ common_debug('redirecting to login', __FILE__);
|
|
+ common_redirect(common_local_url('login'));
|
|
+ return;
|
|
+ }
|
|
+ try {
|
|
+ # this must be a new request
|
|
+ common_debug('getting new request', __FILE__);
|
|
+ $req = $this->get_new_request();
|
|
+ if (!$req) {
|
|
+ $this->client_error(_('No request found!'));
|
|
+ }
|
|
+ common_debug('validating request', __FILE__);
|
|
+ # XXX: only validate new requests, since nonce is one-time use
|
|
+ $this->validate_request($req);
|
|
+ common_debug('showing form', __FILE__);
|
|
+ $this->store_request($req);
|
|
+ $this->show_form($req);
|
|
+ } catch (OAuthException $e) {
|
|
+ $this->clear_request();
|
|
+ $this->client_error($e->getMessage());
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/userauthorization.php 69
|
|
- }
|
|
- }
|
|
+ }
|
|
+ }
|
|
hunk ./actions/userauthorization.php 72
|
|
- function show_form($req) {
|
|
+ function show_form($req) {
|
|
hunk ./actions/userauthorization.php 74
|
|
- $nickname = $req->get_parameter('omb_listenee_nickname');
|
|
- $profile = $req->get_parameter('omb_listenee_profile');
|
|
- $license = $req->get_parameter('omb_listenee_license');
|
|
- $fullname = $req->get_parameter('omb_listenee_fullname');
|
|
- $homepage = $req->get_parameter('omb_listenee_homepage');
|
|
- $bio = $req->get_parameter('omb_listenee_bio');
|
|
- $location = $req->get_parameter('omb_listenee_location');
|
|
- $avatar = $req->get_parameter('omb_listenee_avatar');
|
|
+ $nickname = $req->get_parameter('omb_listenee_nickname');
|
|
+ $profile = $req->get_parameter('omb_listenee_profile');
|
|
+ $license = $req->get_parameter('omb_listenee_license');
|
|
+ $fullname = $req->get_parameter('omb_listenee_fullname');
|
|
+ $homepage = $req->get_parameter('omb_listenee_homepage');
|
|
+ $bio = $req->get_parameter('omb_listenee_bio');
|
|
+ $location = $req->get_parameter('omb_listenee_location');
|
|
+ $avatar = $req->get_parameter('omb_listenee_avatar');
|
|
hunk ./actions/userauthorization.php 83
|
|
- common_show_header(_('Authorize subscription'));
|
|
- common_element('p', NULL, _('Please check these details to make sure '.
|
|
- 'that you want to subscribe to this user\'s notices. '.
|
|
- 'If you didn\'t just ask to subscribe to someone\'s notices, '.
|
|
- 'click "Cancel".'));
|
|
- common_element_start('div', 'profile');
|
|
- if ($avatar) {
|
|
- common_element('img', array('src' => $avatar,
|
|
- 'class' => 'avatar profile',
|
|
- 'width' => AVATAR_PROFILE_SIZE,
|
|
- 'height' => AVATAR_PROFILE_SIZE,
|
|
- 'alt' => $nickname));
|
|
- }
|
|
- common_element('a', array('href' => $profile,
|
|
- 'class' => 'external profile nickname'),
|
|
- $nickname);
|
|
- if ($fullname) {
|
|
- common_element_start('div', 'fullname');
|
|
- if ($homepage) {
|
|
- common_element('a', array('href' => $homepage),
|
|
- $fullname);
|
|
- } else {
|
|
- common_text($fullname);
|
|
- }
|
|
- common_element_end('div');
|
|
- }
|
|
- if ($location) {
|
|
- common_element('div', 'location', $location);
|
|
- }
|
|
- if ($bio) {
|
|
- common_element('div', 'bio', $bio);
|
|
- }
|
|
- common_element_start('div', 'license');
|
|
- common_element('a', array('href' => $license,
|
|
- 'class' => 'license'),
|
|
- $license);
|
|
- common_element_end('div');
|
|
- common_element_end('div');
|
|
- common_element_start('form', array('method' => 'post',
|
|
- 'id' => 'userauthorization',
|
|
- 'name' => 'userauthorization',
|
|
- 'action' => common_local_url('userauthorization')));
|
|
- common_hidden('token', common_session_token());
|
|
- common_submit('accept', _('Accept'));
|
|
- common_submit('reject', _('Reject'));
|
|
- common_element_end('form');
|
|
- common_show_footer();
|
|
- }
|
|
+ common_show_header(_('Authorize subscription'));
|
|
+ common_element('p', NULL, _('Please check these details to make sure '.
|
|
+ 'that you want to subscribe to this user\'s notices. '.
|
|
+ 'If you didn\'t just ask to subscribe to someone\'s notices, '.
|
|
+ 'click "Cancel".'));
|
|
+ common_element_start('div', 'profile');
|
|
+ if ($avatar) {
|
|
+ common_element('img', array('src' => $avatar,
|
|
+ 'class' => 'avatar profile',
|
|
+ 'width' => AVATAR_PROFILE_SIZE,
|
|
+ 'height' => AVATAR_PROFILE_SIZE,
|
|
+ 'alt' => $nickname));
|
|
+ }
|
|
+ common_element('a', array('href' => $profile,
|
|
+ 'class' => 'external profile nickname'),
|
|
+ $nickname);
|
|
+ if ($fullname) {
|
|
+ common_element_start('div', 'fullname');
|
|
+ if ($homepage) {
|
|
+ common_element('a', array('href' => $homepage),
|
|
+ $fullname);
|
|
+ } else {
|
|
+ common_text($fullname);
|
|
+ }
|
|
+ common_element_end('div');
|
|
+ }
|
|
+ if ($location) {
|
|
+ common_element('div', 'location', $location);
|
|
+ }
|
|
+ if ($bio) {
|
|
+ common_element('div', 'bio', $bio);
|
|
+ }
|
|
+ common_element_start('div', 'license');
|
|
+ common_element('a', array('href' => $license,
|
|
+ 'class' => 'license'),
|
|
+ $license);
|
|
+ common_element_end('div');
|
|
+ common_element_end('div');
|
|
+ common_element_start('form', array('method' => 'post',
|
|
+ 'id' => 'userauthorization',
|
|
+ 'name' => 'userauthorization',
|
|
+ 'action' => common_local_url('userauthorization')));
|
|
+ common_hidden('token', common_session_token());
|
|
+ common_submit('accept', _('Accept'));
|
|
+ common_submit('reject', _('Reject'));
|
|
+ common_element_end('form');
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/userauthorization.php 132
|
|
- function send_authorization() {
|
|
- $req = $this->get_stored_request();
|
|
+ function send_authorization() {
|
|
+ $req = $this->get_stored_request();
|
|
hunk ./actions/userauthorization.php 135
|
|
- if (!$req) {
|
|
- common_user_error(_('No authorization request!'));
|
|
- return;
|
|
- }
|
|
+ if (!$req) {
|
|
+ common_user_error(_('No authorization request!'));
|
|
+ return;
|
|
+ }
|
|
hunk ./actions/userauthorization.php 140
|
|
- $callback = $req->get_parameter('oauth_callback');
|
|
+ $callback = $req->get_parameter('oauth_callback');
|
|
hunk ./actions/userauthorization.php 142
|
|
- if ($this->arg('accept')) {
|
|
- if (!$this->authorize_token($req)) {
|
|
- $this->client_error(_('Error authorizing token'));
|
|
- }
|
|
- if (!$this->save_remote_profile($req)) {
|
|
- $this->client_error(_('Error saving remote profile'));
|
|
- }
|
|
- if (!$callback) {
|
|
- $this->show_accept_message($req->get_parameter('oauth_token'));
|
|
- } else {
|
|
- $params = array();
|
|
- $params['oauth_token'] = $req->get_parameter('oauth_token');
|
|
- $params['omb_version'] = OMB_VERSION_01;
|
|
- $user = User::staticGet('uri', $req->get_parameter('omb_listener'));
|
|
- $profile = $user->getProfile();
|
|
- if (!$profile) {
|
|
- common_log_db_error($user, 'SELECT', __FILE__);
|
|
- $this->server_error(_('User without matching profile'));
|
|
- return;
|
|
- }
|
|
- $params['omb_listener_nickname'] = $user->nickname;
|
|
- $params['omb_listener_profile'] = common_local_url('showstream',
|
|
- array('nickname' => $user->nickname));
|
|
- if ($profile->fullname) {
|
|
- $params['omb_listener_fullname'] = $profile->fullname;
|
|
- }
|
|
- if ($profile->homepage) {
|
|
- $params['omb_listener_homepage'] = $profile->homepage;
|
|
- }
|
|
- if ($profile->bio) {
|
|
- $params['omb_listener_bio'] = $profile->bio;
|
|
- }
|
|
- if ($profile->location) {
|
|
- $params['omb_listener_location'] = $profile->location;
|
|
- }
|
|
- $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE);
|
|
- if ($avatar) {
|
|
- $params['omb_listener_avatar'] = $avatar->url;
|
|
- }
|
|
- $parts = array();
|
|
- foreach ($params as $k => $v) {
|
|
- $parts[] = $k . '=' . OAuthUtil::urlencodeRFC3986($v);
|
|
- }
|
|
- $query_string = implode('&', $parts);
|
|
- $parsed = parse_url($callback);
|
|
- $url = $callback . (($parsed['query']) ? '&' : '?') . $query_string;
|
|
- common_redirect($url, 303);
|
|
- }
|
|
- } else {
|
|
- if (!$callback) {
|
|
- $this->show_reject_message();
|
|
- } else {
|
|
- # XXX: not 100% sure how to signal failure... just redirect without token?
|
|
- common_redirect($callback, 303);
|
|
- }
|
|
- }
|
|
- }
|
|
+ if ($this->arg('accept')) {
|
|
+ if (!$this->authorize_token($req)) {
|
|
+ $this->client_error(_('Error authorizing token'));
|
|
+ }
|
|
+ if (!$this->save_remote_profile($req)) {
|
|
+ $this->client_error(_('Error saving remote profile'));
|
|
+ }
|
|
+ if (!$callback) {
|
|
+ $this->show_accept_message($req->get_parameter('oauth_token'));
|
|
+ } else {
|
|
+ $params = array();
|
|
+ $params['oauth_token'] = $req->get_parameter('oauth_token');
|
|
+ $params['omb_version'] = OMB_VERSION_01;
|
|
+ $user = User::staticGet('uri', $req->get_parameter('omb_listener'));
|
|
+ $profile = $user->getProfile();
|
|
+ if (!$profile) {
|
|
+ common_log_db_error($user, 'SELECT', __FILE__);
|
|
+ $this->server_error(_('User without matching profile'));
|
|
+ return;
|
|
+ }
|
|
+ $params['omb_listener_nickname'] = $user->nickname;
|
|
+ $params['omb_listener_profile'] = common_local_url('showstream',
|
|
+ array('nickname' => $user->nickname));
|
|
+ if ($profile->fullname) {
|
|
+ $params['omb_listener_fullname'] = $profile->fullname;
|
|
+ }
|
|
+ if ($profile->homepage) {
|
|
+ $params['omb_listener_homepage'] = $profile->homepage;
|
|
+ }
|
|
+ if ($profile->bio) {
|
|
+ $params['omb_listener_bio'] = $profile->bio;
|
|
+ }
|
|
+ if ($profile->location) {
|
|
+ $params['omb_listener_location'] = $profile->location;
|
|
+ }
|
|
+ $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE);
|
|
+ if ($avatar) {
|
|
+ $params['omb_listener_avatar'] = $avatar->url;
|
|
+ }
|
|
+ $parts = array();
|
|
+ foreach ($params as $k => $v) {
|
|
+ $parts[] = $k . '=' . OAuthUtil::urlencodeRFC3986($v);
|
|
+ }
|
|
+ $query_string = implode('&', $parts);
|
|
+ $parsed = parse_url($callback);
|
|
+ $url = $callback . (($parsed['query']) ? '&' : '?') . $query_string;
|
|
+ common_redirect($url, 303);
|
|
+ }
|
|
+ } else {
|
|
+ if (!$callback) {
|
|
+ $this->show_reject_message();
|
|
+ } else {
|
|
+ # XXX: not 100% sure how to signal failure... just redirect without token?
|
|
+ common_redirect($callback, 303);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
hunk ./actions/userauthorization.php 200
|
|
- function authorize_token(&$req) {
|
|
- $consumer_key = $req->get_parameter('oauth_consumer_key');
|
|
- $token_field = $req->get_parameter('oauth_token');
|
|
- common_debug('consumer key = "'.$consumer_key.'"', __FILE__);
|
|
- common_debug('token field = "'.$token_field.'"', __FILE__);
|
|
- $rt = new Token();
|
|
- $rt->consumer_key = $consumer_key;
|
|
- $rt->tok = $token_field;
|
|
- $rt->type = 0;
|
|
- $rt->state = 0;
|
|
- common_debug('request token to look up: "'.print_r($rt,TRUE).'"');
|
|
- if ($rt->find(true)) {
|
|
- common_debug('found request token to authorize', __FILE__);
|
|
- $orig_rt = clone($rt);
|
|
- $rt->state = 1; # Authorized but not used
|
|
- if ($rt->update($orig_rt)) {
|
|
- common_debug('updated request token so it is authorized', __FILE__);
|
|
- return true;
|
|
- }
|
|
- }
|
|
- return FALSE;
|
|
- }
|
|
+ function authorize_token(&$req) {
|
|
+ $consumer_key = $req->get_parameter('oauth_consumer_key');
|
|
+ $token_field = $req->get_parameter('oauth_token');
|
|
+ common_debug('consumer key = "'.$consumer_key.'"', __FILE__);
|
|
+ common_debug('token field = "'.$token_field.'"', __FILE__);
|
|
+ $rt = new Token();
|
|
+ $rt->consumer_key = $consumer_key;
|
|
+ $rt->tok = $token_field;
|
|
+ $rt->type = 0;
|
|
+ $rt->state = 0;
|
|
+ common_debug('request token to look up: "'.print_r($rt,TRUE).'"');
|
|
+ if ($rt->find(true)) {
|
|
+ common_debug('found request token to authorize', __FILE__);
|
|
+ $orig_rt = clone($rt);
|
|
+ $rt->state = 1; # Authorized but not used
|
|
+ if ($rt->update($orig_rt)) {
|
|
+ common_debug('updated request token so it is authorized', __FILE__);
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
+ return FALSE;
|
|
+ }
|
|
hunk ./actions/userauthorization.php 223
|
|
- # XXX: refactor with similar code in finishremotesubscribe.php
|
|
+ # XXX: refactor with similar code in finishremotesubscribe.php
|
|
hunk ./actions/userauthorization.php 225
|
|
- function save_remote_profile(&$req) {
|
|
- # FIXME: we should really do this when the consumer comes
|
|
- # back for an access token. If they never do, we've got stuff in a
|
|
- # weird state.
|
|
+ function save_remote_profile(&$req) {
|
|
+ # FIXME: we should really do this when the consumer comes
|
|
+ # back for an access token. If they never do, we've got stuff in a
|
|
+ # weird state.
|
|
hunk ./actions/userauthorization.php 230
|
|
- $nickname = $req->get_parameter('omb_listenee_nickname');
|
|
- $fullname = $req->get_parameter('omb_listenee_fullname');
|
|
- $profile_url = $req->get_parameter('omb_listenee_profile');
|
|
- $homepage = $req->get_parameter('omb_listenee_homepage');
|
|
- $bio = $req->get_parameter('omb_listenee_bio');
|
|
- $location = $req->get_parameter('omb_listenee_location');
|
|
- $avatar_url = $req->get_parameter('omb_listenee_avatar');
|
|
+ $nickname = $req->get_parameter('omb_listenee_nickname');
|
|
+ $fullname = $req->get_parameter('omb_listenee_fullname');
|
|
+ $profile_url = $req->get_parameter('omb_listenee_profile');
|
|
+ $homepage = $req->get_parameter('omb_listenee_homepage');
|
|
+ $bio = $req->get_parameter('omb_listenee_bio');
|
|
+ $location = $req->get_parameter('omb_listenee_location');
|
|
+ $avatar_url = $req->get_parameter('omb_listenee_avatar');
|
|
hunk ./actions/userauthorization.php 238
|
|
- $listenee = $req->get_parameter('omb_listenee');
|
|
- $remote = Remote_profile::staticGet('uri', $listenee);
|
|
+ $listenee = $req->get_parameter('omb_listenee');
|
|
+ $remote = Remote_profile::staticGet('uri', $listenee);
|
|
hunk ./actions/userauthorization.php 241
|
|
- if ($remote) {
|
|
- $exists = true;
|
|
- $profile = Profile::staticGet($remote->id);
|
|
- $orig_remote = clone($remote);
|
|
- $orig_profile = clone($profile);
|
|
- } else {
|
|
- $exists = false;
|
|
- $remote = new Remote_profile();
|
|
- $remote->uri = $listenee;
|
|
- $profile = new Profile();
|
|
- }
|
|
+ if ($remote) {
|
|
+ $exists = true;
|
|
+ $profile = Profile::staticGet($remote->id);
|
|
+ $orig_remote = clone($remote);
|
|
+ $orig_profile = clone($profile);
|
|
+ } else {
|
|
+ $exists = false;
|
|
+ $remote = new Remote_profile();
|
|
+ $remote->uri = $listenee;
|
|
+ $profile = new Profile();
|
|
+ }
|
|
hunk ./actions/userauthorization.php 253
|
|
- $profile->nickname = $nickname;
|
|
- $profile->profileurl = $profile_url;
|
|
+ $profile->nickname = $nickname;
|
|
+ $profile->profileurl = $profile_url;
|
|
hunk ./actions/userauthorization.php 256
|
|
- if ($fullname) {
|
|
- $profile->fullname = $fullname;
|
|
- }
|
|
- if ($homepage) {
|
|
- $profile->homepage = $homepage;
|
|
- }
|
|
- if ($bio) {
|
|
- $profile->bio = $bio;
|
|
- }
|
|
- if ($location) {
|
|
- $profile->location = $location;
|
|
- }
|
|
+ if ($fullname) {
|
|
+ $profile->fullname = $fullname;
|
|
+ }
|
|
+ if ($homepage) {
|
|
+ $profile->homepage = $homepage;
|
|
+ }
|
|
+ if ($bio) {
|
|
+ $profile->bio = $bio;
|
|
+ }
|
|
+ if ($location) {
|
|
+ $profile->location = $location;
|
|
+ }
|
|
hunk ./actions/userauthorization.php 269
|
|
- if ($exists) {
|
|
- $profile->update($orig_profile);
|
|
- } else {
|
|
- $profile->created = DB_DataObject_Cast::dateTime(); # current time
|
|
- $id = $profile->insert();
|
|
- if (!$id) {
|
|
- return FALSE;
|
|
- }
|
|
- $remote->id = $id;
|
|
- }
|
|
+ if ($exists) {
|
|
+ $profile->update($orig_profile);
|
|
+ } else {
|
|
+ $profile->created = DB_DataObject_Cast::dateTime(); # current time
|
|
+ $id = $profile->insert();
|
|
+ if (!$id) {
|
|
+ return FALSE;
|
|
+ }
|
|
+ $remote->id = $id;
|
|
+ }
|
|
hunk ./actions/userauthorization.php 280
|
|
- if ($exists) {
|
|
- if (!$remote->update($orig_remote)) {
|
|
- return FALSE;
|
|
- }
|
|
- } else {
|
|
- $remote->created = DB_DataObject_Cast::dateTime(); # current time
|
|
- if (!$remote->insert()) {
|
|
- return FALSE;
|
|
- }
|
|
- }
|
|
+ if ($exists) {
|
|
+ if (!$remote->update($orig_remote)) {
|
|
+ return FALSE;
|
|
+ }
|
|
+ } else {
|
|
+ $remote->created = DB_DataObject_Cast::dateTime(); # current time
|
|
+ if (!$remote->insert()) {
|
|
+ return FALSE;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/userauthorization.php 291
|
|
- if ($avatar_url) {
|
|
- if (!$this->add_avatar($profile, $avatar_url)) {
|
|
- return FALSE;
|
|
- }
|
|
- }
|
|
+ if ($avatar_url) {
|
|
+ if (!$this->add_avatar($profile, $avatar_url)) {
|
|
+ return FALSE;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/userauthorization.php 297
|
|
- $user = common_current_user();
|
|
- $datastore = omb_oauth_datastore();
|
|
- $consumer = $this->get_consumer($datastore, $req);
|
|
- $token = $this->get_token($datastore, $req, $consumer);
|
|
+ $user = common_current_user();
|
|
+ $datastore = omb_oauth_datastore();
|
|
+ $consumer = $this->get_consumer($datastore, $req);
|
|
+ $token = $this->get_token($datastore, $req, $consumer);
|
|
hunk ./actions/userauthorization.php 302
|
|
- $sub = new Subscription();
|
|
- $sub->subscriber = $user->id;
|
|
- $sub->subscribed = $remote->id;
|
|
- $sub->token = $token->key; # NOTE: request token, not valid for use!
|
|
- $sub->created = DB_DataObject_Cast::dateTime(); # current time
|
|
+ $sub = new Subscription();
|
|
+ $sub->subscriber = $user->id;
|
|
+ $sub->subscribed = $remote->id;
|
|
+ $sub->token = $token->key; # NOTE: request token, not valid for use!
|
|
+ $sub->created = DB_DataObject_Cast::dateTime(); # current time
|
|
hunk ./actions/userauthorization.php 308
|
|
- if (!$sub->insert()) {
|
|
- return FALSE;
|
|
- }
|
|
+ if (!$sub->insert()) {
|
|
+ return FALSE;
|
|
+ }
|
|
hunk ./actions/userauthorization.php 312
|
|
- return TRUE;
|
|
- }
|
|
+ return TRUE;
|
|
+ }
|
|
hunk ./actions/userauthorization.php 315
|
|
- function add_avatar($profile, $url) {
|
|
- $temp_filename = tempnam(sys_get_temp_dir(), 'listenee_avatar');
|
|
- copy($url, $temp_filename);
|
|
- return $profile->setOriginal($temp_filename);
|
|
- }
|
|
+ function add_avatar($profile, $url) {
|
|
+ $temp_filename = tempnam(sys_get_temp_dir(), 'listenee_avatar');
|
|
+ copy($url, $temp_filename);
|
|
+ return $profile->setOriginal($temp_filename);
|
|
+ }
|
|
hunk ./actions/userauthorization.php 321
|
|
- function show_accept_message($tok) {
|
|
- common_show_header(_('Subscription authorized'));
|
|
- common_element('p', NULL,
|
|
- _('The subscription has been authorized, but no '.
|
|
- 'callback URL was passed. Check with the site\'s instructions for '.
|
|
- 'details on how to authorize the subscription. Your subscription token is:'));
|
|
- common_element('blockquote', 'token', $tok);
|
|
- common_show_footer();
|
|
- }
|
|
+ function show_accept_message($tok) {
|
|
+ common_show_header(_('Subscription authorized'));
|
|
+ common_element('p', NULL,
|
|
+ _('The subscription has been authorized, but no '.
|
|
+ 'callback URL was passed. Check with the site\'s instructions for '.
|
|
+ 'details on how to authorize the subscription. Your subscription token is:'));
|
|
+ common_element('blockquote', 'token', $tok);
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/userauthorization.php 331
|
|
- function show_reject_message($tok) {
|
|
- common_show_header(_('Subscription rejected'));
|
|
- common_element('p', NULL,
|
|
- _('The subscription has been rejected, but no '.
|
|
- 'callback URL was passed. Check with the site\'s instructions for '.
|
|
- 'details on how to fully reject the subscription.'));
|
|
- common_show_footer();
|
|
- }
|
|
+ function show_reject_message($tok) {
|
|
+ common_show_header(_('Subscription rejected'));
|
|
+ common_element('p', NULL,
|
|
+ _('The subscription has been rejected, but no '.
|
|
+ 'callback URL was passed. Check with the site\'s instructions for '.
|
|
+ 'details on how to fully reject the subscription.'));
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./actions/userauthorization.php 340
|
|
- function store_request($req) {
|
|
- common_ensure_session();
|
|
- $_SESSION['userauthorizationrequest'] = $req;
|
|
- }
|
|
+ function store_request($req) {
|
|
+ common_ensure_session();
|
|
+ $_SESSION['userauthorizationrequest'] = $req;
|
|
+ }
|
|
hunk ./actions/userauthorization.php 345
|
|
- function clear_request() {
|
|
- common_ensure_session();
|
|
- unset($_SESSION['userauthorizationrequest']);
|
|
- }
|
|
+ function clear_request() {
|
|
+ common_ensure_session();
|
|
+ unset($_SESSION['userauthorizationrequest']);
|
|
+ }
|
|
hunk ./actions/userauthorization.php 350
|
|
- function get_stored_request() {
|
|
- common_ensure_session();
|
|
- $req = $_SESSION['userauthorizationrequest'];
|
|
- return $req;
|
|
- }
|
|
+ function get_stored_request() {
|
|
+ common_ensure_session();
|
|
+ $req = $_SESSION['userauthorizationrequest'];
|
|
+ return $req;
|
|
+ }
|
|
hunk ./actions/userauthorization.php 356
|
|
- function get_new_request() {
|
|
- common_remove_magic_from_request();
|
|
- $req = OAuthRequest::from_request();
|
|
- return $req;
|
|
- }
|
|
+ function get_new_request() {
|
|
+ common_remove_magic_from_request();
|
|
+ $req = OAuthRequest::from_request();
|
|
+ return $req;
|
|
+ }
|
|
hunk ./actions/userauthorization.php 362
|
|
- # Throws an OAuthException if anything goes wrong
|
|
+ # Throws an OAuthException if anything goes wrong
|
|
hunk ./actions/userauthorization.php 364
|
|
- function validate_request(&$req) {
|
|
- # OAuth stuff -- have to copy from OAuth.php since they're
|
|
- # all private methods, and there's no user-authentication method
|
|
- common_debug('checking version', __FILE__);
|
|
- $this->check_version($req);
|
|
- common_debug('getting datastore', __FILE__);
|
|
- $datastore = omb_oauth_datastore();
|
|
- common_debug('getting consumer', __FILE__);
|
|
- $consumer = $this->get_consumer($datastore, $req);
|
|
- common_debug('getting token', __FILE__);
|
|
- $token = $this->get_token($datastore, $req, $consumer);
|
|
- common_debug('checking timestamp', __FILE__);
|
|
- $this->check_timestamp($req);
|
|
- common_debug('checking nonce', __FILE__);
|
|
- $this->check_nonce($datastore, $req, $consumer, $token);
|
|
- common_debug('checking signature', __FILE__);
|
|
- $this->check_signature($req, $consumer, $token);
|
|
- common_debug('validating omb stuff', __FILE__);
|
|
- $this->validate_omb($req);
|
|
- common_debug('done validating', __FILE__);
|
|
- return true;
|
|
- }
|
|
+ function validate_request(&$req) {
|
|
+ # OAuth stuff -- have to copy from OAuth.php since they're
|
|
+ # all private methods, and there's no user-authentication method
|
|
+ common_debug('checking version', __FILE__);
|
|
+ $this->check_version($req);
|
|
+ common_debug('getting datastore', __FILE__);
|
|
+ $datastore = omb_oauth_datastore();
|
|
+ common_debug('getting consumer', __FILE__);
|
|
+ $consumer = $this->get_consumer($datastore, $req);
|
|
+ common_debug('getting token', __FILE__);
|
|
+ $token = $this->get_token($datastore, $req, $consumer);
|
|
+ common_debug('checking timestamp', __FILE__);
|
|
+ $this->check_timestamp($req);
|
|
+ common_debug('checking nonce', __FILE__);
|
|
+ $this->check_nonce($datastore, $req, $consumer, $token);
|
|
+ common_debug('checking signature', __FILE__);
|
|
+ $this->check_signature($req, $consumer, $token);
|
|
+ common_debug('validating omb stuff', __FILE__);
|
|
+ $this->validate_omb($req);
|
|
+ common_debug('done validating', __FILE__);
|
|
+ return true;
|
|
+ }
|
|
hunk ./actions/userauthorization.php 387
|
|
- function validate_omb(&$req) {
|
|
- foreach (array('omb_version', 'omb_listener', 'omb_listenee',
|
|
- 'omb_listenee_profile', 'omb_listenee_nickname',
|
|
- 'omb_listenee_license') as $param)
|
|
- {
|
|
- if (!$req->get_parameter($param)) {
|
|
- throw new OAuthException("Required parameter '$param' not found");
|
|
- }
|
|
- }
|
|
- # Now, OMB stuff
|
|
- $version = $req->get_parameter('omb_version');
|
|
- if ($version != OMB_VERSION_01) {
|
|
- throw new OAuthException("OpenMicroBlogging version '$version' not supported");
|
|
- }
|
|
- $listener = $req->get_parameter('omb_listener');
|
|
- $user = User::staticGet('uri', $listener);
|
|
- if (!$user) {
|
|
- throw new OAuthException("Listener URI '$listener' not found here");
|
|
- }
|
|
- $cur = common_current_user();
|
|
- if ($cur->id != $user->id) {
|
|
- throw new OAuthException("Can't add for another user!");
|
|
- }
|
|
- $listenee = $req->get_parameter('omb_listenee');
|
|
- if (!Validate::uri($listenee) &&
|
|
- !common_valid_tag($listenee)) {
|
|
- throw new OAuthException("Listenee URI '$listenee' not a recognizable URI");
|
|
- }
|
|
- if (strlen($listenee) > 255) {
|
|
- throw new OAuthException("Listenee URI '$listenee' too long");
|
|
- }
|
|
+ function validate_omb(&$req) {
|
|
+ foreach (array('omb_version', 'omb_listener', 'omb_listenee',
|
|
+ 'omb_listenee_profile', 'omb_listenee_nickname',
|
|
+ 'omb_listenee_license') as $param)
|
|
+ {
|
|
+ if (!$req->get_parameter($param)) {
|
|
+ throw new OAuthException("Required parameter '$param' not found");
|
|
+ }
|
|
+ }
|
|
+ # Now, OMB stuff
|
|
+ $version = $req->get_parameter('omb_version');
|
|
+ if ($version != OMB_VERSION_01) {
|
|
+ throw new OAuthException("OpenMicroBlogging version '$version' not supported");
|
|
+ }
|
|
+ $listener = $req->get_parameter('omb_listener');
|
|
+ $user = User::staticGet('uri', $listener);
|
|
+ if (!$user) {
|
|
+ throw new OAuthException("Listener URI '$listener' not found here");
|
|
+ }
|
|
+ $cur = common_current_user();
|
|
+ if ($cur->id != $user->id) {
|
|
+ throw new OAuthException("Can't add for another user!");
|
|
+ }
|
|
+ $listenee = $req->get_parameter('omb_listenee');
|
|
+ if (!Validate::uri($listenee) &&
|
|
+ !common_valid_tag($listenee)) {
|
|
+ throw new OAuthException("Listenee URI '$listenee' not a recognizable URI");
|
|
+ }
|
|
+ if (strlen($listenee) > 255) {
|
|
+ throw new OAuthException("Listenee URI '$listenee' too long");
|
|
+ }
|
|
hunk ./actions/userauthorization.php 419
|
|
- $other = User::staticGet('uri', $listenee);
|
|
- if ($other) {
|
|
- throw new OAuthException("Listenee URI '$listenee' is local user");
|
|
- }
|
|
+ $other = User::staticGet('uri', $listenee);
|
|
+ if ($other) {
|
|
+ throw new OAuthException("Listenee URI '$listenee' is local user");
|
|
+ }
|
|
hunk ./actions/userauthorization.php 424
|
|
- $remote = Remote_profile::staticGet('uri', $listenee);
|
|
- if ($remote) {
|
|
- $sub = new Subscription();
|
|
- $sub->subscriber = $user->id;
|
|
- $sub->subscribed = $remote->id;
|
|
- if ($sub->find(TRUE)) {
|
|
- throw new OAuthException("Already subscribed to user!");
|
|
- }
|
|
- }
|
|
- $nickname = $req->get_parameter('omb_listenee_nickname');
|
|
- if (!Validate::string($nickname, array('min_length' => 1,
|
|
- 'max_length' => 64,
|
|
- 'format' => VALIDATE_NUM . VALIDATE_ALPHA_LOWER))) {
|
|
- throw new OAuthException('Nickname must have only letters and numbers and no spaces.');
|
|
- }
|
|
- $profile = $req->get_parameter('omb_listenee_profile');
|
|
- if (!common_valid_http_url($profile)) {
|
|
- throw new OAuthException("Invalid profile URL '$profile'.");
|
|
- }
|
|
+ $remote = Remote_profile::staticGet('uri', $listenee);
|
|
+ if ($remote) {
|
|
+ $sub = new Subscription();
|
|
+ $sub->subscriber = $user->id;
|
|
+ $sub->subscribed = $remote->id;
|
|
+ if ($sub->find(TRUE)) {
|
|
+ throw new OAuthException("Already subscribed to user!");
|
|
+ }
|
|
+ }
|
|
+ $nickname = $req->get_parameter('omb_listenee_nickname');
|
|
+ if (!Validate::string($nickname, array('min_length' => 1,
|
|
+ 'max_length' => 64,
|
|
+ 'format' => VALIDATE_NUM . VALIDATE_ALPHA_LOWER))) {
|
|
+ throw new OAuthException('Nickname must have only letters and numbers and no spaces.');
|
|
+ }
|
|
+ $profile = $req->get_parameter('omb_listenee_profile');
|
|
+ if (!common_valid_http_url($profile)) {
|
|
+ throw new OAuthException("Invalid profile URL '$profile'.");
|
|
+ }
|
|
hunk ./actions/userauthorization.php 444
|
|
- if ($profile == common_local_url('showstream', array('nickname' => $nickname))) {
|
|
- throw new OAuthException("Profile URL '$profile' is for a local user.");
|
|
- }
|
|
+ if ($profile == common_local_url('showstream', array('nickname' => $nickname))) {
|
|
+ throw new OAuthException("Profile URL '$profile' is for a local user.");
|
|
+ }
|
|
hunk ./actions/userauthorization.php 448
|
|
- $license = $req->get_parameter('omb_listenee_license');
|
|
- if (!common_valid_http_url($license)) {
|
|
- throw new OAuthException("Invalid license URL '$license'.");
|
|
- }
|
|
- $site_license = common_config('license', 'url');
|
|
- if (!common_compatible_license($license, $site_license)) {
|
|
- throw new OAuthException("Listenee stream license '$license' not compatible with site license '$site_license'.");
|
|
- }
|
|
- # optional stuff
|
|
- $fullname = $req->get_parameter('omb_listenee_fullname');
|
|
- if ($fullname && strlen($fullname) > 255) {
|
|
- throw new OAuthException("Full name '$fullname' too long.");
|
|
- }
|
|
- $homepage = $req->get_parameter('omb_listenee_homepage');
|
|
- if ($homepage && (!common_valid_http_url($homepage) || strlen($homepage) > 255)) {
|
|
- throw new OAuthException("Invalid homepage '$homepage'");
|
|
- }
|
|
- $bio = $req->get_parameter('omb_listenee_bio');
|
|
- if ($bio && strlen($bio) > 140) {
|
|
- throw new OAuthException("Bio too long '$bio'");
|
|
- }
|
|
- $location = $req->get_parameter('omb_listenee_location');
|
|
- if ($location && strlen($location) > 255) {
|
|
- throw new OAuthException("Location too long '$location'");
|
|
- }
|
|
- $avatar = $req->get_parameter('omb_listenee_avatar');
|
|
- if ($avatar) {
|
|
- if (!common_valid_http_url($avatar) || strlen($avatar) > 255) {
|
|
- throw new OAuthException("Invalid avatar URL '$avatar'");
|
|
- }
|
|
- $size = @getimagesize($avatar);
|
|
- if (!$size) {
|
|
- throw new OAuthException("Can't read avatar URL '$avatar'");
|
|
- }
|
|
- if ($size[0] != AVATAR_PROFILE_SIZE || $size[1] != AVATAR_PROFILE_SIZE) {
|
|
- throw new OAuthException("Wrong size image at '$avatar'");
|
|
- }
|
|
- if (!in_array($size[2], array(IMAGETYPE_GIF, IMAGETYPE_JPEG,
|
|
- IMAGETYPE_PNG))) {
|
|
- throw new OAuthException("Wrong image type for '$avatar'");
|
|
- }
|
|
- }
|
|
- $callback = $req->get_parameter('oauth_callback');
|
|
- if ($callback && !common_valid_http_url($callback)) {
|
|
- throw new OAuthException("Invalid callback URL '$callback'");
|
|
- }
|
|
- if ($callback && $callback == common_local_url('finishremotesubscribe')) {
|
|
- throw new OAuthException("Callback URL '$callback' is for local site.");
|
|
- }
|
|
- }
|
|
+ $license = $req->get_parameter('omb_listenee_license');
|
|
+ if (!common_valid_http_url($license)) {
|
|
+ throw new OAuthException("Invalid license URL '$license'.");
|
|
+ }
|
|
+ $site_license = common_config('license', 'url');
|
|
+ if (!common_compatible_license($license, $site_license)) {
|
|
+ throw new OAuthException("Listenee stream license '$license' not compatible with site license '$site_license'.");
|
|
+ }
|
|
+ # optional stuff
|
|
+ $fullname = $req->get_parameter('omb_listenee_fullname');
|
|
+ if ($fullname && strlen($fullname) > 255) {
|
|
+ throw new OAuthException("Full name '$fullname' too long.");
|
|
+ }
|
|
+ $homepage = $req->get_parameter('omb_listenee_homepage');
|
|
+ if ($homepage && (!common_valid_http_url($homepage) || strlen($homepage) > 255)) {
|
|
+ throw new OAuthException("Invalid homepage '$homepage'");
|
|
+ }
|
|
+ $bio = $req->get_parameter('omb_listenee_bio');
|
|
+ if ($bio && strlen($bio) > 140) {
|
|
+ throw new OAuthException("Bio too long '$bio'");
|
|
+ }
|
|
+ $location = $req->get_parameter('omb_listenee_location');
|
|
+ if ($location && strlen($location) > 255) {
|
|
+ throw new OAuthException("Location too long '$location'");
|
|
+ }
|
|
+ $avatar = $req->get_parameter('omb_listenee_avatar');
|
|
+ if ($avatar) {
|
|
+ if (!common_valid_http_url($avatar) || strlen($avatar) > 255) {
|
|
+ throw new OAuthException("Invalid avatar URL '$avatar'");
|
|
+ }
|
|
+ $size = @getimagesize($avatar);
|
|
+ if (!$size) {
|
|
+ throw new OAuthException("Can't read avatar URL '$avatar'");
|
|
+ }
|
|
+ if ($size[0] != AVATAR_PROFILE_SIZE || $size[1] != AVATAR_PROFILE_SIZE) {
|
|
+ throw new OAuthException("Wrong size image at '$avatar'");
|
|
+ }
|
|
+ if (!in_array($size[2], array(IMAGETYPE_GIF, IMAGETYPE_JPEG,
|
|
+ IMAGETYPE_PNG))) {
|
|
+ throw new OAuthException("Wrong image type for '$avatar'");
|
|
+ }
|
|
+ }
|
|
+ $callback = $req->get_parameter('oauth_callback');
|
|
+ if ($callback && !common_valid_http_url($callback)) {
|
|
+ throw new OAuthException("Invalid callback URL '$callback'");
|
|
+ }
|
|
+ if ($callback && $callback == common_local_url('finishremotesubscribe')) {
|
|
+ throw new OAuthException("Callback URL '$callback' is for local site.");
|
|
+ }
|
|
+ }
|
|
hunk ./actions/userauthorization.php 499
|
|
- # Snagged from OAuthServer
|
|
+ # Snagged from OAuthServer
|
|
hunk ./actions/userauthorization.php 501
|
|
- function check_version(&$req) {
|
|
- $version = $req->get_parameter("oauth_version");
|
|
- if (!$version) {
|
|
- $version = 1.0;
|
|
- }
|
|
- if ($version != 1.0) {
|
|
- throw new OAuthException("OAuth version '$version' not supported");
|
|
- }
|
|
- return $version;
|
|
- }
|
|
+ function check_version(&$req) {
|
|
+ $version = $req->get_parameter("oauth_version");
|
|
+ if (!$version) {
|
|
+ $version = 1.0;
|
|
+ }
|
|
+ if ($version != 1.0) {
|
|
+ throw new OAuthException("OAuth version '$version' not supported");
|
|
+ }
|
|
+ return $version;
|
|
+ }
|
|
hunk ./actions/userauthorization.php 512
|
|
- # Snagged from OAuthServer
|
|
+ # Snagged from OAuthServer
|
|
hunk ./actions/userauthorization.php 514
|
|
- function get_consumer($datastore, $req) {
|
|
- $consumer_key = @$req->get_parameter("oauth_consumer_key");
|
|
- if (!$consumer_key) {
|
|
- throw new OAuthException("Invalid consumer key");
|
|
- }
|
|
+ function get_consumer($datastore, $req) {
|
|
+ $consumer_key = @$req->get_parameter("oauth_consumer_key");
|
|
+ if (!$consumer_key) {
|
|
+ throw new OAuthException("Invalid consumer key");
|
|
+ }
|
|
hunk ./actions/userauthorization.php 520
|
|
- $consumer = $datastore->lookup_consumer($consumer_key);
|
|
- if (!$consumer) {
|
|
- throw new OAuthException("Invalid consumer");
|
|
- }
|
|
- return $consumer;
|
|
- }
|
|
+ $consumer = $datastore->lookup_consumer($consumer_key);
|
|
+ if (!$consumer) {
|
|
+ throw new OAuthException("Invalid consumer");
|
|
+ }
|
|
+ return $consumer;
|
|
+ }
|
|
hunk ./actions/userauthorization.php 527
|
|
- # Mostly cadged from OAuthServer
|
|
+ # Mostly cadged from OAuthServer
|
|
hunk ./actions/userauthorization.php 529
|
|
- function get_token($datastore, &$req, $consumer) {/*{{{*/
|
|
- $token_field = @$req->get_parameter('oauth_token');
|
|
- $token = $datastore->lookup_token($consumer, 'request', $token_field);
|
|
- if (!$token) {
|
|
- throw new OAuthException("Invalid $token_type token: $token_field");
|
|
- }
|
|
- return $token;
|
|
- }
|
|
+ function get_token($datastore, &$req, $consumer) {/*{{{*/
|
|
+ $token_field = @$req->get_parameter('oauth_token');
|
|
+ $token = $datastore->lookup_token($consumer, 'request', $token_field);
|
|
+ if (!$token) {
|
|
+ throw new OAuthException("Invalid $token_type token: $token_field");
|
|
+ }
|
|
+ return $token;
|
|
+ }
|
|
hunk ./actions/userauthorization.php 538
|
|
- function check_timestamp(&$req) {
|
|
- $timestamp = @$req->get_parameter('oauth_timestamp');
|
|
- $now = time();
|
|
- if ($now - $timestamp > TIMESTAMP_THRESHOLD) {
|
|
- throw new OAuthException("Expired timestamp, yours $timestamp, ours $now");
|
|
- }
|
|
- }
|
|
+ function check_timestamp(&$req) {
|
|
+ $timestamp = @$req->get_parameter('oauth_timestamp');
|
|
+ $now = time();
|
|
+ if ($now - $timestamp > TIMESTAMP_THRESHOLD) {
|
|
+ throw new OAuthException("Expired timestamp, yours $timestamp, ours $now");
|
|
+ }
|
|
+ }
|
|
hunk ./actions/userauthorization.php 546
|
|
- # NOTE: don't call twice on the same request; will fail!
|
|
- function check_nonce(&$datastore, &$req, $consumer, $token) {
|
|
- $timestamp = @$req->get_parameter('oauth_timestamp');
|
|
- $nonce = @$req->get_parameter('oauth_nonce');
|
|
- $found = $datastore->lookup_nonce($consumer, $token, $nonce, $timestamp);
|
|
- if ($found) {
|
|
- throw new OAuthException("Nonce already used");
|
|
- }
|
|
- return true;
|
|
- }
|
|
+ # NOTE: don't call twice on the same request; will fail!
|
|
+ function check_nonce(&$datastore, &$req, $consumer, $token) {
|
|
+ $timestamp = @$req->get_parameter('oauth_timestamp');
|
|
+ $nonce = @$req->get_parameter('oauth_nonce');
|
|
+ $found = $datastore->lookup_nonce($consumer, $token, $nonce, $timestamp);
|
|
+ if ($found) {
|
|
+ throw new OAuthException("Nonce already used");
|
|
+ }
|
|
+ return true;
|
|
+ }
|
|
hunk ./actions/userauthorization.php 557
|
|
- function check_signature(&$req, $consumer, $token) {
|
|
- $signature_method = $this->get_signature_method($req);
|
|
- $signature = $req->get_parameter('oauth_signature');
|
|
- $valid_sig = $signature_method->check_signature($req,
|
|
- $consumer,
|
|
- $token,
|
|
- $signature);
|
|
- if (!$valid_sig) {
|
|
- throw new OAuthException("Invalid signature");
|
|
- }
|
|
- }
|
|
+ function check_signature(&$req, $consumer, $token) {
|
|
+ $signature_method = $this->get_signature_method($req);
|
|
+ $signature = $req->get_parameter('oauth_signature');
|
|
+ $valid_sig = $signature_method->check_signature($req,
|
|
+ $consumer,
|
|
+ $token,
|
|
+ $signature);
|
|
+ if (!$valid_sig) {
|
|
+ throw new OAuthException("Invalid signature");
|
|
+ }
|
|
+ }
|
|
hunk ./actions/userauthorization.php 569
|
|
- function get_signature_method(&$req) {
|
|
- $signature_method = @$req->get_parameter("oauth_signature_method");
|
|
- if (!$signature_method) {
|
|
- $signature_method = "PLAINTEXT";
|
|
- }
|
|
- if ($signature_method != 'HMAC-SHA1') {
|
|
- throw new OAuthException("Signature method '$signature_method' not supported.");
|
|
- }
|
|
- return omb_hmac_sha1();
|
|
- }
|
|
+ function get_signature_method(&$req) {
|
|
+ $signature_method = @$req->get_parameter("oauth_signature_method");
|
|
+ if (!$signature_method) {
|
|
+ $signature_method = "PLAINTEXT";
|
|
+ }
|
|
+ if ($signature_method != 'HMAC-SHA1') {
|
|
+ throw new OAuthException("Signature method '$signature_method' not supported.");
|
|
+ }
|
|
+ return omb_hmac_sha1();
|
|
+ }
|
|
hunk ./actions/userbyid.php 23
|
|
-
|
|
- function is_readonly() {
|
|
- return true;
|
|
- }
|
|
-
|
|
+
|
|
+ function is_readonly() {
|
|
+ return true;
|
|
+ }
|
|
+
|
|
hunk ./actions/userbyid.php 32
|
|
- $this->client_error(_('No id.'));
|
|
- }
|
|
- $user =& User::staticGet($id);
|
|
- if (!$user) {
|
|
- $this->client_error(_('No such user.'));
|
|
+ $this->client_error(_('No id.'));
|
|
+ }
|
|
+ $user =& User::staticGet($id);
|
|
+ if (!$user) {
|
|
+ $this->client_error(_('No such user.'));
|
|
hunk ./actions/userbyid.php 42
|
|
- $type = common_negotiate_type(common_accept_to_prefs($httpaccept),
|
|
+ $type = common_negotiate_type(common_accept_to_prefs($httpaccept),
|
|
hunk ./actions/userbyid.php 44
|
|
- $page = $type == 'application/rdf+xml' ? 'foaf' : 'showstream';
|
|
+ $page = $type == 'application/rdf+xml' ? 'foaf' : 'showstream';
|
|
hunk ./actions/userbyid.php 46
|
|
- $url = common_local_url($page, array('nickname' => $user->nickname));
|
|
- common_redirect($url, 303);
|
|
- }
|
|
+ $url = common_local_url($page, array('nickname' => $user->nickname));
|
|
+ common_redirect($url, 303);
|
|
+ }
|
|
hunk ./actions/userrss.php 28
|
|
- var $user = NULL;
|
|
+ var $user = NULL;
|
|
hunk ./actions/userrss.php 30
|
|
- function init() {
|
|
- $nickname = $this->trimmed('nickname');
|
|
- $this->user = User::staticGet('nickname', $nickname);
|
|
+ function init() {
|
|
+ $nickname = $this->trimmed('nickname');
|
|
+ $this->user = User::staticGet('nickname', $nickname);
|
|
hunk ./actions/userrss.php 34
|
|
- if (!$this->user) {
|
|
- common_user_error(_('No such user.'));
|
|
- return false;
|
|
- } else {
|
|
- return true;
|
|
- }
|
|
- }
|
|
+ if (!$this->user) {
|
|
+ common_user_error(_('No such user.'));
|
|
+ return false;
|
|
+ } else {
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
hunk ./actions/userrss.php 42
|
|
- function get_notices($limit=0) {
|
|
+ function get_notices($limit=0) {
|
|
hunk ./actions/userrss.php 44
|
|
- $user = $this->user;
|
|
-
|
|
- if (is_null($user)) {
|
|
- return NULL;
|
|
- }
|
|
-
|
|
- $notice = $user->getNotices(0, ($limit == 0) ? NOTICES_PER_PAGE : $limit);
|
|
-
|
|
- while ($notice->fetch()) {
|
|
- $notices[] = clone($notice);
|
|
- }
|
|
+ $user = $this->user;
|
|
+
|
|
+ if (is_null($user)) {
|
|
+ return NULL;
|
|
+ }
|
|
+
|
|
+ $notice = $user->getNotices(0, ($limit == 0) ? NOTICES_PER_PAGE : $limit);
|
|
+
|
|
+ while ($notice->fetch()) {
|
|
+ $notices[] = clone($notice);
|
|
+ }
|
|
hunk ./actions/userrss.php 56
|
|
- return $notices;
|
|
- }
|
|
+ return $notices;
|
|
+ }
|
|
hunk ./actions/userrss.php 59
|
|
- function get_channel() {
|
|
- $user = $this->user;
|
|
- $profile = $user->getProfile();
|
|
- $c = array('url' => common_local_url('userrss',
|
|
- array('nickname' =>
|
|
- $user->nickname)),
|
|
- 'title' => $user->nickname,
|
|
- 'link' => $profile->profileurl,
|
|
- 'description' => sprintf(_('Microblog by %s'), $user->nickname));
|
|
- return $c;
|
|
- }
|
|
+ function get_channel() {
|
|
+ $user = $this->user;
|
|
+ $profile = $user->getProfile();
|
|
+ $c = array('url' => common_local_url('userrss',
|
|
+ array('nickname' =>
|
|
+ $user->nickname)),
|
|
+ 'title' => $user->nickname,
|
|
+ 'link' => $profile->profileurl,
|
|
+ 'description' => sprintf(_('Microblog by %s'), $user->nickname));
|
|
+ return $c;
|
|
+ }
|
|
hunk ./actions/userrss.php 71
|
|
- function get_image() {
|
|
- $user = $this->user;
|
|
- $profile = $user->getProfile();
|
|
- if (!$profile) {
|
|
- common_log_db_error($user, 'SELECT', __FILE__);
|
|
- $this->server_error(_('User without matching profile'));
|
|
- return NULL;
|
|
- }
|
|
- $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE);
|
|
- return ($avatar) ? $avatar->url : NULL;
|
|
- }
|
|
+ function get_image() {
|
|
+ $user = $this->user;
|
|
+ $profile = $user->getProfile();
|
|
+ if (!$profile) {
|
|
+ common_log_db_error($user, 'SELECT', __FILE__);
|
|
+ $this->server_error(_('User without matching profile'));
|
|
+ return NULL;
|
|
+ }
|
|
+ $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE);
|
|
+ return ($avatar) ? $avatar->url : NULL;
|
|
+ }
|
|
hunk ./actions/userrss.php 83
|
|
- # override parent to add X-SUP-ID URL
|
|
-
|
|
- function init_rss($limit=0) {
|
|
- $url = common_local_url('sup', NULL, $this->user->id);
|
|
- header('X-SUP-ID: '.$url);
|
|
- parent::init_rss($limit);
|
|
- }
|
|
+ # override parent to add X-SUP-ID URL
|
|
+
|
|
+ function init_rss($limit=0) {
|
|
+ $url = common_local_url('sup', NULL, $this->user->id);
|
|
+ header('X-SUP-ID: '.$url);
|
|
+ parent::init_rss($limit);
|
|
+ }
|
|
hunk ./actions/xrds.php 26
|
|
- function is_readonly() {
|
|
- return true;
|
|
- }
|
|
+ function is_readonly() {
|
|
+ return true;
|
|
+ }
|
|
hunk ./actions/xrds.php 30
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
- $nickname = $this->trimmed('nickname');
|
|
- $user = User::staticGet('nickname', $nickname);
|
|
- if (!$user) {
|
|
- common_user_error(_('No such user.'));
|
|
- return;
|
|
- }
|
|
- $this->show_xrds($user);
|
|
- }
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
+ $nickname = $this->trimmed('nickname');
|
|
+ $user = User::staticGet('nickname', $nickname);
|
|
+ if (!$user) {
|
|
+ common_user_error(_('No such user.'));
|
|
+ return;
|
|
+ }
|
|
+ $this->show_xrds($user);
|
|
+ }
|
|
hunk ./actions/xrds.php 41
|
|
- function show_xrds($user) {
|
|
+ function show_xrds($user) {
|
|
hunk ./actions/xrds.php 43
|
|
- header('Content-Type: application/xrds+xml');
|
|
+ header('Content-Type: application/xrds+xml');
|
|
hunk ./actions/xrds.php 45
|
|
- common_start_xml();
|
|
- common_element_start('XRDS', array('xmlns' => 'xri://$xrds'));
|
|
+ common_start_xml();
|
|
+ common_element_start('XRDS', array('xmlns' => 'xri://$xrds'));
|
|
hunk ./actions/xrds.php 48
|
|
- common_element_start('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)',
|
|
- 'xml:id' => 'oauth',
|
|
- 'xmlns:simple' => 'http://xrds-simple.net/core/1.0',
|
|
- 'version' => '2.0'));
|
|
+ common_element_start('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)',
|
|
+ 'xml:id' => 'oauth',
|
|
+ 'xmlns:simple' => 'http://xrds-simple.net/core/1.0',
|
|
+ 'version' => '2.0'));
|
|
hunk ./actions/xrds.php 53
|
|
- common_element('Type', NULL, 'xri://$xrds*simple');
|
|
+ common_element('Type', NULL, 'xri://$xrds*simple');
|
|
hunk ./actions/xrds.php 55
|
|
- $this->show_service(OAUTH_ENDPOINT_REQUEST,
|
|
- common_local_url('requesttoken'),
|
|
- array(OAUTH_AUTH_HEADER, OAUTH_POST_BODY),
|
|
- array(OAUTH_HMAC_SHA1),
|
|
- $user->uri);
|
|
+ $this->show_service(OAUTH_ENDPOINT_REQUEST,
|
|
+ common_local_url('requesttoken'),
|
|
+ array(OAUTH_AUTH_HEADER, OAUTH_POST_BODY),
|
|
+ array(OAUTH_HMAC_SHA1),
|
|
+ $user->uri);
|
|
hunk ./actions/xrds.php 61
|
|
- $this->show_service(OAUTH_ENDPOINT_AUTHORIZE,
|
|
- common_local_url('userauthorization'),
|
|
- array(OAUTH_AUTH_HEADER, OAUTH_POST_BODY),
|
|
- array(OAUTH_HMAC_SHA1));
|
|
+ $this->show_service(OAUTH_ENDPOINT_AUTHORIZE,
|
|
+ common_local_url('userauthorization'),
|
|
+ array(OAUTH_AUTH_HEADER, OAUTH_POST_BODY),
|
|
+ array(OAUTH_HMAC_SHA1));
|
|
hunk ./actions/xrds.php 66
|
|
- $this->show_service(OAUTH_ENDPOINT_ACCESS,
|
|
- common_local_url('accesstoken'),
|
|
- array(OAUTH_AUTH_HEADER, OAUTH_POST_BODY),
|
|
- array(OAUTH_HMAC_SHA1));
|
|
+ $this->show_service(OAUTH_ENDPOINT_ACCESS,
|
|
+ common_local_url('accesstoken'),
|
|
+ array(OAUTH_AUTH_HEADER, OAUTH_POST_BODY),
|
|
+ array(OAUTH_HMAC_SHA1));
|
|
hunk ./actions/xrds.php 71
|
|
- $this->show_service(OAUTH_ENDPOINT_RESOURCE,
|
|
- NULL,
|
|
- array(OAUTH_AUTH_HEADER, OAUTH_POST_BODY),
|
|
- array(OAUTH_HMAC_SHA1));
|
|
+ $this->show_service(OAUTH_ENDPOINT_RESOURCE,
|
|
+ NULL,
|
|
+ array(OAUTH_AUTH_HEADER, OAUTH_POST_BODY),
|
|
+ array(OAUTH_HMAC_SHA1));
|
|
hunk ./actions/xrds.php 76
|
|
- common_element_end('XRD');
|
|
+ common_element_end('XRD');
|
|
hunk ./actions/xrds.php 78
|
|
- # XXX: decide whether to include user's ID/nickname in postNotice URL
|
|
+ # XXX: decide whether to include user's ID/nickname in postNotice URL
|
|
hunk ./actions/xrds.php 80
|
|
- common_element_start('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)',
|
|
- 'xml:id' => 'omb',
|
|
- 'xmlns:simple' => 'http://xrds-simple.net/core/1.0',
|
|
- 'version' => '2.0'));
|
|
+ common_element_start('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)',
|
|
+ 'xml:id' => 'omb',
|
|
+ 'xmlns:simple' => 'http://xrds-simple.net/core/1.0',
|
|
+ 'version' => '2.0'));
|
|
hunk ./actions/xrds.php 85
|
|
- common_element('Type', NULL, 'xri://$xrds*simple');
|
|
+ common_element('Type', NULL, 'xri://$xrds*simple');
|
|
hunk ./actions/xrds.php 87
|
|
- $this->show_service(OMB_ENDPOINT_POSTNOTICE,
|
|
- common_local_url('postnotice'));
|
|
+ $this->show_service(OMB_ENDPOINT_POSTNOTICE,
|
|
+ common_local_url('postnotice'));
|
|
hunk ./actions/xrds.php 90
|
|
- $this->show_service(OMB_ENDPOINT_UPDATEPROFILE,
|
|
- common_local_url('updateprofile'));
|
|
+ $this->show_service(OMB_ENDPOINT_UPDATEPROFILE,
|
|
+ common_local_url('updateprofile'));
|
|
hunk ./actions/xrds.php 93
|
|
- common_element_end('XRD');
|
|
+ common_element_end('XRD');
|
|
hunk ./actions/xrds.php 95
|
|
- common_element_start('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)',
|
|
- 'version' => '2.0'));
|
|
+ common_element_start('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)',
|
|
+ 'version' => '2.0'));
|
|
hunk ./actions/xrds.php 98
|
|
- common_element('Type', NULL, 'xri://$xrds*simple');
|
|
+ common_element('Type', NULL, 'xri://$xrds*simple');
|
|
hunk ./actions/xrds.php 100
|
|
- $this->show_service(OAUTH_DISCOVERY,
|
|
- '#oauth');
|
|
- $this->show_service(OMB_NAMESPACE,
|
|
- '#omb');
|
|
+ $this->show_service(OAUTH_DISCOVERY,
|
|
+ '#oauth');
|
|
+ $this->show_service(OMB_NAMESPACE,
|
|
+ '#omb');
|
|
hunk ./actions/xrds.php 105
|
|
- common_element_end('XRD');
|
|
+ common_element_end('XRD');
|
|
hunk ./actions/xrds.php 107
|
|
- common_element_end('XRDS');
|
|
- common_end_xml();
|
|
- }
|
|
+ common_element_end('XRDS');
|
|
+ common_end_xml();
|
|
+ }
|
|
hunk ./actions/xrds.php 111
|
|
- function show_service($type, $uri, $params=NULL, $sigs=NULL, $localId=NULL) {
|
|
- common_element_start('Service');
|
|
- if ($uri) {
|
|
- common_element('URI', NULL, $uri);
|
|
- }
|
|
- common_element('Type', NULL, $type);
|
|
- if ($params) {
|
|
- foreach ($params as $param) {
|
|
- common_element('Type', NULL, $param);
|
|
- }
|
|
- }
|
|
- if ($sigs) {
|
|
- foreach ($sigs as $sig) {
|
|
- common_element('Type', NULL, $sig);
|
|
- }
|
|
- }
|
|
- if ($localId) {
|
|
- common_element('LocalID', NULL, $localId);
|
|
- }
|
|
- common_element_end('Service');
|
|
- }
|
|
+ function show_service($type, $uri, $params=NULL, $sigs=NULL, $localId=NULL) {
|
|
+ common_element_start('Service');
|
|
+ if ($uri) {
|
|
+ common_element('URI', NULL, $uri);
|
|
+ }
|
|
+ common_element('Type', NULL, $type);
|
|
+ if ($params) {
|
|
+ foreach ($params as $param) {
|
|
+ common_element('Type', NULL, $param);
|
|
+ }
|
|
+ }
|
|
+ if ($sigs) {
|
|
+ foreach ($sigs as $sig) {
|
|
+ common_element('Type', NULL, $sig);
|
|
+ }
|
|
+ }
|
|
+ if ($localId) {
|
|
+ common_element('LocalID', NULL, $localId);
|
|
+ }
|
|
+ common_element_end('Service');
|
|
+ }
|
|
hunk ./classes/Avatar.php 29
|
|
- # We clean up the file, too
|
|
+ # We clean up the file, too
|
|
hunk ./classes/Avatar.php 31
|
|
- function delete() {
|
|
- $filename = $this->filename;
|
|
- if (parent::delete()) {
|
|
- @unlink(common_avatar_path($filename));
|
|
- }
|
|
- }
|
|
+ function delete() {
|
|
+ $filename = $this->filename;
|
|
+ if (parent::delete()) {
|
|
+ @unlink(common_avatar_path($filename));
|
|
+ }
|
|
+ }
|
|
hunk ./classes/Avatar.php 38
|
|
- # Create and save scaled version of this avatar
|
|
- # XXX: maybe break into different methods
|
|
+ # Create and save scaled version of this avatar
|
|
+ # XXX: maybe break into different methods
|
|
hunk ./classes/Avatar.php 41
|
|
- function scale($size) {
|
|
+ function scale($size) {
|
|
hunk ./classes/Avatar.php 43
|
|
- $image_s = imagecreatetruecolor($size, $size);
|
|
- $image_a = $this->to_image();
|
|
- $square = min($this->width, $this->height);
|
|
+ $image_s = imagecreatetruecolor($size, $size);
|
|
+ $image_a = $this->to_image();
|
|
+ $square = min($this->width, $this->height);
|
|
hunk ./classes/Avatar.php 49
|
|
- imagecopyresampled($image_s, $image_a, 0, 0, 0, 0,
|
|
- $size, $size, $square, $square);
|
|
+ imagecopyresampled($image_s, $image_a, 0, 0, 0, 0,
|
|
+ $size, $size, $square, $square);
|
|
hunk ./classes/Avatar.php 52
|
|
- $ext = ($this->mediattype == 'image/jpeg') ? ".jpeg" : ".png";
|
|
+ $ext = ($this->mediattype == 'image/jpeg') ? ".jpeg" : ".png";
|
|
hunk ./classes/Avatar.php 54
|
|
- $filename = common_avatar_filename($this->profile_id, $ext, $size, common_timestamp());
|
|
+ $filename = common_avatar_filename($this->profile_id, $ext, $size, common_timestamp());
|
|
hunk ./classes/Avatar.php 56
|
|
- if ($this->mediatype == 'image/jpeg') {
|
|
- imagejpeg($image_s, common_avatar_path($filename));
|
|
- } else {
|
|
- imagepng($image_s, common_avatar_path($filename));
|
|
- }
|
|
+ if ($this->mediatype == 'image/jpeg') {
|
|
+ imagejpeg($image_s, common_avatar_path($filename));
|
|
+ } else {
|
|
+ imagepng($image_s, common_avatar_path($filename));
|
|
+ }
|
|
hunk ./classes/Avatar.php 62
|
|
- $scaled = DB_DataObject::factory('avatar');
|
|
- $scaled->profile_id = $this->profile_id;
|
|
- $scaled->width = $size;
|
|
- $scaled->height = $size;
|
|
- $scaled->original = false;
|
|
- $scaled->mediatype = ($this->mediattype == 'image/jpeg') ? 'image/jpeg' : 'image/png';
|
|
- $scaled->filename = $filename;
|
|
- $scaled->url = common_avatar_url($filename);
|
|
- $scaled->created = DB_DataObject_Cast::dateTime(); # current time
|
|
+ $scaled = DB_DataObject::factory('avatar');
|
|
+ $scaled->profile_id = $this->profile_id;
|
|
+ $scaled->width = $size;
|
|
+ $scaled->height = $size;
|
|
+ $scaled->original = false;
|
|
+ $scaled->mediatype = ($this->mediattype == 'image/jpeg') ? 'image/jpeg' : 'image/png';
|
|
+ $scaled->filename = $filename;
|
|
+ $scaled->url = common_avatar_url($filename);
|
|
+ $scaled->created = DB_DataObject_Cast::dateTime(); # current time
|
|
hunk ./classes/Avatar.php 72
|
|
- if ($scaled->insert()) {
|
|
- return $scaled;
|
|
- } else {
|
|
- return NULL;
|
|
- }
|
|
- }
|
|
+ if ($scaled->insert()) {
|
|
+ return $scaled;
|
|
+ } else {
|
|
+ return NULL;
|
|
+ }
|
|
+ }
|
|
hunk ./classes/Avatar.php 79
|
|
- function to_image() {
|
|
- $filepath = common_avatar_path($this->filename);
|
|
- if ($this->mediatype == 'image/gif') {
|
|
- return imagecreatefromgif($filepath);
|
|
- } else if ($this->mediatype == 'image/jpeg') {
|
|
- return imagecreatefromjpeg($filepath);
|
|
- } else if ($this->mediatype == 'image/png') {
|
|
- return imagecreatefrompng($filepath);
|
|
- } else {
|
|
- return NULL;
|
|
- }
|
|
- }
|
|
-
|
|
- function &pkeyGet($kv) {
|
|
- return Memcached_DataObject::pkeyGet('Avatar', $kv);
|
|
- }
|
|
+ function to_image() {
|
|
+ $filepath = common_avatar_path($this->filename);
|
|
+ if ($this->mediatype == 'image/gif') {
|
|
+ return imagecreatefromgif($filepath);
|
|
+ } else if ($this->mediatype == 'image/jpeg') {
|
|
+ return imagecreatefromjpeg($filepath);
|
|
+ } else if ($this->mediatype == 'image/png') {
|
|
+ return imagecreatefrompng($filepath);
|
|
+ } else {
|
|
+ return NULL;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ function &pkeyGet($kv) {
|
|
+ return Memcached_DataObject::pkeyGet('Avatar', $kv);
|
|
+ }
|
|
hunk ./classes/Channel.php 23
|
|
-
|
|
- function on($user) {
|
|
- return false;
|
|
- }
|
|
+
|
|
+ function on($user) {
|
|
+ return false;
|
|
+ }
|
|
hunk ./classes/Channel.php 28
|
|
- function off($user) {
|
|
- return false;
|
|
- }
|
|
+ function off($user) {
|
|
+ return false;
|
|
+ }
|
|
hunk ./classes/Channel.php 32
|
|
- function output($user, $text) {
|
|
- return false;
|
|
- }
|
|
-
|
|
- function error($user, $text) {
|
|
- return false;
|
|
- }
|
|
-
|
|
- function source() {
|
|
- return NULL;
|
|
- }
|
|
+ function output($user, $text) {
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ function error($user, $text) {
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ function source() {
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./classes/Channel.php 47
|
|
- var $conn = NULL;
|
|
-
|
|
- function source() {
|
|
- return 'xmpp';
|
|
- }
|
|
-
|
|
- function __construct($conn) {
|
|
- $this->conn = $conn;
|
|
- }
|
|
-
|
|
- function on($user) {
|
|
- return $this->set_notify($user, 1);
|
|
- }
|
|
-
|
|
- function off($user) {
|
|
- return $this->set_notify($user, 0);
|
|
- }
|
|
+ var $conn = NULL;
|
|
+
|
|
+ function source() {
|
|
+ return 'xmpp';
|
|
+ }
|
|
+
|
|
+ function __construct($conn) {
|
|
+ $this->conn = $conn;
|
|
+ }
|
|
+
|
|
+ function on($user) {
|
|
+ return $this->set_notify($user, 1);
|
|
+ }
|
|
+
|
|
+ function off($user) {
|
|
+ return $this->set_notify($user, 0);
|
|
+ }
|
|
hunk ./classes/Channel.php 65
|
|
- function output($user, $text) {
|
|
- $text = '['.common_config('site', 'name') . '] ' . $text;
|
|
- jabber_send_message($user->jabber, $text);
|
|
- }
|
|
-
|
|
- function error($user, $text) {
|
|
- $text = '['.common_config('site', 'name') . '] ' . $text;
|
|
- jabber_send_message($user->jabber, $text);
|
|
- }
|
|
-
|
|
- function set_notify(&$user, $notify) {
|
|
- $orig = clone($user);
|
|
- $user->jabbernotify = $notify;
|
|
- $result = $user->update($orig);
|
|
- if (!$result) {
|
|
- $last_error = &PEAR::getStaticProperty('DB_DataObject','lastError');
|
|
- common_log(LOG_ERR,
|
|
- 'Could not set notify flag to ' . $notify .
|
|
- ' for user ' . common_log_objstring($user) .
|
|
- ': ' . $last_error->message);
|
|
- return false;
|
|
- } else {
|
|
- common_log(LOG_INFO,
|
|
- 'User ' . $user->nickname . ' set notify flag to ' . $notify);
|
|
- return true;
|
|
- }
|
|
- }
|
|
+ function output($user, $text) {
|
|
+ $text = '['.common_config('site', 'name') . '] ' . $text;
|
|
+ jabber_send_message($user->jabber, $text);
|
|
+ }
|
|
+
|
|
+ function error($user, $text) {
|
|
+ $text = '['.common_config('site', 'name') . '] ' . $text;
|
|
+ jabber_send_message($user->jabber, $text);
|
|
+ }
|
|
+
|
|
+ function set_notify(&$user, $notify) {
|
|
+ $orig = clone($user);
|
|
+ $user->jabbernotify = $notify;
|
|
+ $result = $user->update($orig);
|
|
+ if (!$result) {
|
|
+ $last_error = &PEAR::getStaticProperty('DB_DataObject','lastError');
|
|
+ common_log(LOG_ERR,
|
|
+ 'Could not set notify flag to ' . $notify .
|
|
+ ' for user ' . common_log_objstring($user) .
|
|
+ ': ' . $last_error->message);
|
|
+ return false;
|
|
+ } else {
|
|
+ common_log(LOG_INFO,
|
|
+ 'User ' . $user->nickname . ' set notify flag to ' . $notify);
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
hunk ./classes/Channel.php 97
|
|
- function source() {
|
|
- return 'web';
|
|
- }
|
|
-
|
|
- function on($user) {
|
|
- return false;
|
|
- }
|
|
-
|
|
- function off($user) {
|
|
- return false;
|
|
- }
|
|
+ function source() {
|
|
+ return 'web';
|
|
+ }
|
|
+
|
|
+ function on($user) {
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ function off($user) {
|
|
+ return false;
|
|
+ }
|
|
hunk ./classes/Channel.php 109
|
|
- function output($user, $text) {
|
|
- # XXX: buffer all output and send it at the end
|
|
- # XXX: even better, redirect to appropriate page
|
|
- # depending on what command was run
|
|
- common_show_header(_('Command results'));
|
|
- common_element('p', NULL, $text);
|
|
- common_show_footer();
|
|
- }
|
|
-
|
|
- function error($user, $text) {
|
|
- common_user_error($text);
|
|
- }
|
|
+ function output($user, $text) {
|
|
+ # XXX: buffer all output and send it at the end
|
|
+ # XXX: even better, redirect to appropriate page
|
|
+ # depending on what command was run
|
|
+ common_show_header(_('Command results'));
|
|
+ common_element('p', NULL, $text);
|
|
+ common_show_footer();
|
|
+ }
|
|
+
|
|
+ function error($user, $text) {
|
|
+ common_user_error($text);
|
|
+ }
|
|
hunk ./classes/Channel.php 126
|
|
- function output($user, $text) {
|
|
- common_start_html('text/xml;charset=utf-8', true);
|
|
- common_element_start('head');
|
|
- common_element('title', null, _('Command results'));
|
|
- common_element_end('head');
|
|
- common_element_start('body');
|
|
- common_element('p', array('id' => 'command_result'), $text);
|
|
- common_element_end('body');
|
|
- common_element_end('html');
|
|
- }
|
|
+ function output($user, $text) {
|
|
+ common_start_html('text/xml;charset=utf-8', true);
|
|
+ common_element_start('head');
|
|
+ common_element('title', null, _('Command results'));
|
|
+ common_element_end('head');
|
|
+ common_element_start('body');
|
|
+ common_element('p', array('id' => 'command_result'), $text);
|
|
+ common_element_end('body');
|
|
+ common_element_end('html');
|
|
+ }
|
|
hunk ./classes/Channel.php 137
|
|
- function error($user, $text) {
|
|
- common_start_html('text/xml;charset=utf-8', true);
|
|
- common_element_start('head');
|
|
- common_element('title', null, _('Ajax Error'));
|
|
- common_element_end('head');
|
|
- common_element_start('body');
|
|
- common_element('p', array('id' => 'error'), $text);
|
|
- common_element_end('body');
|
|
- common_element_end('html');
|
|
- }
|
|
+ function error($user, $text) {
|
|
+ common_start_html('text/xml;charset=utf-8', true);
|
|
+ common_element_start('head');
|
|
+ common_element('title', null, _('Ajax Error'));
|
|
+ common_element_end('head');
|
|
+ common_element_start('body');
|
|
+ common_element('p', array('id' => 'error'), $text);
|
|
+ common_element_end('body');
|
|
+ common_element_end('html');
|
|
+ }
|
|
hunk ./classes/Channel.php 152
|
|
- var $addr = NULL;
|
|
+ var $addr = NULL;
|
|
hunk ./classes/Channel.php 154
|
|
- function source() {
|
|
- return 'mail';
|
|
- }
|
|
-
|
|
- function __construct($addr=NULL) {
|
|
- $this->addr = $addr;
|
|
- }
|
|
-
|
|
- function on($user) {
|
|
- return $this->set_notify($user, 1);
|
|
- }
|
|
-
|
|
- function off($user) {
|
|
- return $this->set_notify($user, 0);
|
|
- }
|
|
+ function source() {
|
|
+ return 'mail';
|
|
+ }
|
|
+
|
|
+ function __construct($addr=NULL) {
|
|
+ $this->addr = $addr;
|
|
+ }
|
|
+
|
|
+ function on($user) {
|
|
+ return $this->set_notify($user, 1);
|
|
+ }
|
|
+
|
|
+ function off($user) {
|
|
+ return $this->set_notify($user, 0);
|
|
+ }
|
|
hunk ./classes/Channel.php 170
|
|
- function output($user, $text) {
|
|
+ function output($user, $text) {
|
|
hunk ./classes/Channel.php 172
|
|
- $headers['From'] = $user->incomingemail;
|
|
- $headers['To'] = $this->addr;
|
|
-
|
|
- $headers['Subject'] = _('Command complete');
|
|
+ $headers['From'] = $user->incomingemail;
|
|
+ $headers['To'] = $this->addr;
|
|
+
|
|
+ $headers['Subject'] = _('Command complete');
|
|
hunk ./classes/Channel.php 177
|
|
- return mail_send(array($this->addr), $headers, $text);
|
|
- }
|
|
-
|
|
- function error($user, $text) {
|
|
-
|
|
- $headers['From'] = $user->incomingemail;
|
|
- $headers['To'] = $this->addr;
|
|
-
|
|
- $headers['Subject'] = _('Command failed');
|
|
+ return mail_send(array($this->addr), $headers, $text);
|
|
+ }
|
|
+
|
|
+ function error($user, $text) {
|
|
+
|
|
+ $headers['From'] = $user->incomingemail;
|
|
+ $headers['To'] = $this->addr;
|
|
+
|
|
+ $headers['Subject'] = _('Command failed');
|
|
hunk ./classes/Channel.php 187
|
|
- return mail_send(array($this->addr), $headers, $text);
|
|
- }
|
|
-
|
|
- function set_notify($user, $value) {
|
|
- $orig = clone($user);
|
|
- $user->smsnotify = $value;
|
|
- $result = $user->update($orig);
|
|
- if (!$result) {
|
|
- common_log_db_error($user, 'UPDATE', __FILE__);
|
|
- return false;
|
|
- }
|
|
- return true;
|
|
- }
|
|
+ return mail_send(array($this->addr), $headers, $text);
|
|
+ }
|
|
+
|
|
+ function set_notify($user, $value) {
|
|
+ $orig = clone($user);
|
|
+ $user->smsnotify = $value;
|
|
+ $result = $user->update($orig);
|
|
+ if (!$result) {
|
|
+ common_log_db_error($user, 'UPDATE', __FILE__);
|
|
+ return false;
|
|
+ }
|
|
+ return true;
|
|
+ }
|
|
hunk ./classes/Command.php 25
|
|
-
|
|
- var $user = NULL;
|
|
-
|
|
- function __construct($user=NULL) {
|
|
- $this->user = $user;
|
|
- }
|
|
-
|
|
- function execute($channel) {
|
|
- return false;
|
|
- }
|
|
+
|
|
+ var $user = NULL;
|
|
+
|
|
+ function __construct($user=NULL) {
|
|
+ $this->user = $user;
|
|
+ }
|
|
+
|
|
+ function execute($channel) {
|
|
+ return false;
|
|
+ }
|
|
hunk ./classes/Command.php 38
|
|
- function execute($channel) {
|
|
- $channel->error($this->user, _("Sorry, this command is not yet implemented."));
|
|
- }
|
|
+ function execute($channel) {
|
|
+ $channel->error($this->user, _("Sorry, this command is not yet implemented."));
|
|
+ }
|
|
hunk ./classes/Command.php 50
|
|
- var $word = NULL;
|
|
- function __construct($user, $word) {
|
|
- parent::__construct($user);
|
|
- $this->word = $word;
|
|
- }
|
|
+ var $word = NULL;
|
|
+ function __construct($user, $word) {
|
|
+ parent::__construct($user);
|
|
+ $this->word = $word;
|
|
+ }
|
|
hunk ./classes/Command.php 58
|
|
- var $word = NULL;
|
|
- function __construct($user, $word) {
|
|
- parent::__construct($user);
|
|
- $this->word = $word;
|
|
- }
|
|
+ var $word = NULL;
|
|
+ function __construct($user, $word) {
|
|
+ parent::__construct($user);
|
|
+ $this->word = $word;
|
|
+ }
|
|
hunk ./classes/Command.php 66
|
|
- var $other = NULL;
|
|
- function __construct($user, $other) {
|
|
- parent::__construct($user);
|
|
- $this->other = $other;
|
|
- }
|
|
+ var $other = NULL;
|
|
+ function __construct($user, $other) {
|
|
+ parent::__construct($user);
|
|
+ $this->other = $other;
|
|
+ }
|
|
hunk ./classes/Command.php 74
|
|
- var $other = NULL;
|
|
- function __construct($user, $other) {
|
|
- parent::__construct($user);
|
|
- $this->other = $other;
|
|
- }
|
|
+ var $other = NULL;
|
|
+ function __construct($user, $other) {
|
|
+ parent::__construct($user);
|
|
+ $this->other = $other;
|
|
+ }
|
|
hunk ./classes/Command.php 82
|
|
- function execute($channel) {
|
|
+ function execute($channel) {
|
|
hunk ./classes/Command.php 84
|
|
- $subs = new Subscription();
|
|
- $subs->subscriber = $this->user->id;
|
|
- $subs_count = (int) $subs->count() - 1;
|
|
+ $subs = new Subscription();
|
|
+ $subs->subscriber = $this->user->id;
|
|
+ $subs_count = (int) $subs->count() - 1;
|
|
hunk ./classes/Command.php 88
|
|
- $subbed = new Subscription();
|
|
- $subbed->subscribed = $this->user->id;
|
|
- $subbed_count = (int) $subbed->count() - 1;
|
|
+ $subbed = new Subscription();
|
|
+ $subbed->subscribed = $this->user->id;
|
|
+ $subbed_count = (int) $subbed->count() - 1;
|
|
hunk ./classes/Command.php 92
|
|
- $notices = new Notice();
|
|
- $notices->profile_id = $this->user->id;
|
|
- $notice_count = (int) $notices->count();
|
|
-
|
|
- $channel->output($this->user, sprintf(_("Subscriptions: %1\$s\n".
|
|
- "Subscribers: %2\$s\n".
|
|
- "Notices: %3\$s"),
|
|
- $subs_count,
|
|
- $subbed_count,
|
|
- $notice_count));
|
|
- }
|
|
+ $notices = new Notice();
|
|
+ $notices->profile_id = $this->user->id;
|
|
+ $notice_count = (int) $notices->count();
|
|
+
|
|
+ $channel->output($this->user, sprintf(_("Subscriptions: %1\$s\n".
|
|
+ "Subscribers: %2\$s\n".
|
|
+ "Notices: %3\$s"),
|
|
+ $subs_count,
|
|
+ $subbed_count,
|
|
+ $notice_count));
|
|
+ }
|
|
hunk ./classes/Command.php 106
|
|
-
|
|
- var $other = NULL;
|
|
-
|
|
- function __construct($user, $other) {
|
|
- parent::__construct($user);
|
|
- $this->other = $other;
|
|
- }
|
|
-
|
|
- function execute($channel) {
|
|
-
|
|
- $recipient =
|
|
- common_relative_profile($this->user, common_canonical_nickname($this->other));
|
|
-
|
|
- if (!$recipient) {
|
|
- $channel->error($this->user, _('No such user.'));
|
|
- return;
|
|
- }
|
|
- $notice = $recipient->getCurrentNotice();
|
|
- if (!$notice) {
|
|
- $channel->error($this->user, _('User has no last notice'));
|
|
- return;
|
|
- }
|
|
-
|
|
- $fave = Fave::addNew($this->user, $notice);
|
|
+
|
|
+ var $other = NULL;
|
|
+
|
|
+ function __construct($user, $other) {
|
|
+ parent::__construct($user);
|
|
+ $this->other = $other;
|
|
+ }
|
|
+
|
|
+ function execute($channel) {
|
|
+
|
|
+ $recipient =
|
|
+ common_relative_profile($this->user, common_canonical_nickname($this->other));
|
|
+
|
|
+ if (!$recipient) {
|
|
+ $channel->error($this->user, _('No such user.'));
|
|
+ return;
|
|
+ }
|
|
+ $notice = $recipient->getCurrentNotice();
|
|
+ if (!$notice) {
|
|
+ $channel->error($this->user, _('User has no last notice'));
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ $fave = Fave::addNew($this->user, $notice);
|
|
hunk ./classes/Command.php 131
|
|
- if (!$fave) {
|
|
- $channel->error($this->user, _('Could not create favorite.'));
|
|
- return;
|
|
- }
|
|
+ if (!$fave) {
|
|
+ $channel->error($this->user, _('Could not create favorite.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./classes/Command.php 136
|
|
- $other = User::staticGet('id', $recipient->id);
|
|
-
|
|
- if ($other && $other->id != $user->id) {
|
|
- if ($other->email && $other->emailnotifyfav) {
|
|
- mail_notify_fave($other, $this->user, $notice);
|
|
- }
|
|
- }
|
|
-
|
|
- $this->user->blowFavesCache();
|
|
-
|
|
- $channel->output($this->user, _('Notice marked as fave.'));
|
|
- }
|
|
+ $other = User::staticGet('id', $recipient->id);
|
|
+
|
|
+ if ($other && $other->id != $user->id) {
|
|
+ if ($other->email && $other->emailnotifyfav) {
|
|
+ mail_notify_fave($other, $this->user, $notice);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ $this->user->blowFavesCache();
|
|
+
|
|
+ $channel->output($this->user, _('Notice marked as fave.'));
|
|
+ }
|
|
hunk ./classes/Command.php 151
|
|
- var $other = NULL;
|
|
- function __construct($user, $other) {
|
|
- parent::__construct($user);
|
|
- $this->other = $other;
|
|
- }
|
|
-
|
|
- function execute($channel) {
|
|
- $recipient =
|
|
- common_relative_profile($this->user, common_canonical_nickname($this->other));
|
|
-
|
|
- if (!$recipient) {
|
|
- $channel->error($this->user, _('No such user.'));
|
|
- return;
|
|
- }
|
|
-
|
|
- $whois = sprintf(_("%1\$s (%2\$s)"), $recipient->nickname,
|
|
- $recipient->profileurl);
|
|
- if ($recipient->fullname) {
|
|
- $whois .= "\n" . sprintf(_('Fullname: %s'), $recipient->fullname);
|
|
- }
|
|
- if ($recipient->location) {
|
|
- $whois .= "\n" . sprintf(_('Location: %s'), $recipient->location);
|
|
- }
|
|
- if ($recipient->homepage) {
|
|
- $whois .= "\n" . sprintf(_('Homepage: %s'), $recipient->homepage);
|
|
- }
|
|
- if ($recipient->bio) {
|
|
- $whois .= "\n" . sprintf(_('About: %s'), $recipient->bio);
|
|
- }
|
|
- $channel->output($this->user, $whois);
|
|
- }
|
|
+ var $other = NULL;
|
|
+ function __construct($user, $other) {
|
|
+ parent::__construct($user);
|
|
+ $this->other = $other;
|
|
+ }
|
|
+
|
|
+ function execute($channel) {
|
|
+ $recipient =
|
|
+ common_relative_profile($this->user, common_canonical_nickname($this->other));
|
|
+
|
|
+ if (!$recipient) {
|
|
+ $channel->error($this->user, _('No such user.'));
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ $whois = sprintf(_("%1\$s (%2\$s)"), $recipient->nickname,
|
|
+ $recipient->profileurl);
|
|
+ if ($recipient->fullname) {
|
|
+ $whois .= "\n" . sprintf(_('Fullname: %s'), $recipient->fullname);
|
|
+ }
|
|
+ if ($recipient->location) {
|
|
+ $whois .= "\n" . sprintf(_('Location: %s'), $recipient->location);
|
|
+ }
|
|
+ if ($recipient->homepage) {
|
|
+ $whois .= "\n" . sprintf(_('Homepage: %s'), $recipient->homepage);
|
|
+ }
|
|
+ if ($recipient->bio) {
|
|
+ $whois .= "\n" . sprintf(_('About: %s'), $recipient->bio);
|
|
+ }
|
|
+ $channel->output($this->user, $whois);
|
|
+ }
|
|
hunk ./classes/Command.php 185
|
|
- var $other = NULL;
|
|
- var $text = NULL;
|
|
- function __construct($user, $other, $text) {
|
|
- parent::__construct($user);
|
|
- $this->other = $other;
|
|
- $this->text = $text;
|
|
- }
|
|
-
|
|
- function execute($channel) {
|
|
- $other = User::staticGet('nickname', common_canonical_nickname($this->other));
|
|
- $len = mb_strlen($this->text);
|
|
- if ($len == 0) {
|
|
- $channel->error($this->user, _('No content!'));
|
|
- return;
|
|
- } else if ($len > 140) {
|
|
- $content = common_shorten_links($content);
|
|
- if (mb_strlen($content) > 140) {
|
|
- $channel->error($this->user, sprintf(_('Message too long - maximum is 140 characters, you sent %d'), $len));
|
|
- return;
|
|
- }
|
|
- }
|
|
-
|
|
- if (!$other) {
|
|
- $channel->error($this->user, _('No such user.'));
|
|
- return;
|
|
- } else if (!$this->user->mutuallySubscribed($other)) {
|
|
- $channel->error($this->user, _('You can\'t send a message to this user.'));
|
|
- return;
|
|
- } else if ($this->user->id == $other->id) {
|
|
- $channel->error($this->user, _('Don\'t send a message to yourself; just say it to yourself quietly instead.'));
|
|
- return;
|
|
- }
|
|
- $message = Message::saveNew($this->user->id, $other->id, $this->text, $channel->source());
|
|
- if ($message) {
|
|
- $channel->output($this->user, sprintf(_('Direct message to %s sent'), $this->other));
|
|
- } else {
|
|
- $channel->error($this->user, _('Error sending direct message.'));
|
|
- }
|
|
- }
|
|
+ var $other = NULL;
|
|
+ var $text = NULL;
|
|
+ function __construct($user, $other, $text) {
|
|
+ parent::__construct($user);
|
|
+ $this->other = $other;
|
|
+ $this->text = $text;
|
|
+ }
|
|
+
|
|
+ function execute($channel) {
|
|
+ $other = User::staticGet('nickname', common_canonical_nickname($this->other));
|
|
+ $len = mb_strlen($this->text);
|
|
+ if ($len == 0) {
|
|
+ $channel->error($this->user, _('No content!'));
|
|
+ return;
|
|
+ } else if ($len > 140) {
|
|
+ $content = common_shorten_links($content);
|
|
+ if (mb_strlen($content) > 140) {
|
|
+ $channel->error($this->user, sprintf(_('Message too long - maximum is 140 characters, you sent %d'), $len));
|
|
+ return;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (!$other) {
|
|
+ $channel->error($this->user, _('No such user.'));
|
|
+ return;
|
|
+ } else if (!$this->user->mutuallySubscribed($other)) {
|
|
+ $channel->error($this->user, _('You can\'t send a message to this user.'));
|
|
+ return;
|
|
+ } else if ($this->user->id == $other->id) {
|
|
+ $channel->error($this->user, _('Don\'t send a message to yourself; just say it to yourself quietly instead.'));
|
|
+ return;
|
|
+ }
|
|
+ $message = Message::saveNew($this->user->id, $other->id, $this->text, $channel->source());
|
|
+ if ($message) {
|
|
+ $channel->output($this->user, sprintf(_('Direct message to %s sent'), $this->other));
|
|
+ } else {
|
|
+ $channel->error($this->user, _('Error sending direct message.'));
|
|
+ }
|
|
+ }
|
|
hunk ./classes/Command.php 227
|
|
-
|
|
- var $other = NULL;
|
|
-
|
|
- function __construct($user, $other) {
|
|
- parent::__construct($user);
|
|
- $this->other = $other;
|
|
- }
|
|
-
|
|
- function execute($channel) {
|
|
- $target_nickname = common_canonical_nickname($this->other);
|
|
-
|
|
- $target =
|
|
- common_relative_profile($this->user, $target_nickname);
|
|
+
|
|
+ var $other = NULL;
|
|
+
|
|
+ function __construct($user, $other) {
|
|
+ parent::__construct($user);
|
|
+ $this->other = $other;
|
|
+ }
|
|
+
|
|
+ function execute($channel) {
|
|
+ $target_nickname = common_canonical_nickname($this->other);
|
|
+
|
|
+ $target =
|
|
+ common_relative_profile($this->user, $target_nickname);
|
|
hunk ./classes/Command.php 241
|
|
- if (!$target) {
|
|
- $channel->error($this->user, _('No such user.'));
|
|
- return;
|
|
- }
|
|
- $notice = $target->getCurrentNotice();
|
|
- if (!$notice) {
|
|
- $channel->error($this->user, _('User has no last notice'));
|
|
- return;
|
|
- }
|
|
- $notice_content = $notice->content;
|
|
-
|
|
- $channel->output($this->user, $target_nickname . ": " . $notice_content);
|
|
- }
|
|
+ if (!$target) {
|
|
+ $channel->error($this->user, _('No such user.'));
|
|
+ return;
|
|
+ }
|
|
+ $notice = $target->getCurrentNotice();
|
|
+ if (!$notice) {
|
|
+ $channel->error($this->user, _('User has no last notice'));
|
|
+ return;
|
|
+ }
|
|
+ $notice_content = $notice->content;
|
|
+
|
|
+ $channel->output($this->user, $target_nickname . ": " . $notice_content);
|
|
+ }
|
|
hunk ./classes/Command.php 257
|
|
-
|
|
- var $other = NULL;
|
|
-
|
|
- function __construct($user, $other) {
|
|
- parent::__construct($user);
|
|
- $this->other = $other;
|
|
- }
|
|
-
|
|
- function execute($channel) {
|
|
-
|
|
- if (!$this->other) {
|
|
- $channel->error($this->user, _('Specify the name of the user to subscribe to'));
|
|
- return;
|
|
- }
|
|
-
|
|
- $result = subs_subscribe_user($this->user, $this->other);
|
|
-
|
|
- if ($result == 'true') {
|
|
- $channel->output($this->user, sprintf(_('Subscribed to %s'), $this->other));
|
|
- } else {
|
|
- $channel->error($this->user, $result);
|
|
- }
|
|
- }
|
|
+
|
|
+ var $other = NULL;
|
|
+
|
|
+ function __construct($user, $other) {
|
|
+ parent::__construct($user);
|
|
+ $this->other = $other;
|
|
+ }
|
|
+
|
|
+ function execute($channel) {
|
|
+
|
|
+ if (!$this->other) {
|
|
+ $channel->error($this->user, _('Specify the name of the user to subscribe to'));
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ $result = subs_subscribe_user($this->user, $this->other);
|
|
+
|
|
+ if ($result == 'true') {
|
|
+ $channel->output($this->user, sprintf(_('Subscribed to %s'), $this->other));
|
|
+ } else {
|
|
+ $channel->error($this->user, $result);
|
|
+ }
|
|
+ }
|
|
hunk ./classes/Command.php 284
|
|
- var $other = NULL;
|
|
-
|
|
- function __construct($user, $other) {
|
|
- parent::__construct($user);
|
|
- $this->other = $other;
|
|
- }
|
|
+ var $other = NULL;
|
|
+
|
|
+ function __construct($user, $other) {
|
|
+ parent::__construct($user);
|
|
+ $this->other = $other;
|
|
+ }
|
|
hunk ./classes/Command.php 291
|
|
- function execute($channel) {
|
|
- if(!$this->other) {
|
|
- $channel->error($this->user, _('Specify the name of the user to unsubscribe from'));
|
|
- return;
|
|
- }
|
|
-
|
|
- $result=subs_unsubscribe_user($this->user, $this->other);
|
|
-
|
|
- if ($result) {
|
|
- $channel->output($this->user, sprintf(_('Unsubscribed from %s'), $this->other));
|
|
- } else {
|
|
- $channel->error($this->user, $result);
|
|
- }
|
|
- }
|
|
+ function execute($channel) {
|
|
+ if(!$this->other) {
|
|
+ $channel->error($this->user, _('Specify the name of the user to unsubscribe from'));
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ $result=subs_unsubscribe_user($this->user, $this->other);
|
|
+
|
|
+ if ($result) {
|
|
+ $channel->output($this->user, sprintf(_('Unsubscribed from %s'), $this->other));
|
|
+ } else {
|
|
+ $channel->error($this->user, $result);
|
|
+ }
|
|
+ }
|
|
hunk ./classes/Command.php 308
|
|
- var $other = NULL;
|
|
- function __construct($user, $other=NULL) {
|
|
- parent::__construct($user);
|
|
- $this->other = $other;
|
|
- }
|
|
- function execute($channel) {
|
|
- if ($other) {
|
|
- $channel->error($this->user, _("Command not yet implemented."));
|
|
- } else {
|
|
- if ($channel->off($this->user)) {
|
|
- $channel->output($this->user, _('Notification off.'));
|
|
- } else {
|
|
- $channel->error($this->user, _('Can\'t turn off notification.'));
|
|
- }
|
|
- }
|
|
- }
|
|
+ var $other = NULL;
|
|
+ function __construct($user, $other=NULL) {
|
|
+ parent::__construct($user);
|
|
+ $this->other = $other;
|
|
+ }
|
|
+ function execute($channel) {
|
|
+ if ($other) {
|
|
+ $channel->error($this->user, _("Command not yet implemented."));
|
|
+ } else {
|
|
+ if ($channel->off($this->user)) {
|
|
+ $channel->output($this->user, _('Notification off.'));
|
|
+ } else {
|
|
+ $channel->error($this->user, _('Can\'t turn off notification.'));
|
|
+ }
|
|
+ }
|
|
+ }
|
|
hunk ./classes/Command.php 327
|
|
- var $other = NULL;
|
|
- function __construct($user, $other=NULL) {
|
|
- parent::__construct($user);
|
|
- $this->other = $other;
|
|
- }
|
|
-
|
|
- function execute($channel) {
|
|
- if ($other) {
|
|
- $channel->error($this->user, _("Command not yet implemented."));
|
|
- } else {
|
|
- if ($channel->on($this->user)) {
|
|
- $channel->output($this->user, _('Notification on.'));
|
|
- } else {
|
|
- $channel->error($this->user, _('Can\'t turn on notification.'));
|
|
- }
|
|
- }
|
|
- }
|
|
+ var $other = NULL;
|
|
+ function __construct($user, $other=NULL) {
|
|
+ parent::__construct($user);
|
|
+ $this->other = $other;
|
|
+ }
|
|
+
|
|
+ function execute($channel) {
|
|
+ if ($other) {
|
|
+ $channel->error($this->user, _("Command not yet implemented."));
|
|
+ } else {
|
|
+ if ($channel->on($this->user)) {
|
|
+ $channel->output($this->user, _('Notification on.'));
|
|
+ } else {
|
|
+ $channel->error($this->user, _('Can\'t turn on notification.'));
|
|
+ }
|
|
+ }
|
|
+ }
|
|
hunk ./classes/Command.php 347
|
|
- function execute($channel) {
|
|
- $channel->output($this->user,
|
|
- _("Commands:\n".
|
|
- "on - turn on notifications\n".
|
|
- "off - turn off notifications\n".
|
|
- "help - show this help\n".
|
|
- "follow <nickname> - subscribe to user\n".
|
|
- "leave <nickname> - unsubscribe from user\n".
|
|
- "d <nickname> <text> - direct message to user\n".
|
|
- "get <nickname> - get last notice from user\n".
|
|
- "whois <nickname> - get profile info on user\n".
|
|
- "fav <nickname> - add user's last notice as a 'fave'\n".
|
|
- "stats - get your stats\n".
|
|
- "stop - same as 'off'\n".
|
|
- "quit - same as 'off'\n".
|
|
- "sub <nickname> - same as 'follow'\n".
|
|
- "unsub <nickname> - same as 'leave'\n".
|
|
- "last <nickname> - same as 'get'\n".
|
|
- "on <nickname> - not yet implemented.\n".
|
|
- "off <nickname> - not yet implemented.\n".
|
|
- "nudge <nickname> - not yet implemented.\n".
|
|
- "invite <phone number> - not yet implemented.\n".
|
|
- "track <word> - not yet implemented.\n".
|
|
- "untrack <word> - not yet implemented.\n".
|
|
- "track off - not yet implemented.\n".
|
|
- "untrack all - not yet implemented.\n".
|
|
- "tracks - not yet implemented.\n".
|
|
- "tracking - not yet implemented.\n"));
|
|
- }
|
|
+ function execute($channel) {
|
|
+ $channel->output($this->user,
|
|
+ _("Commands:\n".
|
|
+ "on - turn on notifications\n".
|
|
+ "off - turn off notifications\n".
|
|
+ "help - show this help\n".
|
|
+ "follow <nickname> - subscribe to user\n".
|
|
+ "leave <nickname> - unsubscribe from user\n".
|
|
+ "d <nickname> <text> - direct message to user\n".
|
|
+ "get <nickname> - get last notice from user\n".
|
|
+ "whois <nickname> - get profile info on user\n".
|
|
+ "fav <nickname> - add user's last notice as a 'fave'\n".
|
|
+ "stats - get your stats\n".
|
|
+ "stop - same as 'off'\n".
|
|
+ "quit - same as 'off'\n".
|
|
+ "sub <nickname> - same as 'follow'\n".
|
|
+ "unsub <nickname> - same as 'leave'\n".
|
|
+ "last <nickname> - same as 'get'\n".
|
|
+ "on <nickname> - not yet implemented.\n".
|
|
+ "off <nickname> - not yet implemented.\n".
|
|
+ "nudge <nickname> - not yet implemented.\n".
|
|
+ "invite <phone number> - not yet implemented.\n".
|
|
+ "track <word> - not yet implemented.\n".
|
|
+ "untrack <word> - not yet implemented.\n".
|
|
+ "track off - not yet implemented.\n".
|
|
+ "untrack all - not yet implemented.\n".
|
|
+ "tracks - not yet implemented.\n".
|
|
+ "tracking - not yet implemented.\n"));
|
|
+ }
|
|
hunk ./classes/CommandInterpreter.php 25
|
|
-
|
|
- function handle_command($user, $text) {
|
|
- # XXX: localise
|
|
+
|
|
+ function handle_command($user, $text) {
|
|
+ # XXX: localise
|
|
hunk ./classes/CommandInterpreter.php 29
|
|
- $text = preg_replace('/\s+/', ' ', trim($text));
|
|
- list($cmd, $arg) = explode(' ', $text, 2);
|
|
+ $text = preg_replace('/\s+/', ' ', trim($text));
|
|
+ list($cmd, $arg) = explode(' ', $text, 2);
|
|
hunk ./classes/CommandInterpreter.php 32
|
|
- # We try to support all the same commands as Twitter, see
|
|
- # http://getsatisfaction.com/twitter/topics/what_are_the_twitter_commands
|
|
- # There are a few compatibility commands from earlier versions of
|
|
- # Laconica
|
|
-
|
|
- switch(strtolower($cmd)) {
|
|
- case 'help':
|
|
- if ($arg) {
|
|
- return NULL;
|
|
- }
|
|
- return new HelpCommand($user);
|
|
- case 'on':
|
|
- if ($arg) {
|
|
- list($other, $extra) = explode(' ', $arg, 2);
|
|
- if ($extra) {
|
|
- return NULL;
|
|
- } else {
|
|
- return new OnCommand($user, $other);
|
|
- }
|
|
- } else {
|
|
- return new OnCommand($user);
|
|
- }
|
|
- case 'off':
|
|
- if ($arg) {
|
|
- list($other, $extra) = explode(' ', $arg, 2);
|
|
- if ($extra) {
|
|
- return NULL;
|
|
- } else {
|
|
- return new OffCommand($user, $other);
|
|
- }
|
|
- } else {
|
|
- return new OffCommand($user);
|
|
- }
|
|
- case 'stop':
|
|
- case 'quit':
|
|
- if ($arg) {
|
|
- return NULL;
|
|
- } else {
|
|
- return new OffCommand($user);
|
|
- }
|
|
- case 'follow':
|
|
- case 'sub':
|
|
- if (!$arg) {
|
|
- return NULL;
|
|
- }
|
|
- list($other, $extra) = explode(' ', $arg, 2);
|
|
- if ($extra) {
|
|
- return NULL;
|
|
- } else {
|
|
- return new SubCommand($user, $other);
|
|
- }
|
|
- case 'leave':
|
|
- case 'unsub':
|
|
- if (!$arg) {
|
|
- return NULL;
|
|
- }
|
|
- list($other, $extra) = explode(' ', $arg, 2);
|
|
- if ($extra) {
|
|
- return NULL;
|
|
- } else {
|
|
- return new UnsubCommand($user, $other);
|
|
- }
|
|
- case 'get':
|
|
- case 'last':
|
|
- if (!$arg) {
|
|
- return NULL;
|
|
- }
|
|
- list($other, $extra) = explode(' ', $arg, 2);
|
|
- if ($extra) {
|
|
- return NULL;
|
|
- } else {
|
|
- return new GetCommand($user, $other);
|
|
- }
|
|
- case 'd':
|
|
- if (!$arg) {
|
|
- return NULL;
|
|
- }
|
|
- list($other, $extra) = explode(' ', $arg, 2);
|
|
- if (!$extra) {
|
|
- return NULL;
|
|
- } else {
|
|
- return new MessageCommand($user, $other, $extra);
|
|
- }
|
|
- case 'whois':
|
|
- if (!$arg) {
|
|
- return NULL;
|
|
- }
|
|
- list($other, $extra) = explode(' ', $arg, 2);
|
|
- if ($extra) {
|
|
- return NULL;
|
|
- } else {
|
|
- return new WhoisCommand($user, $other);
|
|
- }
|
|
- case 'fav':
|
|
- if (!$arg) {
|
|
- return NULL;
|
|
- }
|
|
- list($other, $extra) = explode(' ', $arg, 2);
|
|
- if ($extra) {
|
|
- return NULL;
|
|
- } else {
|
|
- return new FavCommand($user, $other);
|
|
- }
|
|
- case 'nudge':
|
|
- if (!$arg) {
|
|
- return NULL;
|
|
- }
|
|
- list($other, $extra) = explode(' ', $arg, 2);
|
|
- if ($extra) {
|
|
- return NULL;
|
|
- } else {
|
|
- return new NudgeCommand($user, $other);
|
|
- }
|
|
- case 'stats':
|
|
- if ($arg) {
|
|
- return NULL;
|
|
- }
|
|
- return new StatsCommand($user);
|
|
- case 'invite':
|
|
- if (!$arg) {
|
|
- return NULL;
|
|
- }
|
|
- list($other, $extra) = explode(' ', $arg, 2);
|
|
- if ($extra) {
|
|
- return NULL;
|
|
- } else {
|
|
- return new InviteCommand($user, $other);
|
|
- }
|
|
- case 'track':
|
|
- if (!$arg) {
|
|
- return NULL;
|
|
- }
|
|
- list($word, $extra) = explode(' ', $arg, 2);
|
|
- if ($extra) {
|
|
- return NULL;
|
|
- } else if ($word == 'off') {
|
|
- return new TrackOffCommand($user);
|
|
- } else {
|
|
- return new TrackCommand($user, $word);
|
|
- }
|
|
- case 'untrack':
|
|
- if (!$arg) {
|
|
- return NULL;
|
|
- }
|
|
- list($word, $extra) = explode(' ', $arg, 2);
|
|
- if ($extra) {
|
|
- return NULL;
|
|
- } else if ($word == 'all') {
|
|
- return new TrackOffCommand($user);
|
|
- } else {
|
|
- return new UntrackCommand($user, $word);
|
|
- }
|
|
- case 'tracks':
|
|
- case 'tracking':
|
|
- if ($arg) {
|
|
- return NULL;
|
|
- }
|
|
- return new TrackingCommand($user);
|
|
- default:
|
|
- return false;
|
|
- }
|
|
- }
|
|
+ # We try to support all the same commands as Twitter, see
|
|
+ # http://getsatisfaction.com/twitter/topics/what_are_the_twitter_commands
|
|
+ # There are a few compatibility commands from earlier versions of
|
|
+ # Laconica
|
|
+
|
|
+ switch(strtolower($cmd)) {
|
|
+ case 'help':
|
|
+ if ($arg) {
|
|
+ return NULL;
|
|
+ }
|
|
+ return new HelpCommand($user);
|
|
+ case 'on':
|
|
+ if ($arg) {
|
|
+ list($other, $extra) = explode(' ', $arg, 2);
|
|
+ if ($extra) {
|
|
+ return NULL;
|
|
+ } else {
|
|
+ return new OnCommand($user, $other);
|
|
+ }
|
|
+ } else {
|
|
+ return new OnCommand($user);
|
|
+ }
|
|
+ case 'off':
|
|
+ if ($arg) {
|
|
+ list($other, $extra) = explode(' ', $arg, 2);
|
|
+ if ($extra) {
|
|
+ return NULL;
|
|
+ } else {
|
|
+ return new OffCommand($user, $other);
|
|
+ }
|
|
+ } else {
|
|
+ return new OffCommand($user);
|
|
+ }
|
|
+ case 'stop':
|
|
+ case 'quit':
|
|
+ if ($arg) {
|
|
+ return NULL;
|
|
+ } else {
|
|
+ return new OffCommand($user);
|
|
+ }
|
|
+ case 'follow':
|
|
+ case 'sub':
|
|
+ if (!$arg) {
|
|
+ return NULL;
|
|
+ }
|
|
+ list($other, $extra) = explode(' ', $arg, 2);
|
|
+ if ($extra) {
|
|
+ return NULL;
|
|
+ } else {
|
|
+ return new SubCommand($user, $other);
|
|
+ }
|
|
+ case 'leave':
|
|
+ case 'unsub':
|
|
+ if (!$arg) {
|
|
+ return NULL;
|
|
+ }
|
|
+ list($other, $extra) = explode(' ', $arg, 2);
|
|
+ if ($extra) {
|
|
+ return NULL;
|
|
+ } else {
|
|
+ return new UnsubCommand($user, $other);
|
|
+ }
|
|
+ case 'get':
|
|
+ case 'last':
|
|
+ if (!$arg) {
|
|
+ return NULL;
|
|
+ }
|
|
+ list($other, $extra) = explode(' ', $arg, 2);
|
|
+ if ($extra) {
|
|
+ return NULL;
|
|
+ } else {
|
|
+ return new GetCommand($user, $other);
|
|
+ }
|
|
+ case 'd':
|
|
+ if (!$arg) {
|
|
+ return NULL;
|
|
+ }
|
|
+ list($other, $extra) = explode(' ', $arg, 2);
|
|
+ if (!$extra) {
|
|
+ return NULL;
|
|
+ } else {
|
|
+ return new MessageCommand($user, $other, $extra);
|
|
+ }
|
|
+ case 'whois':
|
|
+ if (!$arg) {
|
|
+ return NULL;
|
|
+ }
|
|
+ list($other, $extra) = explode(' ', $arg, 2);
|
|
+ if ($extra) {
|
|
+ return NULL;
|
|
+ } else {
|
|
+ return new WhoisCommand($user, $other);
|
|
+ }
|
|
+ case 'fav':
|
|
+ if (!$arg) {
|
|
+ return NULL;
|
|
+ }
|
|
+ list($other, $extra) = explode(' ', $arg, 2);
|
|
+ if ($extra) {
|
|
+ return NULL;
|
|
+ } else {
|
|
+ return new FavCommand($user, $other);
|
|
+ }
|
|
+ case 'nudge':
|
|
+ if (!$arg) {
|
|
+ return NULL;
|
|
+ }
|
|
+ list($other, $extra) = explode(' ', $arg, 2);
|
|
+ if ($extra) {
|
|
+ return NULL;
|
|
+ } else {
|
|
+ return new NudgeCommand($user, $other);
|
|
+ }
|
|
+ case 'stats':
|
|
+ if ($arg) {
|
|
+ return NULL;
|
|
+ }
|
|
+ return new StatsCommand($user);
|
|
+ case 'invite':
|
|
+ if (!$arg) {
|
|
+ return NULL;
|
|
+ }
|
|
+ list($other, $extra) = explode(' ', $arg, 2);
|
|
+ if ($extra) {
|
|
+ return NULL;
|
|
+ } else {
|
|
+ return new InviteCommand($user, $other);
|
|
+ }
|
|
+ case 'track':
|
|
+ if (!$arg) {
|
|
+ return NULL;
|
|
+ }
|
|
+ list($word, $extra) = explode(' ', $arg, 2);
|
|
+ if ($extra) {
|
|
+ return NULL;
|
|
+ } else if ($word == 'off') {
|
|
+ return new TrackOffCommand($user);
|
|
+ } else {
|
|
+ return new TrackCommand($user, $word);
|
|
+ }
|
|
+ case 'untrack':
|
|
+ if (!$arg) {
|
|
+ return NULL;
|
|
+ }
|
|
+ list($word, $extra) = explode(' ', $arg, 2);
|
|
+ if ($extra) {
|
|
+ return NULL;
|
|
+ } else if ($word == 'all') {
|
|
+ return new TrackOffCommand($user);
|
|
+ } else {
|
|
+ return new UntrackCommand($user, $word);
|
|
+ }
|
|
+ case 'tracks':
|
|
+ case 'tracking':
|
|
+ if ($arg) {
|
|
+ return NULL;
|
|
+ }
|
|
+ return new TrackingCommand($user);
|
|
+ default:
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
hunk ./classes/Fave.php 23
|
|
- static function addNew($user, $notice) {
|
|
- $fave = new Fave();
|
|
- $fave->user_id = $user->id;
|
|
- $fave->notice_id = $notice->id;
|
|
- if (!$fave->insert()) {
|
|
- common_log_db_error($fave, 'INSERT', __FILE__);
|
|
- return false;
|
|
- }
|
|
- return $fave;
|
|
- }
|
|
-
|
|
- function &pkeyGet($kv) {
|
|
- return Memcached_DataObject::pkeyGet('Fave', $kv);
|
|
- }
|
|
+ static function addNew($user, $notice) {
|
|
+ $fave = new Fave();
|
|
+ $fave->user_id = $user->id;
|
|
+ $fave->notice_id = $notice->id;
|
|
+ if (!$fave->insert()) {
|
|
+ common_log_db_error($fave, 'INSERT', __FILE__);
|
|
+ return false;
|
|
+ }
|
|
+ return $fave;
|
|
+ }
|
|
+
|
|
+ function &pkeyGet($kv) {
|
|
+ return Memcached_DataObject::pkeyGet('Fave', $kv);
|
|
+ }
|
|
hunk ./classes/Foreign_link.php 29
|
|
- // XXX: This only returns a 1->1 single obj mapping. Change? Or make
|
|
- // a getForeignUsers() that returns more than one? --Zach
|
|
- static function getByUserID($user_id, $service) {
|
|
- $flink = new Foreign_link();
|
|
- $flink->service = $service;
|
|
- $flink->user_id = $user_id;
|
|
- $flink->limit(1);
|
|
+ // XXX: This only returns a 1->1 single obj mapping. Change? Or make
|
|
+ // a getForeignUsers() that returns more than one? --Zach
|
|
+ static function getByUserID($user_id, $service) {
|
|
+ $flink = new Foreign_link();
|
|
+ $flink->service = $service;
|
|
+ $flink->user_id = $user_id;
|
|
+ $flink->limit(1);
|
|
hunk ./classes/Foreign_link.php 37
|
|
- if ($flink->find(TRUE)) {
|
|
- return $flink;
|
|
- }
|
|
+ if ($flink->find(TRUE)) {
|
|
+ return $flink;
|
|
+ }
|
|
hunk ./classes/Foreign_link.php 41
|
|
- return NULL;
|
|
- }
|
|
-
|
|
- static function getByForeignID($foreign_id, $service) {
|
|
- $flink = new Foreign_link();
|
|
- $flink->service = $service;
|
|
- $flink->foreign_id = $foreign_id;
|
|
- $flink->limit(1);
|
|
+ return NULL;
|
|
+ }
|
|
+
|
|
+ static function getByForeignID($foreign_id, $service) {
|
|
+ $flink = new Foreign_link();
|
|
+ $flink->service = $service;
|
|
+ $flink->foreign_id = $foreign_id;
|
|
+ $flink->limit(1);
|
|
hunk ./classes/Foreign_link.php 50
|
|
- if ($flink->find(TRUE)) {
|
|
- return $flink;
|
|
- }
|
|
+ if ($flink->find(TRUE)) {
|
|
+ return $flink;
|
|
+ }
|
|
hunk ./classes/Foreign_link.php 54
|
|
- return NULL;
|
|
- }
|
|
-
|
|
- # Convenience methods
|
|
- function getForeignUser() {
|
|
- $fuser = new Foreign_user();
|
|
- $fuser->service = $this->service;
|
|
- $fuser->id = $this->foreign_id;
|
|
-
|
|
- $fuser->limit(1);
|
|
-
|
|
- if ($fuser->find(TRUE)) {
|
|
- return $fuser;
|
|
- }
|
|
-
|
|
- return NULL;
|
|
- }
|
|
-
|
|
- function getUser() {
|
|
- return User::staticGet($this->user_id);
|
|
- }
|
|
-
|
|
+ return NULL;
|
|
+ }
|
|
+
|
|
+ # Convenience methods
|
|
+ function getForeignUser() {
|
|
+ $fuser = new Foreign_user();
|
|
+ $fuser->service = $this->service;
|
|
+ $fuser->id = $this->foreign_id;
|
|
+
|
|
+ $fuser->limit(1);
|
|
+
|
|
+ if ($fuser->find(TRUE)) {
|
|
+ return $fuser;
|
|
+ }
|
|
+
|
|
+ return NULL;
|
|
+ }
|
|
+
|
|
+ function getUser() {
|
|
+ return User::staticGet($this->user_id);
|
|
+ }
|
|
+
|
|
hunk ./classes/Foreign_user.php 25
|
|
-
|
|
- // XXX: This only returns a 1->1 single obj mapping. Change? Or make
|
|
- // a getForeignUsers() that returns more than one? --Zach
|
|
- static function getForeignUser($id, $service) {
|
|
- $fuser = new Foreign_user();
|
|
- $fuser->whereAdd("service = $service");
|
|
- $fuser->whereAdd("id = $id");
|
|
- $fuser->limit(1);
|
|
-
|
|
- if ($fuser->find()) {
|
|
- $fuser->fetch();
|
|
- return $fuser;
|
|
- }
|
|
-
|
|
- return NULL;
|
|
- }
|
|
-
|
|
- function updateKeys(&$orig) {
|
|
- $parts = array();
|
|
- foreach (array('id', 'service', 'uri', 'nickname') as $k) {
|
|
- if (strcmp($this->$k, $orig->$k) != 0) {
|
|
- $parts[] = $k . ' = ' . $this->_quote($this->$k);
|
|
- }
|
|
- }
|
|
- if (count($parts) == 0) {
|
|
- # No changes
|
|
- return true;
|
|
- }
|
|
- $toupdate = implode(', ', $parts);
|
|
+
|
|
+ // XXX: This only returns a 1->1 single obj mapping. Change? Or make
|
|
+ // a getForeignUsers() that returns more than one? --Zach
|
|
+ static function getForeignUser($id, $service) {
|
|
+ $fuser = new Foreign_user();
|
|
+ $fuser->whereAdd("service = $service");
|
|
+ $fuser->whereAdd("id = $id");
|
|
+ $fuser->limit(1);
|
|
+
|
|
+ if ($fuser->find()) {
|
|
+ $fuser->fetch();
|
|
+ return $fuser;
|
|
+ }
|
|
+
|
|
+ return NULL;
|
|
+ }
|
|
+
|
|
+ function updateKeys(&$orig) {
|
|
+ $parts = array();
|
|
+ foreach (array('id', 'service', 'uri', 'nickname') as $k) {
|
|
+ if (strcmp($this->$k, $orig->$k) != 0) {
|
|
+ $parts[] = $k . ' = ' . $this->_quote($this->$k);
|
|
+ }
|
|
+ }
|
|
+ if (count($parts) == 0) {
|
|
+ # No changes
|
|
+ return true;
|
|
+ }
|
|
+ $toupdate = implode(', ', $parts);
|
|
hunk ./classes/Foreign_user.php 55
|
|
- $table = $this->tableName();
|
|
- if(common_config('db','quote_identifiers')) {
|
|
- $table = '"' . $table . '"';
|
|
- }
|
|
- $qry = 'UPDATE ' . $table . ' SET ' . $toupdate .
|
|
- ' WHERE id = ' . $this->id;
|
|
- $orig->decache();
|
|
- $result = $this->query($qry);
|
|
- if ($result) {
|
|
- $this->encache();
|
|
- }
|
|
- return $result;
|
|
- }
|
|
+ $table = $this->tableName();
|
|
+ if(common_config('db','quote_identifiers')) {
|
|
+ $table = '"' . $table . '"';
|
|
+ }
|
|
+ $qry = 'UPDATE ' . $table . ' SET ' . $toupdate .
|
|
+ ' WHERE id = ' . $this->id;
|
|
+ $orig->decache();
|
|
+ $result = $this->query($qry);
|
|
+ if ($result) {
|
|
+ $this->encache();
|
|
+ }
|
|
+ return $result;
|
|
+ }
|
|
hunk ./classes/Foreign_user.php 69
|
|
-
|
|
+
|
|
hunk ./classes/Memcached_DataObject.php 27
|
|
- if (is_null($v)) {
|
|
- $v = $k;
|
|
- # XXX: HACK!
|
|
- $i = new $cls;
|
|
- $keys = $i->keys();
|
|
- $k = $keys[0];
|
|
- unset($i);
|
|
- }
|
|
- $i = Memcached_DataObject::getcached($cls, $k, $v);
|
|
- if ($i) {
|
|
- return $i;
|
|
- } else {
|
|
- $i = DB_DataObject::staticGet($cls, $k, $v);
|
|
- if ($i) {
|
|
- $i->encache();
|
|
- }
|
|
- return $i;
|
|
- }
|
|
- }
|
|
+ if (is_null($v)) {
|
|
+ $v = $k;
|
|
+ # XXX: HACK!
|
|
+ $i = new $cls;
|
|
+ $keys = $i->keys();
|
|
+ $k = $keys[0];
|
|
+ unset($i);
|
|
+ }
|
|
+ $i = Memcached_DataObject::getcached($cls, $k, $v);
|
|
+ if ($i) {
|
|
+ return $i;
|
|
+ } else {
|
|
+ $i = DB_DataObject::staticGet($cls, $k, $v);
|
|
+ if ($i) {
|
|
+ $i->encache();
|
|
+ }
|
|
+ return $i;
|
|
+ }
|
|
+ }
|
|
hunk ./classes/Memcached_DataObject.php 47
|
|
- function &pkeyGet($cls, $kv) {
|
|
- $i = Memcached_DataObject::multicache($cls, $kv);
|
|
- if ($i) {
|
|
- return $i;
|
|
- } else {
|
|
- $i = new $cls();
|
|
- foreach ($kv as $k => $v) {
|
|
- $i->$k = $v;
|
|
- }
|
|
- if ($i->find(true)) {
|
|
- $i->encache();
|
|
- } else {
|
|
- $i = NULL;
|
|
- }
|
|
+ function &pkeyGet($cls, $kv) {
|
|
+ $i = Memcached_DataObject::multicache($cls, $kv);
|
|
+ if ($i) {
|
|
+ return $i;
|
|
+ } else {
|
|
+ $i = new $cls();
|
|
+ foreach ($kv as $k => $v) {
|
|
+ $i->$k = $v;
|
|
+ }
|
|
+ if ($i->find(true)) {
|
|
+ $i->encache();
|
|
+ } else {
|
|
+ $i = NULL;
|
|
+ }
|
|
hunk ./classes/Memcached_DataObject.php 62
|
|
- }
|
|
- }
|
|
+ }
|
|
+ }
|
|
hunk ./classes/Memcached_DataObject.php 65
|
|
- function insert() {
|
|
- $result = parent::insert();
|
|
- return $result;
|
|
- }
|
|
-
|
|
- function update($orig=NULL) {
|
|
- if (is_object($orig) && $orig instanceof Memcached_DataObject) {
|
|
- $orig->decache(); # might be different keys
|
|
- }
|
|
- $result = parent::update($orig);
|
|
- if ($result) {
|
|
- $this->encache();
|
|
- }
|
|
- return $result;
|
|
- }
|
|
-
|
|
- function delete() {
|
|
- $this->decache(); # while we still have the values!
|
|
- return parent::delete();
|
|
- }
|
|
-
|
|
- static function memcache() {
|
|
- return common_memcache();
|
|
- }
|
|
-
|
|
- static function cacheKey($cls, $k, $v) {
|
|
- return common_cache_key(strtolower($cls).':'.$k.':'.$v);
|
|
- }
|
|
-
|
|
- static function getcached($cls, $k, $v) {
|
|
- $c = Memcached_DataObject::memcache();
|
|
- if (!$c) {
|
|
- return false;
|
|
- } else {
|
|
- return $c->get(Memcached_DataObject::cacheKey($cls, $k, $v));
|
|
- }
|
|
- }
|
|
+ function insert() {
|
|
+ $result = parent::insert();
|
|
+ return $result;
|
|
+ }
|
|
+
|
|
+ function update($orig=NULL) {
|
|
+ if (is_object($orig) && $orig instanceof Memcached_DataObject) {
|
|
+ $orig->decache(); # might be different keys
|
|
+ }
|
|
+ $result = parent::update($orig);
|
|
+ if ($result) {
|
|
+ $this->encache();
|
|
+ }
|
|
+ return $result;
|
|
+ }
|
|
+
|
|
+ function delete() {
|
|
+ $this->decache(); # while we still have the values!
|
|
+ return parent::delete();
|
|
+ }
|
|
+
|
|
+ static function memcache() {
|
|
+ return common_memcache();
|
|
+ }
|
|
+
|
|
+ static function cacheKey($cls, $k, $v) {
|
|
+ return common_cache_key(strtolower($cls).':'.$k.':'.$v);
|
|
+ }
|
|
+
|
|
+ static function getcached($cls, $k, $v) {
|
|
+ $c = Memcached_DataObject::memcache();
|
|
+ if (!$c) {
|
|
+ return false;
|
|
+ } else {
|
|
+ return $c->get(Memcached_DataObject::cacheKey($cls, $k, $v));
|
|
+ }
|
|
+ }
|
|
hunk ./classes/Memcached_DataObject.php 103
|
|
- function keyTypes() {
|
|
- global $_DB_DATAOBJECT;
|
|
+ function keyTypes() {
|
|
+ global $_DB_DATAOBJECT;
|
|
hunk ./classes/Memcached_DataObject.php 106
|
|
- $this->databaseStructure();
|
|
+ $this->databaseStructure();
|
|
hunk ./classes/Memcached_DataObject.php 109
|
|
- return $_DB_DATAOBJECT['INI'][$this->_database][$this->__table."__keys"];
|
|
- }
|
|
-
|
|
- function encache() {
|
|
- $c = $this->memcache();
|
|
- if (!$c) {
|
|
- return false;
|
|
- } else {
|
|
- $pkey = array();
|
|
- $pval = array();
|
|
- $types = $this->keyTypes();
|
|
- ksort($types);
|
|
- foreach ($types as $key => $type) {
|
|
- if ($type == 'K') {
|
|
- $pkey[] = $key;
|
|
- $pval[] = $this->$key;
|
|
- } else {
|
|
- $c->set($this->cacheKey($this->tableName(), $key, $this->$key), $this);
|
|
- }
|
|
- }
|
|
- # XXX: should work for both compound and scalar pkeys
|
|
- $pvals = implode(',', $pval);
|
|
- $pkeys = implode(',', $pkey);
|
|
- $c->set($this->cacheKey($this->tableName(), $pkeys, $pvals), $this);
|
|
- }
|
|
- }
|
|
-
|
|
- function decache() {
|
|
- $c = $this->memcache();
|
|
- if (!$c) {
|
|
- return false;
|
|
- } else {
|
|
- $pkey = array();
|
|
- $pval = array();
|
|
- $types = $this->keyTypes();
|
|
- ksort($types);
|
|
- foreach ($types as $key => $type) {
|
|
- if ($type == 'K') {
|
|
- $pkey[] = $key;
|
|
- $pval[] = $this->$key;
|
|
- } else {
|
|
- $c->delete($this->cacheKey($this->tableName(), $key, $this->$key));
|
|
- }
|
|
- }
|
|
- # should work for both compound and scalar pkeys
|
|
- # XXX: comma works for now but may not be safe separator for future keys
|
|
- $pvals = implode(',', $pval);
|
|
- $pkeys = implode(',', $pkey);
|
|
- $c->delete($this->cacheKey($this->tableName(), $pkeys, $pvals));
|
|
- }
|
|
- }
|
|
+ return $_DB_DATAOBJECT['INI'][$this->_database][$this->__table."__keys"];
|
|
+ }
|
|
+
|
|
+ function encache() {
|
|
+ $c = $this->memcache();
|
|
+ if (!$c) {
|
|
+ return false;
|
|
+ } else {
|
|
+ $pkey = array();
|
|
+ $pval = array();
|
|
+ $types = $this->keyTypes();
|
|
+ ksort($types);
|
|
+ foreach ($types as $key => $type) {
|
|
+ if ($type == 'K') {
|
|
+ $pkey[] = $key;
|
|
+ $pval[] = $this->$key;
|
|
+ } else {
|
|
+ $c->set($this->cacheKey($this->tableName(), $key, $this->$key), $this);
|
|
+ }
|
|
+ }
|
|
+ # XXX: should work for both compound and scalar pkeys
|
|
+ $pvals = implode(',', $pval);
|
|
+ $pkeys = implode(',', $pkey);
|
|
+ $c->set($this->cacheKey($this->tableName(), $pkeys, $pvals), $this);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ function decache() {
|
|
+ $c = $this->memcache();
|
|
+ if (!$c) {
|
|
+ return false;
|
|
+ } else {
|
|
+ $pkey = array();
|
|
+ $pval = array();
|
|
+ $types = $this->keyTypes();
|
|
+ ksort($types);
|
|
+ foreach ($types as $key => $type) {
|
|
+ if ($type == 'K') {
|
|
+ $pkey[] = $key;
|
|
+ $pval[] = $this->$key;
|
|
+ } else {
|
|
+ $c->delete($this->cacheKey($this->tableName(), $key, $this->$key));
|
|
+ }
|
|
+ }
|
|
+ # should work for both compound and scalar pkeys
|
|
+ # XXX: comma works for now but may not be safe separator for future keys
|
|
+ $pvals = implode(',', $pval);
|
|
+ $pkeys = implode(',', $pkey);
|
|
+ $c->delete($this->cacheKey($this->tableName(), $pkeys, $pvals));
|
|
+ }
|
|
+ }
|
|
hunk ./classes/Memcached_DataObject.php 161
|
|
- function multicache($cls, $kv) {
|
|
- ksort($kv);
|
|
- $c = Memcached_DataObject::memcache();
|
|
- if (!$c) {
|
|
- return false;
|
|
- } else {
|
|
- $pkeys = implode(',', array_keys($kv));
|
|
- $pvals = implode(',', array_values($kv));
|
|
- return $c->get(Memcached_DataObject::cacheKey($cls, $pkeys, $pvals));
|
|
- }
|
|
- }
|
|
+ function multicache($cls, $kv) {
|
|
+ ksort($kv);
|
|
+ $c = Memcached_DataObject::memcache();
|
|
+ if (!$c) {
|
|
+ return false;
|
|
+ } else {
|
|
+ $pkeys = implode(',', array_keys($kv));
|
|
+ $pvals = implode(',', array_values($kv));
|
|
+ return $c->get(Memcached_DataObject::cacheKey($cls, $pkeys, $pvals));
|
|
+ }
|
|
+ }
|
|
hunk ./classes/Message.php 29
|
|
-
|
|
- function getFrom() {
|
|
- return Profile::staticGet('id', $this->from_profile);
|
|
- }
|
|
-
|
|
- function getTo() {
|
|
- return Profile::staticGet('id', $this->to_profile);
|
|
- }
|
|
-
|
|
- static function saveNew($from, $to, $content, $source) {
|
|
-
|
|
- $msg = new Message();
|
|
-
|
|
- $msg->from_profile = $from;
|
|
- $msg->to_profile = $to;
|
|
- $msg->content = common_shorten_links($content);
|
|
- $msg->rendered = common_render_text($content);
|
|
- $msg->created = common_sql_now();
|
|
- $msg->source = $source;
|
|
-
|
|
- $result = $msg->insert();
|
|
-
|
|
- if (!$result) {
|
|
- common_log_db_error($msg, 'INSERT', __FILE__);
|
|
- return _('Could not insert message.');
|
|
- }
|
|
-
|
|
- $orig = clone($msg);
|
|
- $msg->uri = common_local_url('showmessage', array('message' => $msg->id));
|
|
-
|
|
- $result = $msg->update($orig);
|
|
-
|
|
- if (!$result) {
|
|
- common_log_db_error($msg, 'UPDATE', __FILE__);
|
|
- return _('Could not update message with new URI.');
|
|
- }
|
|
-
|
|
- return $msg;
|
|
- }
|
|
+
|
|
+ function getFrom() {
|
|
+ return Profile::staticGet('id', $this->from_profile);
|
|
+ }
|
|
+
|
|
+ function getTo() {
|
|
+ return Profile::staticGet('id', $this->to_profile);
|
|
+ }
|
|
+
|
|
+ static function saveNew($from, $to, $content, $source) {
|
|
+
|
|
+ $msg = new Message();
|
|
+
|
|
+ $msg->from_profile = $from;
|
|
+ $msg->to_profile = $to;
|
|
+ $msg->content = common_shorten_links($content);
|
|
+ $msg->rendered = common_render_text($content);
|
|
+ $msg->created = common_sql_now();
|
|
+ $msg->source = $source;
|
|
+
|
|
+ $result = $msg->insert();
|
|
+
|
|
+ if (!$result) {
|
|
+ common_log_db_error($msg, 'INSERT', __FILE__);
|
|
+ return _('Could not insert message.');
|
|
+ }
|
|
+
|
|
+ $orig = clone($msg);
|
|
+ $msg->uri = common_local_url('showmessage', array('message' => $msg->id));
|
|
+
|
|
+ $result = $msg->update($orig);
|
|
+
|
|
+ if (!$result) {
|
|
+ common_log_db_error($msg, 'UPDATE', __FILE__);
|
|
+ return _('Could not update message with new URI.');
|
|
+ }
|
|
+
|
|
+ return $msg;
|
|
+ }
|
|
hunk ./classes/Notice.php 13
|
|
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
hunk ./classes/Notice.php 17
|
|
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
hunk ./classes/Notice.php 34
|
|
- ###START_AUTOCODE
|
|
- /* the code below is auto generated do not remove the above tag */
|
|
+ ###START_AUTOCODE
|
|
+ /* the code below is auto generated do not remove the above tag */
|
|
hunk ./classes/Notice.php 37
|
|
- public $__table = 'notice'; // table name
|
|
- public $id; // int(4) primary_key not_null
|
|
- public $profile_id; // int(4) not_null
|
|
- public $uri; // varchar(255) unique_key
|
|
- public $content; // varchar(140)
|
|
- public $rendered; // text()
|
|
- public $url; // varchar(255)
|
|
- public $created; // datetime() not_null
|
|
- public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
|
|
- public $reply_to; // int(4)
|
|
- public $is_local; // tinyint(1)
|
|
- public $source; // varchar(32)
|
|
+ public $__table = 'notice'; // table name
|
|
+ public $id; // int(4) primary_key not_null
|
|
+ public $profile_id; // int(4) not_null
|
|
+ public $uri; // varchar(255) unique_key
|
|
+ public $content; // varchar(140)
|
|
+ public $rendered; // text()
|
|
+ public $url; // varchar(255)
|
|
+ public $created; // datetime() not_null
|
|
+ public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
|
|
+ public $reply_to; // int(4)
|
|
+ public $is_local; // tinyint(1)
|
|
+ public $source; // varchar(32)
|
|
hunk ./classes/Notice.php 50
|
|
- /* Static get */
|
|
- function staticGet($k,$v=NULL) { return Memcached_DataObject::staticGet('Notice',$k,$v); }
|
|
+ /* Static get */
|
|
+ function staticGet($k,$v=NULL) { return Memcached_DataObject::staticGet('Notice',$k,$v); }
|
|
hunk ./classes/Notice.php 53
|
|
- /* the code above is auto generated do not remove the tag below */
|
|
- ###END_AUTOCODE
|
|
+ /* the code above is auto generated do not remove the tag below */
|
|
+ ###END_AUTOCODE
|
|
hunk ./classes/Notice.php 56
|
|
- function getProfile() {
|
|
- return Profile::staticGet('id', $this->profile_id);
|
|
- }
|
|
+ function getProfile() {
|
|
+ return Profile::staticGet('id', $this->profile_id);
|
|
+ }
|
|
hunk ./classes/Notice.php 60
|
|
- function delete() {
|
|
- $this->blowCaches(true);
|
|
- $this->blowFavesCache(true);
|
|
- $this->blowInboxes();
|
|
- return parent::delete();
|
|
- }
|
|
+ function delete() {
|
|
+ $this->blowCaches(true);
|
|
+ $this->blowFavesCache(true);
|
|
+ $this->blowInboxes();
|
|
+ return parent::delete();
|
|
+ }
|
|
hunk ./classes/Notice.php 67
|
|
- function saveTags() {
|
|
- /* extract all #hastags */
|
|
- $count = preg_match_all('/(?:^|\s)#([A-Za-z0-9_\-\.]{1,64})/', strtolower($this->content), $match);
|
|
- if (!$count) {
|
|
- return true;
|
|
- }
|
|
+ function saveTags() {
|
|
+ /* extract all #hastags */
|
|
+ $count = preg_match_all('/(?:^|\s)#([A-Za-z0-9_\-\.]{1,64})/', strtolower($this->content), $match);
|
|
+ if (!$count) {
|
|
+ return true;
|
|
+ }
|
|
hunk ./classes/Notice.php 74
|
|
- /* elide characters we don't want in the tag */
|
|
- $match[1] = str_replace(array('-', '_', '.'), '', $match[1]);
|
|
+ /* elide characters we don't want in the tag */
|
|
+ $match[1] = str_replace(array('-', '_', '.'), '', $match[1]);
|
|
hunk ./classes/Notice.php 77
|
|
- /* Add them to the database */
|
|
- foreach(array_unique($match[1]) as $hashtag) {
|
|
- $tag = DB_DataObject::factory('Notice_tag');
|
|
- $tag->notice_id = $this->id;
|
|
- $tag->tag = $hashtag;
|
|
- $tag->created = $this->created;
|
|
- $id = $tag->insert();
|
|
- if (!$id) {
|
|
- $last_error = PEAR::getStaticProperty('DB_DataObject','lastError');
|
|
- common_log(LOG_ERR, 'DB error inserting hashtag: ' . $last_error->message);
|
|
- common_server_error(sprintf(_('DB error inserting hashtag: %s'), $last_error->message));
|
|
- return;
|
|
- }
|
|
- }
|
|
- return true;
|
|
- }
|
|
+ /* Add them to the database */
|
|
+ foreach(array_unique($match[1]) as $hashtag) {
|
|
+ $tag = DB_DataObject::factory('Notice_tag');
|
|
+ $tag->notice_id = $this->id;
|
|
+ $tag->tag = $hashtag;
|
|
+ $tag->created = $this->created;
|
|
+ $id = $tag->insert();
|
|
+ if (!$id) {
|
|
+ $last_error = PEAR::getStaticProperty('DB_DataObject','lastError');
|
|
+ common_log(LOG_ERR, 'DB error inserting hashtag: ' . $last_error->message);
|
|
+ common_server_error(sprintf(_('DB error inserting hashtag: %s'), $last_error->message));
|
|
+ return;
|
|
+ }
|
|
+ }
|
|
+ return true;
|
|
+ }
|
|
hunk ./classes/Notice.php 94
|
|
- static function saveNew($profile_id, $content, $source=NULL, $is_local=1, $reply_to=NULL, $uri=NULL) {
|
|
+ static function saveNew($profile_id, $content, $source=NULL, $is_local=1, $reply_to=NULL, $uri=NULL) {
|
|
hunk ./classes/Notice.php 96
|
|
- $profile = Profile::staticGet($profile_id);
|
|
+ $profile = Profile::staticGet($profile_id);
|
|
hunk ./classes/Notice.php 105
|
|
- return _('Too many notices too fast; take a breather and post again in a few minutes.');
|
|
+ return _('Too many notices too fast; take a breather and post again in a few minutes.');
|
|
hunk ./classes/Notice.php 108
|
|
- $banned = common_config('profile', 'banned');
|
|
+ $banned = common_config('profile', 'banned');
|
|
hunk ./classes/Notice.php 110
|
|
- if ( in_array($profile_id, $banned) || in_array($profile->nickname, $banned)) {
|
|
- common_log(LOG_WARNING, "Attempted post from banned user: $profile->nickname (user id = $profile_id).");
|
|
+ if ( in_array($profile_id, $banned) || in_array($profile->nickname, $banned)) {
|
|
+ common_log(LOG_WARNING, "Attempted post from banned user: $profile->nickname (user id = $profile_id).");
|
|
hunk ./classes/Notice.php 113
|
|
- }
|
|
+ }
|
|
hunk ./classes/Notice.php 115
|
|
- $notice = new Notice();
|
|
- $notice->profile_id = $profile_id;
|
|
+ $notice = new Notice();
|
|
+ $notice->profile_id = $profile_id;
|
|
hunk ./classes/Notice.php 118
|
|
- $blacklist = common_config('public', 'blacklist');
|
|
+ $blacklist = common_config('public', 'blacklist');
|
|
hunk ./classes/Notice.php 120
|
|
- # Blacklisted are non-false, but not 1, either
|
|
+ # Blacklisted are non-false, but not 1, either
|
|
hunk ./classes/Notice.php 122
|
|
- if ($blacklist && in_array($profile_id, $blacklist)) {
|
|
- $notice->is_local = -1;
|
|
- } else {
|
|
- $notice->is_local = $is_local;
|
|
- }
|
|
+ if ($blacklist && in_array($profile_id, $blacklist)) {
|
|
+ $notice->is_local = -1;
|
|
+ } else {
|
|
+ $notice->is_local = $is_local;
|
|
+ }
|
|
hunk ./classes/Notice.php 128
|
|
- $notice->reply_to = $reply_to;
|
|
- $notice->created = common_sql_now();
|
|
- $notice->content = common_shorten_links($content);
|
|
- $notice->rendered = common_render_content($notice->content, $notice);
|
|
- $notice->source = $source;
|
|
- $notice->uri = $uri;
|
|
+ $notice->reply_to = $reply_to;
|
|
+ $notice->created = common_sql_now();
|
|
+ $notice->content = common_shorten_links($content);
|
|
+ $notice->rendered = common_render_content($notice->content, $notice);
|
|
+ $notice->source = $source;
|
|
+ $notice->uri = $uri;
|
|
hunk ./classes/Notice.php 135
|
|
- $id = $notice->insert();
|
|
+ $id = $notice->insert();
|
|
hunk ./classes/Notice.php 137
|
|
- if (!$id) {
|
|
- common_log_db_error($notice, 'INSERT', __FILE__);
|
|
- return _('Problem saving notice.');
|
|
- }
|
|
+ if (!$id) {
|
|
+ common_log_db_error($notice, 'INSERT', __FILE__);
|
|
+ return _('Problem saving notice.');
|
|
+ }
|
|
hunk ./classes/Notice.php 142
|
|
- # Update the URI after the notice is in the database
|
|
- if (!$uri) {
|
|
- $orig = clone($notice);
|
|
- $notice->uri = common_notice_uri($notice);
|
|
+ # Update the URI after the notice is in the database
|
|
+ if (!$uri) {
|
|
+ $orig = clone($notice);
|
|
+ $notice->uri = common_notice_uri($notice);
|
|
hunk ./classes/Notice.php 147
|
|
- if (!$notice->update($orig)) {
|
|
- common_log_db_error($notice, 'UPDATE', __FILE__);
|
|
- return _('Problem saving notice.');
|
|
- }
|
|
- }
|
|
+ if (!$notice->update($orig)) {
|
|
+ common_log_db_error($notice, 'UPDATE', __FILE__);
|
|
+ return _('Problem saving notice.');
|
|
+ }
|
|
+ }
|
|
hunk ./classes/Notice.php 153
|
|
- # XXX: do we need to change this for remote users?
|
|
+ # XXX: do we need to change this for remote users?
|
|
hunk ./classes/Notice.php 155
|
|
- common_save_replies($notice);
|
|
- $notice->saveTags();
|
|
+ common_save_replies($notice);
|
|
+ $notice->saveTags();
|
|
hunk ./classes/Notice.php 158
|
|
- # Clear the cache for subscribed users, so they'll update at next request
|
|
- # XXX: someone clever could prepend instead of clearing the cache
|
|
+ # Clear the cache for subscribed users, so they'll update at next request
|
|
+ # XXX: someone clever could prepend instead of clearing the cache
|
|
hunk ./classes/Notice.php 161
|
|
- if (common_config('memcached', 'enabled')) {
|
|
- $notice->blowCaches();
|
|
- }
|
|
+ if (common_config('memcached', 'enabled')) {
|
|
+ $notice->blowCaches();
|
|
+ }
|
|
hunk ./classes/Notice.php 165
|
|
- $notice->addToInboxes();
|
|
- return $notice;
|
|
- }
|
|
+ $notice->addToInboxes();
|
|
+ return $notice;
|
|
+ }
|
|
hunk ./classes/Notice.php 187
|
|
- function blowCaches($blowLast=false) {
|
|
- $this->blowSubsCache($blowLast);
|
|
- $this->blowNoticeCache($blowLast);
|
|
- $this->blowRepliesCache($blowLast);
|
|
- $this->blowPublicCache($blowLast);
|
|
- $this->blowTagCache($blowLast);
|
|
- }
|
|
+ function blowCaches($blowLast=false) {
|
|
+ $this->blowSubsCache($blowLast);
|
|
+ $this->blowNoticeCache($blowLast);
|
|
+ $this->blowRepliesCache($blowLast);
|
|
+ $this->blowPublicCache($blowLast);
|
|
+ $this->blowTagCache($blowLast);
|
|
+ }
|
|
hunk ./classes/Notice.php 195
|
|
- function blowTagCache($blowLast=false) {
|
|
- $cache = common_memcache();
|
|
- if ($cache) {
|
|
- $tag = new Notice_tag();
|
|
- $tag->notice_id = $this->id;
|
|
- if ($tag->find()) {
|
|
- while ($tag->fetch()) {
|
|
- $cache->delete(common_cache_key('notice_tag:notice_stream:' . $tag->tag));
|
|
- if ($blowLast) {
|
|
- $cache->delete(common_cache_key('notice_tag:notice_stream:' . $tag->tag . ';last'));
|
|
- }
|
|
- }
|
|
- }
|
|
- $tag->free();
|
|
- unset($tag);
|
|
- }
|
|
- }
|
|
+ function blowTagCache($blowLast=false) {
|
|
+ $cache = common_memcache();
|
|
+ if ($cache) {
|
|
+ $tag = new Notice_tag();
|
|
+ $tag->notice_id = $this->id;
|
|
+ if ($tag->find()) {
|
|
+ while ($tag->fetch()) {
|
|
+ $cache->delete(common_cache_key('notice_tag:notice_stream:' . $tag->tag));
|
|
+ if ($blowLast) {
|
|
+ $cache->delete(common_cache_key('notice_tag:notice_stream:' . $tag->tag . ';last'));
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ $tag->free();
|
|
+ unset($tag);
|
|
+ }
|
|
+ }
|
|
hunk ./classes/Notice.php 213
|
|
- function blowSubsCache($blowLast=false) {
|
|
- $cache = common_memcache();
|
|
- if ($cache) {
|
|
- $user = new User();
|
|
+ function blowSubsCache($blowLast=false) {
|
|
+ $cache = common_memcache();
|
|
+ if ($cache) {
|
|
+ $user = new User();
|
|
hunk ./classes/Notice.php 218
|
|
- $user->query('SELECT id ' .
|
|
- 'FROM user JOIN subscription ON user.id = subscription.subscriber ' .
|
|
- 'WHERE subscription.subscribed = ' . $this->profile_id);
|
|
+ $user->query('SELECT id ' .
|
|
+ 'FROM user JOIN subscription ON user.id = subscription.subscriber ' .
|
|
+ 'WHERE subscription.subscribed = ' . $this->profile_id);
|
|
hunk ./classes/Notice.php 222
|
|
- while ($user->fetch()) {
|
|
- $cache->delete(common_cache_key('user:notices_with_friends:' . $user->id));
|
|
- if ($blowLast) {
|
|
- $cache->delete(common_cache_key('user:notices_with_friends:' . $user->id . ';last'));
|
|
- }
|
|
- }
|
|
- $user->free();
|
|
- unset($user);
|
|
- }
|
|
- }
|
|
+ while ($user->fetch()) {
|
|
+ $cache->delete(common_cache_key('user:notices_with_friends:' . $user->id));
|
|
+ if ($blowLast) {
|
|
+ $cache->delete(common_cache_key('user:notices_with_friends:' . $user->id . ';last'));
|
|
+ }
|
|
+ }
|
|
+ $user->free();
|
|
+ unset($user);
|
|
+ }
|
|
+ }
|
|
hunk ./classes/Notice.php 233
|
|
- function blowNoticeCache($blowLast=false) {
|
|
- if ($this->is_local) {
|
|
- $cache = common_memcache();
|
|
- if ($cache) {
|
|
- $cache->delete(common_cache_key('profile:notices:'.$this->profile_id));
|
|
- if ($blowLast) {
|
|
- $cache->delete(common_cache_key('profile:notices:'.$this->profile_id.';last'));
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
+ function blowNoticeCache($blowLast=false) {
|
|
+ if ($this->is_local) {
|
|
+ $cache = common_memcache();
|
|
+ if ($cache) {
|
|
+ $cache->delete(common_cache_key('profile:notices:'.$this->profile_id));
|
|
+ if ($blowLast) {
|
|
+ $cache->delete(common_cache_key('profile:notices:'.$this->profile_id.';last'));
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
hunk ./classes/Notice.php 245
|
|
- function blowRepliesCache($blowLast=false) {
|
|
- $cache = common_memcache();
|
|
- if ($cache) {
|
|
- $reply = new Reply();
|
|
- $reply->notice_id = $this->id;
|
|
- if ($reply->find()) {
|
|
- while ($reply->fetch()) {
|
|
- $cache->delete(common_cache_key('user:replies:'.$reply->profile_id));
|
|
- if ($blowLast) {
|
|
- $cache->delete(common_cache_key('user:replies:'.$reply->profile_id.';last'));
|
|
- }
|
|
- }
|
|
- }
|
|
- $reply->free();
|
|
- unset($reply);
|
|
- }
|
|
- }
|
|
+ function blowRepliesCache($blowLast=false) {
|
|
+ $cache = common_memcache();
|
|
+ if ($cache) {
|
|
+ $reply = new Reply();
|
|
+ $reply->notice_id = $this->id;
|
|
+ if ($reply->find()) {
|
|
+ while ($reply->fetch()) {
|
|
+ $cache->delete(common_cache_key('user:replies:'.$reply->profile_id));
|
|
+ if ($blowLast) {
|
|
+ $cache->delete(common_cache_key('user:replies:'.$reply->profile_id.';last'));
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ $reply->free();
|
|
+ unset($reply);
|
|
+ }
|
|
+ }
|
|
hunk ./classes/Notice.php 263
|
|
- function blowPublicCache($blowLast=false) {
|
|
- if ($this->is_local == 1) {
|
|
- $cache = common_memcache();
|
|
- if ($cache) {
|
|
- $cache->delete(common_cache_key('public'));
|
|
- if ($blowLast) {
|
|
- $cache->delete(common_cache_key('public').';last');
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
+ function blowPublicCache($blowLast=false) {
|
|
+ if ($this->is_local == 1) {
|
|
+ $cache = common_memcache();
|
|
+ if ($cache) {
|
|
+ $cache->delete(common_cache_key('public'));
|
|
+ if ($blowLast) {
|
|
+ $cache->delete(common_cache_key('public').';last');
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
hunk ./classes/Notice.php 275
|
|
- function blowFavesCache($blowLast=false) {
|
|
- $cache = common_memcache();
|
|
- if ($cache) {
|
|
- $fave = new Fave();
|
|
- $fave->notice_id = $this->id;
|
|
- if ($fave->find()) {
|
|
- while ($fave->fetch()) {
|
|
- $cache->delete(common_cache_key('user:faves:'.$fave->user_id));
|
|
- if ($blowLast) {
|
|
- $cache->delete(common_cache_key('user:faves:'.$fave->user_id.';last'));
|
|
- }
|
|
- }
|
|
- }
|
|
- $fave->free();
|
|
- unset($fave);
|
|
- }
|
|
- }
|
|
+ function blowFavesCache($blowLast=false) {
|
|
+ $cache = common_memcache();
|
|
+ if ($cache) {
|
|
+ $fave = new Fave();
|
|
+ $fave->notice_id = $this->id;
|
|
+ if ($fave->find()) {
|
|
+ while ($fave->fetch()) {
|
|
+ $cache->delete(common_cache_key('user:faves:'.$fave->user_id));
|
|
+ if ($blowLast) {
|
|
+ $cache->delete(common_cache_key('user:faves:'.$fave->user_id.';last'));
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ $fave->free();
|
|
+ unset($fave);
|
|
+ }
|
|
+ }
|
|
hunk ./classes/Notice.php 293
|
|
- # XXX: too many args; we need to move to named params or even a separate
|
|
- # class for notice streams
|
|
+ # XXX: too many args; we need to move to named params or even a separate
|
|
+ # class for notice streams
|
|
hunk ./classes/Notice.php 296
|
|
- static function getStream($qry, $cachekey, $offset=0, $limit=20, $since_id=0, $before_id=0, $order=NULL, $since=NULL) {
|
|
+ static function getStream($qry, $cachekey, $offset=0, $limit=20, $since_id=0, $before_id=0, $order=NULL, $since=NULL) {
|
|
hunk ./classes/Notice.php 298
|
|
- if (common_config('memcached', 'enabled')) {
|
|
+ if (common_config('memcached', 'enabled')) {
|
|
hunk ./classes/Notice.php 300
|
|
- # Skip the cache if this is a since, since_id or before_id qry
|
|
- if ($since_id > 0 || $before_id > 0 || $since) {
|
|
- return Notice::getStreamDirect($qry, $offset, $limit, $since_id, $before_id, $order, $since);
|
|
- } else {
|
|
- return Notice::getCachedStream($qry, $cachekey, $offset, $limit, $order);
|
|
- }
|
|
- }
|
|
+ # Skip the cache if this is a since, since_id or before_id qry
|
|
+ if ($since_id > 0 || $before_id > 0 || $since) {
|
|
+ return Notice::getStreamDirect($qry, $offset, $limit, $since_id, $before_id, $order, $since);
|
|
+ } else {
|
|
+ return Notice::getCachedStream($qry, $cachekey, $offset, $limit, $order);
|
|
+ }
|
|
+ }
|
|
hunk ./classes/Notice.php 308
|
|
- return Notice::getStreamDirect($qry, $offset, $limit, $since_id, $before_id, $order, $since);
|
|
- }
|
|
+ return Notice::getStreamDirect($qry, $offset, $limit, $since_id, $before_id, $order, $since);
|
|
+ }
|
|
hunk ./classes/Notice.php 311
|
|
- static function getStreamDirect($qry, $offset, $limit, $since_id, $before_id, $order, $since) {
|
|
+ static function getStreamDirect($qry, $offset, $limit, $since_id, $before_id, $order, $since) {
|
|
hunk ./classes/Notice.php 313
|
|
- $needAnd = FALSE;
|
|
- $needWhere = TRUE;
|
|
+ $needAnd = FALSE;
|
|
+ $needWhere = TRUE;
|
|
hunk ./classes/Notice.php 316
|
|
- if (preg_match('/\bWHERE\b/i', $qry)) {
|
|
- $needWhere = FALSE;
|
|
- $needAnd = TRUE;
|
|
- }
|
|
+ if (preg_match('/\bWHERE\b/i', $qry)) {
|
|
+ $needWhere = FALSE;
|
|
+ $needAnd = TRUE;
|
|
+ }
|
|
hunk ./classes/Notice.php 321
|
|
- if ($since_id > 0) {
|
|
+ if ($since_id > 0) {
|
|
hunk ./classes/Notice.php 323
|
|
- if ($needWhere) {
|
|
- $qry .= ' WHERE ';
|
|
- $needWhere = FALSE;
|
|
- } else {
|
|
- $qry .= ' AND ';
|
|
- }
|
|
+ if ($needWhere) {
|
|
+ $qry .= ' WHERE ';
|
|
+ $needWhere = FALSE;
|
|
+ } else {
|
|
+ $qry .= ' AND ';
|
|
+ }
|
|
hunk ./classes/Notice.php 330
|
|
- $qry .= ' notice.id > ' . $since_id;
|
|
- }
|
|
+ $qry .= ' notice.id > ' . $since_id;
|
|
+ }
|
|
hunk ./classes/Notice.php 333
|
|
- if ($before_id > 0) {
|
|
+ if ($before_id > 0) {
|
|
hunk ./classes/Notice.php 335
|
|
- if ($needWhere) {
|
|
- $qry .= ' WHERE ';
|
|
- $needWhere = FALSE;
|
|
- } else {
|
|
- $qry .= ' AND ';
|
|
- }
|
|
+ if ($needWhere) {
|
|
+ $qry .= ' WHERE ';
|
|
+ $needWhere = FALSE;
|
|
+ } else {
|
|
+ $qry .= ' AND ';
|
|
+ }
|
|
hunk ./classes/Notice.php 342
|
|
- $qry .= ' notice.id < ' . $before_id;
|
|
- }
|
|
+ $qry .= ' notice.id < ' . $before_id;
|
|
+ }
|
|
hunk ./classes/Notice.php 345
|
|
- if ($since) {
|
|
+ if ($since) {
|
|
hunk ./classes/Notice.php 347
|
|
- if ($needWhere) {
|
|
- $qry .= ' WHERE ';
|
|
- $needWhere = FALSE;
|
|
- } else {
|
|
- $qry .= ' AND ';
|
|
- }
|
|
+ if ($needWhere) {
|
|
+ $qry .= ' WHERE ';
|
|
+ $needWhere = FALSE;
|
|
+ } else {
|
|
+ $qry .= ' AND ';
|
|
+ }
|
|
hunk ./classes/Notice.php 354
|
|
- $qry .= ' notice.created > \'' . date('Y-m-d H:i:s', $since) . '\'';
|
|
- }
|
|
+ $qry .= ' notice.created > \'' . date('Y-m-d H:i:s', $since) . '\'';
|
|
+ }
|
|
hunk ./classes/Notice.php 357
|
|
- # Allow ORDER override
|
|
+ # Allow ORDER override
|
|
hunk ./classes/Notice.php 359
|
|
- if ($order) {
|
|
- $qry .= $order;
|
|
- } else {
|
|
- $qry .= ' ORDER BY notice.created DESC, notice.id DESC ';
|
|
- }
|
|
+ if ($order) {
|
|
+ $qry .= $order;
|
|
+ } else {
|
|
+ $qry .= ' ORDER BY notice.created DESC, notice.id DESC ';
|
|
+ }
|
|
hunk ./classes/Notice.php 365
|
|
- if (common_config('db','type') == 'pgsql') {
|
|
- $qry .= ' LIMIT ' . $limit . ' OFFSET ' . $offset;
|
|
- } else {
|
|
- $qry .= ' LIMIT ' . $offset . ', ' . $limit;
|
|
- }
|
|
+ if (common_config('db','type') == 'pgsql') {
|
|
+ $qry .= ' LIMIT ' . $limit . ' OFFSET ' . $offset;
|
|
+ } else {
|
|
+ $qry .= ' LIMIT ' . $offset . ', ' . $limit;
|
|
+ }
|
|
hunk ./classes/Notice.php 371
|
|
- $notice = new Notice();
|
|
+ $notice = new Notice();
|
|
hunk ./classes/Notice.php 373
|
|
- $notice->query($qry);
|
|
+ $notice->query($qry);
|
|
hunk ./classes/Notice.php 375
|
|
- return $notice;
|
|
- }
|
|
+ return $notice;
|
|
+ }
|
|
hunk ./classes/Notice.php 378
|
|
- # XXX: this is pretty long and should probably be broken up into
|
|
- # some helper functions
|
|
+ # XXX: this is pretty long and should probably be broken up into
|
|
+ # some helper functions
|
|
hunk ./classes/Notice.php 381
|
|
- static function getCachedStream($qry, $cachekey, $offset, $limit, $order) {
|
|
+ static function getCachedStream($qry, $cachekey, $offset, $limit, $order) {
|
|
hunk ./classes/Notice.php 383
|
|
- # If outside our cache window, just go to the DB
|
|
+ # If outside our cache window, just go to the DB
|
|
hunk ./classes/Notice.php 385
|
|
- if ($offset + $limit > NOTICE_CACHE_WINDOW) {
|
|
- return Notice::getStreamDirect($qry, $offset, $limit, NULL, NULL, $order, NULL);
|
|
- }
|
|
+ if ($offset + $limit > NOTICE_CACHE_WINDOW) {
|
|
+ return Notice::getStreamDirect($qry, $offset, $limit, NULL, NULL, $order, NULL);
|
|
+ }
|
|
hunk ./classes/Notice.php 389
|
|
- # Get the cache; if we can't, just go to the DB
|
|
+ # Get the cache; if we can't, just go to the DB
|
|
hunk ./classes/Notice.php 391
|
|
- $cache = common_memcache();
|
|
+ $cache = common_memcache();
|
|
hunk ./classes/Notice.php 393
|
|
- if (!$cache) {
|
|
- return Notice::getStreamDirect($qry, $offset, $limit, NULL, NULL, $order, NULL);
|
|
- }
|
|
+ if (!$cache) {
|
|
+ return Notice::getStreamDirect($qry, $offset, $limit, NULL, NULL, $order, NULL);
|
|
+ }
|
|
hunk ./classes/Notice.php 397
|
|
- # Get the notices out of the cache
|
|
+ # Get the notices out of the cache
|
|
hunk ./classes/Notice.php 399
|
|
- $notices = $cache->get(common_cache_key($cachekey));
|
|
+ $notices = $cache->get(common_cache_key($cachekey));
|
|
hunk ./classes/Notice.php 401
|
|
- # On a cache hit, return a DB-object-like wrapper
|
|
+ # On a cache hit, return a DB-object-like wrapper
|
|
hunk ./classes/Notice.php 403
|
|
- if ($notices !== FALSE) {
|
|
- $wrapper = new NoticeWrapper(array_slice($notices, $offset, $limit));
|
|
- return $wrapper;
|
|
- }
|
|
+ if ($notices !== FALSE) {
|
|
+ $wrapper = new NoticeWrapper(array_slice($notices, $offset, $limit));
|
|
+ return $wrapper;
|
|
+ }
|
|
hunk ./classes/Notice.php 408
|
|
- # If the cache was invalidated because of new data being
|
|
- # added, we can try and just get the new stuff. We keep an additional
|
|
- # copy of the data at the key + ';last'
|
|
+ # If the cache was invalidated because of new data being
|
|
+ # added, we can try and just get the new stuff. We keep an additional
|
|
+ # copy of the data at the key + ';last'
|
|
hunk ./classes/Notice.php 412
|
|
- # No cache hit. Try to get the *last* cached version
|
|
+ # No cache hit. Try to get the *last* cached version
|
|
hunk ./classes/Notice.php 414
|
|
- $last_notices = $cache->get(common_cache_key($cachekey) . ';last');
|
|
+ $last_notices = $cache->get(common_cache_key($cachekey) . ';last');
|
|
hunk ./classes/Notice.php 416
|
|
- if ($last_notices) {
|
|
+ if ($last_notices) {
|
|
hunk ./classes/Notice.php 418
|
|
- # Reverse-chron order, so last ID is last.
|
|
+ # Reverse-chron order, so last ID is last.
|
|
hunk ./classes/Notice.php 420
|
|
- $last_id = $last_notices[0]->id;
|
|
+ $last_id = $last_notices[0]->id;
|
|
hunk ./classes/Notice.php 422
|
|
- # XXX: this assumes monotonically increasing IDs; a fair
|
|
- # bet with our DB.
|
|
+ # XXX: this assumes monotonically increasing IDs; a fair
|
|
+ # bet with our DB.
|
|
hunk ./classes/Notice.php 425
|
|
- $new_notice = Notice::getStreamDirect($qry, 0, NOTICE_CACHE_WINDOW,
|
|
- $last_id, NULL, $order, NULL);
|
|
+ $new_notice = Notice::getStreamDirect($qry, 0, NOTICE_CACHE_WINDOW,
|
|
+ $last_id, NULL, $order, NULL);
|
|
hunk ./classes/Notice.php 428
|
|
- if ($new_notice) {
|
|
- $new_notices = array();
|
|
- while ($new_notice->fetch()) {
|
|
- $new_notices[] = clone($new_notice);
|
|
- }
|
|
- $new_notice->free();
|
|
- $notices = array_slice(array_merge($new_notices, $last_notices),
|
|
- 0, NOTICE_CACHE_WINDOW);
|
|
+ if ($new_notice) {
|
|
+ $new_notices = array();
|
|
+ while ($new_notice->fetch()) {
|
|
+ $new_notices[] = clone($new_notice);
|
|
+ }
|
|
+ $new_notice->free();
|
|
+ $notices = array_slice(array_merge($new_notices, $last_notices),
|
|
+ 0, NOTICE_CACHE_WINDOW);
|
|
hunk ./classes/Notice.php 437
|
|
- # Store the array in the cache for next time
|
|
+ # Store the array in the cache for next time
|
|
hunk ./classes/Notice.php 439
|
|
- $result = $cache->set(common_cache_key($cachekey), $notices);
|
|
- $result = $cache->set(common_cache_key($cachekey) . ';last', $notices);
|
|
+ $result = $cache->set(common_cache_key($cachekey), $notices);
|
|
+ $result = $cache->set(common_cache_key($cachekey) . ';last', $notices);
|
|
hunk ./classes/Notice.php 442
|
|
- # return a wrapper of the array for use now
|
|
+ # return a wrapper of the array for use now
|
|
hunk ./classes/Notice.php 444
|
|
- return new NoticeWrapper(array_slice($notices, $offset, $limit));
|
|
- }
|
|
- }
|
|
+ return new NoticeWrapper(array_slice($notices, $offset, $limit));
|
|
+ }
|
|
+ }
|
|
hunk ./classes/Notice.php 448
|
|
- # Otherwise, get the full cache window out of the DB
|
|
+ # Otherwise, get the full cache window out of the DB
|
|
hunk ./classes/Notice.php 450
|
|
- $notice = Notice::getStreamDirect($qry, 0, NOTICE_CACHE_WINDOW, NULL, NULL, $order, NULL);
|
|
+ $notice = Notice::getStreamDirect($qry, 0, NOTICE_CACHE_WINDOW, NULL, NULL, $order, NULL);
|
|
hunk ./classes/Notice.php 452
|
|
- # If there are no hits, just return the value
|
|
+ # If there are no hits, just return the value
|
|
hunk ./classes/Notice.php 454
|
|
- if (!$notice) {
|
|
- return $notice;
|
|
- }
|
|
+ if (!$notice) {
|
|
+ return $notice;
|
|
+ }
|
|
hunk ./classes/Notice.php 458
|
|
- # Pack results into an array
|
|
+ # Pack results into an array
|
|
hunk ./classes/Notice.php 460
|
|
- $notices = array();
|
|
+ $notices = array();
|
|
hunk ./classes/Notice.php 462
|
|
- while ($notice->fetch()) {
|
|
- $notices[] = clone($notice);
|
|
- }
|
|
+ while ($notice->fetch()) {
|
|
+ $notices[] = clone($notice);
|
|
+ }
|
|
hunk ./classes/Notice.php 466
|
|
- $notice->free();
|
|
+ $notice->free();
|
|
hunk ./classes/Notice.php 468
|
|
- # Store the array in the cache for next time
|
|
+ # Store the array in the cache for next time
|
|
hunk ./classes/Notice.php 470
|
|
- $result = $cache->set(common_cache_key($cachekey), $notices);
|
|
- $result = $cache->set(common_cache_key($cachekey) . ';last', $notices);
|
|
+ $result = $cache->set(common_cache_key($cachekey), $notices);
|
|
+ $result = $cache->set(common_cache_key($cachekey) . ';last', $notices);
|
|
hunk ./classes/Notice.php 473
|
|
- # return a wrapper of the array for use now
|
|
+ # return a wrapper of the array for use now
|
|
hunk ./classes/Notice.php 475
|
|
- $wrapper = new NoticeWrapper(array_slice($notices, $offset, $limit));
|
|
+ $wrapper = new NoticeWrapper(array_slice($notices, $offset, $limit));
|
|
hunk ./classes/Notice.php 477
|
|
- return $wrapper;
|
|
- }
|
|
+ return $wrapper;
|
|
+ }
|
|
hunk ./classes/Notice.php 480
|
|
- function publicStream($offset=0, $limit=20, $since_id=0, $before_id=0, $since=NULL) {
|
|
+ function publicStream($offset=0, $limit=20, $since_id=0, $before_id=0, $since=NULL) {
|
|
hunk ./classes/Notice.php 482
|
|
- $parts = array();
|
|
+ $parts = array();
|
|
hunk ./classes/Notice.php 484
|
|
- $qry = 'SELECT * FROM notice ';
|
|
+ $qry = 'SELECT * FROM notice ';
|
|
hunk ./classes/Notice.php 486
|
|
- if (common_config('public', 'localonly')) {
|
|
- $parts[] = 'is_local = 1';
|
|
- } else {
|
|
- # -1 == blacklisted
|
|
- $parts[] = 'is_local != -1';
|
|
- }
|
|
+ if (common_config('public', 'localonly')) {
|
|
+ $parts[] = 'is_local = 1';
|
|
+ } else {
|
|
+ # -1 == blacklisted
|
|
+ $parts[] = 'is_local != -1';
|
|
+ }
|
|
hunk ./classes/Notice.php 493
|
|
- if ($parts) {
|
|
- $qry .= ' WHERE ' . implode(' AND ', $parts);
|
|
- }
|
|
+ if ($parts) {
|
|
+ $qry .= ' WHERE ' . implode(' AND ', $parts);
|
|
+ }
|
|
hunk ./classes/Notice.php 497
|
|
- return Notice::getStream($qry,
|
|
- 'public',
|
|
- $offset, $limit, $since_id, $before_id, NULL, $since);
|
|
- }
|
|
+ return Notice::getStream($qry,
|
|
+ 'public',
|
|
+ $offset, $limit, $since_id, $before_id, NULL, $since);
|
|
+ }
|
|
hunk ./classes/Notice.php 502
|
|
- function addToInboxes() {
|
|
- $enabled = common_config('inboxes', 'enabled');
|
|
+ function addToInboxes() {
|
|
+ $enabled = common_config('inboxes', 'enabled');
|
|
hunk ./classes/Notice.php 505
|
|
- if ($enabled === true || $enabled === 'transitional') {
|
|
- $inbox = new Notice_inbox();
|
|
- $qry = 'INSERT INTO notice_inbox (user_id, notice_id, created) ' .
|
|
- 'SELECT user.id, ' . $this->id . ', "' . $this->created . '" ' .
|
|
- 'FROM user JOIN subscription ON user.id = subscription.subscriber ' .
|
|
- 'WHERE subscription.subscribed = ' . $this->profile_id . ' ' .
|
|
- 'AND NOT EXISTS (SELECT user_id, notice_id ' .
|
|
- 'FROM notice_inbox ' .
|
|
- 'WHERE user_id = user.id ' .
|
|
- 'AND notice_id = ' . $this->id . ' )';
|
|
- if ($enabled === 'transitional') {
|
|
- $qry .= ' AND user.inboxed = 1';
|
|
- }
|
|
- $inbox->query($qry);
|
|
- }
|
|
- return;
|
|
- }
|
|
+ if ($enabled === true || $enabled === 'transitional') {
|
|
+ $inbox = new Notice_inbox();
|
|
+ $qry = 'INSERT INTO notice_inbox (user_id, notice_id, created) ' .
|
|
+ 'SELECT user.id, ' . $this->id . ', "' . $this->created . '" ' .
|
|
+ 'FROM user JOIN subscription ON user.id = subscription.subscriber ' .
|
|
+ 'WHERE subscription.subscribed = ' . $this->profile_id . ' ' .
|
|
+ 'AND NOT EXISTS (SELECT user_id, notice_id ' .
|
|
+ 'FROM notice_inbox ' .
|
|
+ 'WHERE user_id = user.id ' .
|
|
+ 'AND notice_id = ' . $this->id . ' )';
|
|
+ if ($enabled === 'transitional') {
|
|
+ $qry .= ' AND user.inboxed = 1';
|
|
+ }
|
|
+ $inbox->query($qry);
|
|
+ }
|
|
+ return;
|
|
+ }
|
|
hunk ./classes/Notice.php 523
|
|
- # Delete from inboxes if we're deleted.
|
|
+ # Delete from inboxes if we're deleted.
|
|
hunk ./classes/Notice.php 525
|
|
- function blowInboxes() {
|
|
+ function blowInboxes() {
|
|
hunk ./classes/Notice.php 527
|
|
- $enabled = common_config('inboxes', 'enabled');
|
|
+ $enabled = common_config('inboxes', 'enabled');
|
|
hunk ./classes/Notice.php 529
|
|
- if ($enabled === true || $enabled === 'transitional') {
|
|
- $inbox = new Notice_inbox();
|
|
- $inbox->notice_id = $this->id;
|
|
- $inbox->delete();
|
|
- }
|
|
+ if ($enabled === true || $enabled === 'transitional') {
|
|
+ $inbox = new Notice_inbox();
|
|
+ $inbox->notice_id = $this->id;
|
|
+ $inbox->delete();
|
|
+ }
|
|
hunk ./classes/Notice.php 535
|
|
- return;
|
|
- }
|
|
+ return;
|
|
+ }
|
|
hunk ./classes/NoticeWrapper.php 38
|
|
- var $notices = NULL;
|
|
- var $i = -1;
|
|
-
|
|
- function __construct($arr) {
|
|
- $this->notices = $arr;
|
|
- }
|
|
-
|
|
- function fetch() {
|
|
- static $fields = array('id', 'profile_id', 'uri', 'content', 'rendered',
|
|
- 'url', 'created', 'modified', 'reply_to', 'is_local', 'source');
|
|
- $this->i++;
|
|
- if ($this->i >= count($this->notices)) {
|
|
- return false;
|
|
- } else {
|
|
- $n = $this->notices[$this->i];
|
|
- foreach ($fields as $f) {
|
|
- $this->$f = $n->$f;
|
|
- }
|
|
- return true;
|
|
- }
|
|
- }
|
|
+ var $notices = NULL;
|
|
+ var $i = -1;
|
|
+
|
|
+ function __construct($arr) {
|
|
+ $this->notices = $arr;
|
|
+ }
|
|
+
|
|
+ function fetch() {
|
|
+ static $fields = array('id', 'profile_id', 'uri', 'content', 'rendered',
|
|
+ 'url', 'created', 'modified', 'reply_to', 'is_local', 'source');
|
|
+ $this->i++;
|
|
+ if ($this->i >= count($this->notices)) {
|
|
+ return false;
|
|
+ } else {
|
|
+ $n = $this->notices[$this->i];
|
|
+ foreach ($fields as $f) {
|
|
+ $this->$f = $n->$f;
|
|
+ }
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
hunk ./classes/Notice_tag.php 37
|
|
-
|
|
- static function getStream($tag, $offset=0, $limit=20) {
|
|
- $qry =
|
|
- 'SELECT notice.* ' .
|
|
- 'FROM notice JOIN notice_tag ON notice.id = notice_tag.notice_id ' .
|
|
- 'WHERE notice_tag.tag = "%s" ';
|
|
+
|
|
+ static function getStream($tag, $offset=0, $limit=20) {
|
|
+ $qry =
|
|
+ 'SELECT notice.* ' .
|
|
+ 'FROM notice JOIN notice_tag ON notice.id = notice_tag.notice_id ' .
|
|
+ 'WHERE notice_tag.tag = "%s" ';
|
|
hunk ./classes/Notice_tag.php 44
|
|
- return Notice::getStream(sprintf($qry, $tag),
|
|
- 'notice_tag:notice_stream:' . common_keyize($tag),
|
|
- $offset, $limit);
|
|
- }
|
|
-
|
|
- function blowCache() {
|
|
- $cache = common_memcache();
|
|
- if ($cache) {
|
|
- $cache->delete(common_cache_key('notice_tag:notice_stream:' . $this->tag));
|
|
- }
|
|
- }
|
|
+ return Notice::getStream(sprintf($qry, $tag),
|
|
+ 'notice_tag:notice_stream:' . common_keyize($tag),
|
|
+ $offset, $limit);
|
|
+ }
|
|
+
|
|
+ function blowCache() {
|
|
+ $cache = common_memcache();
|
|
+ if ($cache) {
|
|
+ $cache->delete(common_cache_key('notice_tag:notice_stream:' . $this->tag));
|
|
+ }
|
|
+ }
|
|
hunk ./classes/Profile.php 49
|
|
- function getAvatar($width, $height=NULL) {
|
|
- if (is_null($height)) {
|
|
- $height = $width;
|
|
- }
|
|
- return Avatar::pkeyGet(array('profile_id' => $this->id,
|
|
- 'width' => $width,
|
|
- 'height' => $height));
|
|
- }
|
|
+ function getAvatar($width, $height=NULL) {
|
|
+ if (is_null($height)) {
|
|
+ $height = $width;
|
|
+ }
|
|
+ return Avatar::pkeyGet(array('profile_id' => $this->id,
|
|
+ 'width' => $width,
|
|
+ 'height' => $height));
|
|
+ }
|
|
hunk ./classes/Profile.php 58
|
|
- function getOriginalAvatar() {
|
|
- $avatar = DB_DataObject::factory('avatar');
|
|
- $avatar->profile_id = $this->id;
|
|
- $avatar->original = true;
|
|
- if ($avatar->find(true)) {
|
|
- return $avatar;
|
|
- } else {
|
|
- return NULL;
|
|
- }
|
|
- }
|
|
+ function getOriginalAvatar() {
|
|
+ $avatar = DB_DataObject::factory('avatar');
|
|
+ $avatar->profile_id = $this->id;
|
|
+ $avatar->original = true;
|
|
+ if ($avatar->find(true)) {
|
|
+ return $avatar;
|
|
+ } else {
|
|
+ return NULL;
|
|
+ }
|
|
+ }
|
|
hunk ./classes/Profile.php 69
|
|
- function setOriginal($source) {
|
|
+ function setOriginal($source) {
|
|
hunk ./classes/Profile.php 71
|
|
- $info = @getimagesize($source);
|
|
+ $info = @getimagesize($source);
|
|
hunk ./classes/Profile.php 73
|
|
- if (!$info) {
|
|
- return NULL;
|
|
- }
|
|
+ if (!$info) {
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./classes/Profile.php 77
|
|
- $filename = common_avatar_filename($this->id,
|
|
- image_type_to_extension($info[2]),
|
|
- NULL, common_timestamp());
|
|
- $filepath = common_avatar_path($filename);
|
|
+ $filename = common_avatar_filename($this->id,
|
|
+ image_type_to_extension($info[2]),
|
|
+ NULL, common_timestamp());
|
|
+ $filepath = common_avatar_path($filename);
|
|
hunk ./classes/Profile.php 82
|
|
- copy($source, $filepath);
|
|
+ copy($source, $filepath);
|
|
hunk ./classes/Profile.php 84
|
|
- $avatar = new Avatar();
|
|
+ $avatar = new Avatar();
|
|
hunk ./classes/Profile.php 86
|
|
- $avatar->profile_id = $this->id;
|
|
- $avatar->width = $info[0];
|
|
- $avatar->height = $info[1];
|
|
- $avatar->mediatype = image_type_to_mime_type($info[2]);
|
|
- $avatar->filename = $filename;
|
|
- $avatar->original = true;
|
|
- $avatar->url = common_avatar_url($filename);
|
|
- $avatar->created = DB_DataObject_Cast::dateTime(); # current time
|
|
+ $avatar->profile_id = $this->id;
|
|
+ $avatar->width = $info[0];
|
|
+ $avatar->height = $info[1];
|
|
+ $avatar->mediatype = image_type_to_mime_type($info[2]);
|
|
+ $avatar->filename = $filename;
|
|
+ $avatar->original = true;
|
|
+ $avatar->url = common_avatar_url($filename);
|
|
+ $avatar->created = DB_DataObject_Cast::dateTime(); # current time
|
|
hunk ./classes/Profile.php 95
|
|
- # XXX: start a transaction here
|
|
+ # XXX: start a transaction here
|
|
hunk ./classes/Profile.php 97
|
|
- if (!$this->delete_avatars()) {
|
|
- @unlink($filepath);
|
|
- return NULL;
|
|
- }
|
|
+ if (!$this->delete_avatars()) {
|
|
+ @unlink($filepath);
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./classes/Profile.php 102
|
|
- if (!$avatar->insert()) {
|
|
- @unlink($filepath);
|
|
- return NULL;
|
|
- }
|
|
+ if (!$avatar->insert()) {
|
|
+ @unlink($filepath);
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./classes/Profile.php 107
|
|
- foreach (array(AVATAR_PROFILE_SIZE, AVATAR_STREAM_SIZE, AVATAR_MINI_SIZE) as $size) {
|
|
- # We don't do a scaled one if original is our scaled size
|
|
- if (!($avatar->width == $size && $avatar->height == $size)) {
|
|
- $s = $avatar->scale($size);
|
|
- if (!$s) {
|
|
- return NULL;
|
|
- }
|
|
- }
|
|
- }
|
|
+ foreach (array(AVATAR_PROFILE_SIZE, AVATAR_STREAM_SIZE, AVATAR_MINI_SIZE) as $size) {
|
|
+ # We don't do a scaled one if original is our scaled size
|
|
+ if (!($avatar->width == $size && $avatar->height == $size)) {
|
|
+ $s = $avatar->scale($size);
|
|
+ if (!$s) {
|
|
+ return NULL;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
hunk ./classes/Profile.php 117
|
|
- return $avatar;
|
|
- }
|
|
+ return $avatar;
|
|
+ }
|
|
hunk ./classes/Profile.php 120
|
|
- function delete_avatars() {
|
|
- $avatar = new Avatar();
|
|
- $avatar->profile_id = $this->id;
|
|
- $avatar->find();
|
|
- while ($avatar->fetch()) {
|
|
- $avatar->delete();
|
|
- }
|
|
- return true;
|
|
- }
|
|
+ function delete_avatars() {
|
|
+ $avatar = new Avatar();
|
|
+ $avatar->profile_id = $this->id;
|
|
+ $avatar->find();
|
|
+ while ($avatar->fetch()) {
|
|
+ $avatar->delete();
|
|
+ }
|
|
+ return true;
|
|
+ }
|
|
hunk ./classes/Profile.php 130
|
|
- function getBestName() {
|
|
- return ($this->fullname) ? $this->fullname : $this->nickname;
|
|
- }
|
|
+ function getBestName() {
|
|
+ return ($this->fullname) ? $this->fullname : $this->nickname;
|
|
+ }
|
|
hunk ./classes/Profile.php 135
|
|
- function getCurrentNotice($dt=NULL) {
|
|
- $notice = new Notice();
|
|
- $notice->profile_id = $this->id;
|
|
- if ($dt) {
|
|
- $notice->whereAdd('created < "' . $dt . '"');
|
|
- }
|
|
- $notice->orderBy('created DESC, notice.id DESC');
|
|
- $notice->limit(1);
|
|
- if ($notice->find(true)) {
|
|
- return $notice;
|
|
- }
|
|
- return NULL;
|
|
- }
|
|
+ function getCurrentNotice($dt=NULL) {
|
|
+ $notice = new Notice();
|
|
+ $notice->profile_id = $this->id;
|
|
+ if ($dt) {
|
|
+ $notice->whereAdd('created < "' . $dt . '"');
|
|
+ }
|
|
+ $notice->orderBy('created DESC, notice.id DESC');
|
|
+ $notice->limit(1);
|
|
+ if ($notice->find(true)) {
|
|
+ return $notice;
|
|
+ }
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./classes/Profile.php 149
|
|
- function getNotices($offset=0, $limit=NOTICES_PER_PAGE, $since_id=0, $before_id=0) {
|
|
- $qry =
|
|
- 'SELECT * ' .
|
|
- 'FROM notice ' .
|
|
- 'WHERE profile_id = %d ';
|
|
+ function getNotices($offset=0, $limit=NOTICES_PER_PAGE, $since_id=0, $before_id=0) {
|
|
+ $qry =
|
|
+ 'SELECT * ' .
|
|
+ 'FROM notice ' .
|
|
+ 'WHERE profile_id = %d ';
|
|
hunk ./classes/Profile.php 155
|
|
- return Notice::getStream(sprintf($qry, $this->id),
|
|
- 'profile:notices:'.$this->id,
|
|
- $offset, $limit, $since_id, $before_id);
|
|
- }
|
|
+ return Notice::getStream(sprintf($qry, $this->id),
|
|
+ 'profile:notices:'.$this->id,
|
|
+ $offset, $limit, $since_id, $before_id);
|
|
+ }
|
|
hunk ./classes/Profile_tag.php 24
|
|
- static function getTags($tagger, $tagged) {
|
|
-
|
|
- $tags = array();
|
|
+ static function getTags($tagger, $tagged) {
|
|
+
|
|
+ $tags = array();
|
|
hunk ./classes/Profile_tag.php 28
|
|
- # XXX: store this in memcached
|
|
-
|
|
- $profile_tag = new Profile_tag();
|
|
- $profile_tag->tagger = $tagger;
|
|
- $profile_tag->tagged = $tagged;
|
|
-
|
|
- $profile_tag->find();
|
|
-
|
|
- while ($profile_tag->fetch()) {
|
|
- $tags[] = $profile_tag->tag;
|
|
- }
|
|
-
|
|
- $profile_tag->free();
|
|
-
|
|
- return $tags;
|
|
- }
|
|
-
|
|
- static function setTags($tagger, $tagged, $newtags) {
|
|
-
|
|
- $oldtags = Profile_tag::getTags($tagger, $tagged);
|
|
-
|
|
- # Delete stuff that's old that not in new
|
|
-
|
|
- $to_delete = array_diff($oldtags, $newtags);
|
|
-
|
|
- # Insert stuff that's in new and not in old
|
|
-
|
|
- $to_insert = array_diff($newtags, $oldtags);
|
|
-
|
|
- $profile_tag = new Profile_tag();
|
|
-
|
|
- $profile_tag->tagger = $tagger;
|
|
- $profile_tag->tagged = $tagged;
|
|
-
|
|
- $profile_tag->query('BEGIN');
|
|
-
|
|
- foreach ($to_delete as $deltag) {
|
|
- $profile_tag->tag = $deltag;
|
|
- $result = $profile_tag->delete();
|
|
- if (!$result) {
|
|
- common_log_db_error($profile_tag, 'DELETE', __FILE__);
|
|
- return false;
|
|
- }
|
|
- }
|
|
-
|
|
- foreach ($to_insert as $instag) {
|
|
- $profile_tag->tag = $instag;
|
|
- $result = $profile_tag->insert();
|
|
- if (!$result) {
|
|
- common_log_db_error($profile_tag, 'INSERT', __FILE__);
|
|
- return false;
|
|
- }
|
|
- }
|
|
-
|
|
- $profile_tag->query('COMMIT');
|
|
-
|
|
- return true;
|
|
- }
|
|
-
|
|
- # Return profiles with a given tag
|
|
- static function getTagged($tagger, $tag) {
|
|
- $profile = new Profile();
|
|
- $profile->query('SELECT profile.* ' .
|
|
- 'FROM profile JOIN profile_tag ' .
|
|
- 'ON profile.id = profile_tag.tagged ' .
|
|
- 'WHERE profile_tag.tagger = ' . $tagger . ' ' .
|
|
- 'AND profile_tag.tag = "' . $tag . '" ');
|
|
- $tagged = array();
|
|
- while ($profile->fetch()) {
|
|
- $tagged[] = clone($profile);
|
|
- }
|
|
- return $tagged;
|
|
- }
|
|
+ # XXX: store this in memcached
|
|
+
|
|
+ $profile_tag = new Profile_tag();
|
|
+ $profile_tag->tagger = $tagger;
|
|
+ $profile_tag->tagged = $tagged;
|
|
+
|
|
+ $profile_tag->find();
|
|
+
|
|
+ while ($profile_tag->fetch()) {
|
|
+ $tags[] = $profile_tag->tag;
|
|
+ }
|
|
+
|
|
+ $profile_tag->free();
|
|
+
|
|
+ return $tags;
|
|
+ }
|
|
+
|
|
+ static function setTags($tagger, $tagged, $newtags) {
|
|
+
|
|
+ $oldtags = Profile_tag::getTags($tagger, $tagged);
|
|
+
|
|
+ # Delete stuff that's old that not in new
|
|
+
|
|
+ $to_delete = array_diff($oldtags, $newtags);
|
|
+
|
|
+ # Insert stuff that's in new and not in old
|
|
+
|
|
+ $to_insert = array_diff($newtags, $oldtags);
|
|
+
|
|
+ $profile_tag = new Profile_tag();
|
|
+
|
|
+ $profile_tag->tagger = $tagger;
|
|
+ $profile_tag->tagged = $tagged;
|
|
+
|
|
+ $profile_tag->query('BEGIN');
|
|
+
|
|
+ foreach ($to_delete as $deltag) {
|
|
+ $profile_tag->tag = $deltag;
|
|
+ $result = $profile_tag->delete();
|
|
+ if (!$result) {
|
|
+ common_log_db_error($profile_tag, 'DELETE', __FILE__);
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ foreach ($to_insert as $instag) {
|
|
+ $profile_tag->tag = $instag;
|
|
+ $result = $profile_tag->insert();
|
|
+ if (!$result) {
|
|
+ common_log_db_error($profile_tag, 'INSERT', __FILE__);
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ $profile_tag->query('COMMIT');
|
|
+
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ # Return profiles with a given tag
|
|
+ static function getTagged($tagger, $tag) {
|
|
+ $profile = new Profile();
|
|
+ $profile->query('SELECT profile.* ' .
|
|
+ 'FROM profile JOIN profile_tag ' .
|
|
+ 'ON profile.id = profile_tag.tagged ' .
|
|
+ 'WHERE profile_tag.tagger = ' . $tagger . ' ' .
|
|
+ 'AND profile_tag.tag = "' . $tag . '" ');
|
|
+ $tagged = array();
|
|
+ while ($profile->fetch()) {
|
|
+ $tagged[] = clone($profile);
|
|
+ }
|
|
+ return $tagged;
|
|
+ }
|
|
hunk ./classes/Queue_item.php 25
|
|
-
|
|
- static function top($transport) {
|
|
+
|
|
+ static function top($transport) {
|
|
hunk ./classes/Queue_item.php 28
|
|
- $qi = new Queue_item();
|
|
- $qi->transport = $transport;
|
|
- $qi->orderBy('created');
|
|
- $qi->whereAdd('claimed is NULL');
|
|
+ $qi = new Queue_item();
|
|
+ $qi->transport = $transport;
|
|
+ $qi->orderBy('created');
|
|
+ $qi->whereAdd('claimed is NULL');
|
|
hunk ./classes/Queue_item.php 33
|
|
- $qi->limit(1);
|
|
+ $qi->limit(1);
|
|
hunk ./classes/Queue_item.php 35
|
|
- $cnt = $qi->find(TRUE);
|
|
+ $cnt = $qi->find(TRUE);
|
|
hunk ./classes/Queue_item.php 37
|
|
- if ($cnt) {
|
|
- # XXX: potential race condition
|
|
- # can we force it to only update if claimed is still NULL
|
|
- # (or old)?
|
|
- common_log(LOG_INFO, 'claiming queue item = ' . $qi->notice_id . ' for transport ' . $transport);
|
|
- $orig = clone($qi);
|
|
- $qi->claimed = common_sql_now();
|
|
- $result = $qi->update($orig);
|
|
- if ($result) {
|
|
- common_log(LOG_INFO, 'claim succeeded.');
|
|
- return $qi;
|
|
- } else {
|
|
- common_log(LOG_INFO, 'claim failed.');
|
|
- }
|
|
- }
|
|
- $qi = NULL;
|
|
- return NULL;
|
|
- }
|
|
+ if ($cnt) {
|
|
+ # XXX: potential race condition
|
|
+ # can we force it to only update if claimed is still NULL
|
|
+ # (or old)?
|
|
+ common_log(LOG_INFO, 'claiming queue item = ' . $qi->notice_id . ' for transport ' . $transport);
|
|
+ $orig = clone($qi);
|
|
+ $qi->claimed = common_sql_now();
|
|
+ $result = $qi->update($orig);
|
|
+ if ($result) {
|
|
+ common_log(LOG_INFO, 'claim succeeded.');
|
|
+ return $qi;
|
|
+ } else {
|
|
+ common_log(LOG_INFO, 'claim failed.');
|
|
+ }
|
|
+ }
|
|
+ $qi = NULL;
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./classes/Sms_carrier.php 24
|
|
-
|
|
- function toEmailAddress($sms) {
|
|
- return sprintf($this->email_pattern, $sms);
|
|
- }
|
|
+
|
|
+ function toEmailAddress($sms) {
|
|
+ return sprintf($this->email_pattern, $sms);
|
|
+ }
|
|
hunk ./classes/Subscription.php 47
|
|
-
|
|
- function &pkeyGet($kv) {
|
|
- return Memcached_DataObject::pkeyGet('Subscription', $kv);
|
|
- }
|
|
+
|
|
+ function &pkeyGet($kv) {
|
|
+ return Memcached_DataObject::pkeyGet('Subscription', $kv);
|
|
+ }
|
|
hunk ./classes/User.php 70
|
|
- function getProfile() {
|
|
- return Profile::staticGet('id', $this->id);
|
|
- }
|
|
+ function getProfile() {
|
|
+ return Profile::staticGet('id', $this->id);
|
|
+ }
|
|
hunk ./classes/User.php 74
|
|
- function isSubscribed($other) {
|
|
- assert(!is_null($other));
|
|
- # XXX: cache results of this query
|
|
- $sub = Subscription::pkeyGet(array('subscriber' => $this->id,
|
|
- 'subscribed' => $other->id));
|
|
- return (is_null($sub)) ? false : true;
|
|
- }
|
|
+ function isSubscribed($other) {
|
|
+ assert(!is_null($other));
|
|
+ # XXX: cache results of this query
|
|
+ $sub = Subscription::pkeyGet(array('subscriber' => $this->id,
|
|
+ 'subscribed' => $other->id));
|
|
+ return (is_null($sub)) ? false : true;
|
|
+ }
|
|
hunk ./classes/User.php 82
|
|
- # 'update' won't write key columns, so we have to do it ourselves.
|
|
+ # 'update' won't write key columns, so we have to do it ourselves.
|
|
hunk ./classes/User.php 84
|
|
- function updateKeys(&$orig) {
|
|
- $parts = array();
|
|
- foreach (array('nickname', 'email', 'jabber', 'incomingemail', 'sms', 'carrier', 'smsemail', 'language', 'timezone') as $k) {
|
|
- if (strcmp($this->$k, $orig->$k) != 0) {
|
|
- $parts[] = $k . ' = ' . $this->_quote($this->$k);
|
|
- }
|
|
- }
|
|
- if (count($parts) == 0) {
|
|
- # No changes
|
|
- return true;
|
|
- }
|
|
- $toupdate = implode(', ', $parts);
|
|
+ function updateKeys(&$orig) {
|
|
+ $parts = array();
|
|
+ foreach (array('nickname', 'email', 'jabber', 'incomingemail', 'sms', 'carrier', 'smsemail', 'language', 'timezone') as $k) {
|
|
+ if (strcmp($this->$k, $orig->$k) != 0) {
|
|
+ $parts[] = $k . ' = ' . $this->_quote($this->$k);
|
|
+ }
|
|
+ }
|
|
+ if (count($parts) == 0) {
|
|
+ # No changes
|
|
+ return true;
|
|
+ }
|
|
+ $toupdate = implode(', ', $parts);
|
|
hunk ./classes/User.php 97
|
|
- $table = $this->tableName();
|
|
- if(common_config('db','quote_identifiers')) {
|
|
- $table = '"' . $table . '"';
|
|
- }
|
|
- $qry = 'UPDATE ' . $table . ' SET ' . $toupdate .
|
|
- ' WHERE id = ' . $this->id;
|
|
- $orig->decache();
|
|
- $result = $this->query($qry);
|
|
- if ($result) {
|
|
- $this->encache();
|
|
- }
|
|
- return $result;
|
|
- }
|
|
+ $table = $this->tableName();
|
|
+ if(common_config('db','quote_identifiers')) {
|
|
+ $table = '"' . $table . '"';
|
|
+ }
|
|
+ $qry = 'UPDATE ' . $table . ' SET ' . $toupdate .
|
|
+ ' WHERE id = ' . $this->id;
|
|
+ $orig->decache();
|
|
+ $result = $this->query($qry);
|
|
+ if ($result) {
|
|
+ $this->encache();
|
|
+ }
|
|
+ return $result;
|
|
+ }
|
|
hunk ./classes/User.php 111
|
|
- function allowed_nickname($nickname) {
|
|
- # XXX: should already be validated for size, content, etc.
|
|
- static $blacklist = array('rss', 'xrds', 'doc', 'main',
|
|
- 'settings', 'notice', 'user',
|
|
- 'search', 'avatar', 'tag', 'tags',
|
|
- 'api', 'message');
|
|
- $merged = array_merge($blacklist, common_config('nickname', 'blacklist'));
|
|
- return !in_array($nickname, $merged);
|
|
- }
|
|
+ function allowed_nickname($nickname) {
|
|
+ # XXX: should already be validated for size, content, etc.
|
|
+ static $blacklist = array('rss', 'xrds', 'doc', 'main',
|
|
+ 'settings', 'notice', 'user',
|
|
+ 'search', 'avatar', 'tag', 'tags',
|
|
+ 'api', 'message');
|
|
+ $merged = array_merge($blacklist, common_config('nickname', 'blacklist'));
|
|
+ return !in_array($nickname, $merged);
|
|
+ }
|
|
hunk ./classes/User.php 121
|
|
- function getCurrentNotice($dt=NULL) {
|
|
- $profile = $this->getProfile();
|
|
- if (!$profile) {
|
|
- return NULL;
|
|
- }
|
|
- return $profile->getCurrentNotice($dt);
|
|
- }
|
|
+ function getCurrentNotice($dt=NULL) {
|
|
+ $profile = $this->getProfile();
|
|
+ if (!$profile) {
|
|
+ return NULL;
|
|
+ }
|
|
+ return $profile->getCurrentNotice($dt);
|
|
+ }
|
|
hunk ./classes/User.php 129
|
|
- function getCarrier() {
|
|
- return Sms_carrier::staticGet('id', $this->carrier);
|
|
- }
|
|
+ function getCarrier() {
|
|
+ return Sms_carrier::staticGet('id', $this->carrier);
|
|
+ }
|
|
hunk ./classes/User.php 133
|
|
- function subscribeTo($other) {
|
|
- $sub = new Subscription();
|
|
- $sub->subscriber = $this->id;
|
|
- $sub->subscribed = $other->id;
|
|
+ function subscribeTo($other) {
|
|
+ $sub = new Subscription();
|
|
+ $sub->subscriber = $this->id;
|
|
+ $sub->subscribed = $other->id;
|
|
hunk ./classes/User.php 138
|
|
- $sub->created = common_sql_now(); # current time
|
|
+ $sub->created = common_sql_now(); # current time
|
|
hunk ./classes/User.php 140
|
|
- if (!$sub->insert()) {
|
|
- return false;
|
|
- }
|
|
+ if (!$sub->insert()) {
|
|
+ return false;
|
|
+ }
|
|
hunk ./classes/User.php 144
|
|
- return true;
|
|
- }
|
|
+ return true;
|
|
+ }
|
|
hunk ./classes/User.php 161
|
|
- static function register($fields) {
|
|
+ static function register($fields) {
|
|
hunk ./classes/User.php 163
|
|
- # MAGICALLY put fields into current scope
|
|
+ # MAGICALLY put fields into current scope
|
|
hunk ./classes/User.php 165
|
|
- extract($fields);
|
|
+ extract($fields);
|
|
hunk ./classes/User.php 167
|
|
- $profile = new Profile();
|
|
+ $profile = new Profile();
|
|
hunk ./classes/User.php 169
|
|
- $profile->query('BEGIN');
|
|
+ $profile->query('BEGIN');
|
|
hunk ./classes/User.php 171
|
|
- $profile->nickname = $nickname;
|
|
- $profile->profileurl = common_profile_url($nickname);
|
|
+ $profile->nickname = $nickname;
|
|
+ $profile->profileurl = common_profile_url($nickname);
|
|
hunk ./classes/User.php 174
|
|
- if ($fullname) {
|
|
- $profile->fullname = $fullname;
|
|
- }
|
|
- if ($homepage) {
|
|
- $profile->homepage = $homepage;
|
|
- }
|
|
- if ($bio) {
|
|
- $profile->bio = $bio;
|
|
- }
|
|
- if ($location) {
|
|
- $profile->location = $location;
|
|
- }
|
|
+ if ($fullname) {
|
|
+ $profile->fullname = $fullname;
|
|
+ }
|
|
+ if ($homepage) {
|
|
+ $profile->homepage = $homepage;
|
|
+ }
|
|
+ if ($bio) {
|
|
+ $profile->bio = $bio;
|
|
+ }
|
|
+ if ($location) {
|
|
+ $profile->location = $location;
|
|
+ }
|
|
hunk ./classes/User.php 187
|
|
- $profile->created = common_sql_now();
|
|
+ $profile->created = common_sql_now();
|
|
hunk ./classes/User.php 189
|
|
- $id = $profile->insert();
|
|
+ $id = $profile->insert();
|
|
hunk ./classes/User.php 191
|
|
- if (!$id) {
|
|
- common_log_db_error($profile, 'INSERT', __FILE__);
|
|
- return FALSE;
|
|
- }
|
|
+ if (!$id) {
|
|
+ common_log_db_error($profile, 'INSERT', __FILE__);
|
|
+ return FALSE;
|
|
+ }
|
|
hunk ./classes/User.php 196
|
|
- $user = new User();
|
|
+ $user = new User();
|
|
hunk ./classes/User.php 198
|
|
- $user->id = $id;
|
|
- $user->nickname = $nickname;
|
|
+ $user->id = $id;
|
|
+ $user->nickname = $nickname;
|
|
hunk ./classes/User.php 201
|
|
- if ($password) { # may not have a password for OpenID users
|
|
- $user->password = common_munge_password($password, $id);
|
|
- }
|
|
+ if ($password) { # may not have a password for OpenID users
|
|
+ $user->password = common_munge_password($password, $id);
|
|
+ }
|
|
hunk ./classes/User.php 205
|
|
- # Users who respond to invite email have proven their ownership of that address
|
|
+ # Users who respond to invite email have proven their ownership of that address
|
|
hunk ./classes/User.php 207
|
|
- if ($code) {
|
|
- $invite = Invitation::staticGet($code);
|
|
- if ($invite && $invite->address && $invite->address_type == 'email' && $invite->address == $email) {
|
|
- $user->email = $invite->address;
|
|
- }
|
|
- }
|
|
+ if ($code) {
|
|
+ $invite = Invitation::staticGet($code);
|
|
+ if ($invite && $invite->address && $invite->address_type == 'email' && $invite->address == $email) {
|
|
+ $user->email = $invite->address;
|
|
+ }
|
|
+ }
|
|
hunk ./classes/User.php 214
|
|
- $inboxes = common_config('inboxes', 'enabled');
|
|
+ $inboxes = common_config('inboxes', 'enabled');
|
|
hunk ./classes/User.php 216
|
|
- if ($inboxes === true || $inboxes == 'transitional') {
|
|
- $user->inboxed = 1;
|
|
- }
|
|
+ if ($inboxes === true || $inboxes == 'transitional') {
|
|
+ $user->inboxed = 1;
|
|
+ }
|
|
hunk ./classes/User.php 220
|
|
- $user->created = common_sql_now();
|
|
- $user->uri = common_user_uri($user);
|
|
+ $user->created = common_sql_now();
|
|
+ $user->uri = common_user_uri($user);
|
|
hunk ./classes/User.php 223
|
|
- $result = $user->insert();
|
|
+ $result = $user->insert();
|
|
hunk ./classes/User.php 225
|
|
- if (!$result) {
|
|
- common_log_db_error($user, 'INSERT', __FILE__);
|
|
- return FALSE;
|
|
- }
|
|
+ if (!$result) {
|
|
+ common_log_db_error($user, 'INSERT', __FILE__);
|
|
+ return FALSE;
|
|
+ }
|
|
hunk ./classes/User.php 230
|
|
- # Everyone is subscribed to themself
|
|
+ # Everyone is subscribed to themself
|
|
hunk ./classes/User.php 232
|
|
- $subscription = new Subscription();
|
|
- $subscription->subscriber = $user->id;
|
|
- $subscription->subscribed = $user->id;
|
|
- $subscription->created = $user->created;
|
|
+ $subscription = new Subscription();
|
|
+ $subscription->subscriber = $user->id;
|
|
+ $subscription->subscribed = $user->id;
|
|
+ $subscription->created = $user->created;
|
|
hunk ./classes/User.php 237
|
|
- $result = $subscription->insert();
|
|
+ $result = $subscription->insert();
|
|
hunk ./classes/User.php 239
|
|
- if (!$result) {
|
|
- common_log_db_error($subscription, 'INSERT', __FILE__);
|
|
- return FALSE;
|
|
- }
|
|
+ if (!$result) {
|
|
+ common_log_db_error($subscription, 'INSERT', __FILE__);
|
|
+ return FALSE;
|
|
+ }
|
|
hunk ./classes/User.php 244
|
|
- if ($email && !$user->email) {
|
|
+ if ($email && !$user->email) {
|
|
hunk ./classes/User.php 246
|
|
- $confirm = new Confirm_address();
|
|
- $confirm->code = common_confirmation_code(128);
|
|
- $confirm->user_id = $user->id;
|
|
- $confirm->address = $email;
|
|
- $confirm->address_type = 'email';
|
|
+ $confirm = new Confirm_address();
|
|
+ $confirm->code = common_confirmation_code(128);
|
|
+ $confirm->user_id = $user->id;
|
|
+ $confirm->address = $email;
|
|
+ $confirm->address_type = 'email';
|
|
hunk ./classes/User.php 252
|
|
- $result = $confirm->insert();
|
|
- if (!$result) {
|
|
- common_log_db_error($confirm, 'INSERT', __FILE__);
|
|
- return FALSE;
|
|
- }
|
|
- }
|
|
+ $result = $confirm->insert();
|
|
+ if (!$result) {
|
|
+ common_log_db_error($confirm, 'INSERT', __FILE__);
|
|
+ return FALSE;
|
|
+ }
|
|
+ }
|
|
hunk ./classes/User.php 259
|
|
- if ($code && $user->email) {
|
|
- $user->emailChanged();
|
|
- }
|
|
+ if ($code && $user->email) {
|
|
+ $user->emailChanged();
|
|
+ }
|
|
hunk ./classes/User.php 263
|
|
- $profile->query('COMMIT');
|
|
+ $profile->query('COMMIT');
|
|
hunk ./classes/User.php 265
|
|
- if ($email && !$user->email) {
|
|
- mail_confirm_address($user, $confirm->code, $profile->nickname, $email);
|
|
- }
|
|
+ if ($email && !$user->email) {
|
|
+ mail_confirm_address($user, $confirm->code, $profile->nickname, $email);
|
|
+ }
|
|
hunk ./classes/User.php 269
|
|
- return $user;
|
|
- }
|
|
+ return $user;
|
|
+ }
|
|
hunk ./classes/User.php 272
|
|
- # Things we do when the email changes
|
|
+ # Things we do when the email changes
|
|
hunk ./classes/User.php 274
|
|
- function emailChanged() {
|
|
+ function emailChanged() {
|
|
hunk ./classes/User.php 276
|
|
- $invites = new Invitation();
|
|
- $invites->address = $this->email;
|
|
- $invites->address_type = 'email';
|
|
+ $invites = new Invitation();
|
|
+ $invites->address = $this->email;
|
|
+ $invites->address_type = 'email';
|
|
hunk ./classes/User.php 280
|
|
- if ($invites->find()) {
|
|
- while ($invites->fetch()) {
|
|
- $other = User::staticGet($invites->user_id);
|
|
- subs_subscribe_to($other, $this);
|
|
- }
|
|
- }
|
|
- }
|
|
+ if ($invites->find()) {
|
|
+ while ($invites->fetch()) {
|
|
+ $other = User::staticGet($invites->user_id);
|
|
+ subs_subscribe_to($other, $this);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
hunk ./classes/User.php 288
|
|
- function hasFave($notice) {
|
|
- $cache = common_memcache();
|
|
+ function hasFave($notice) {
|
|
+ $cache = common_memcache();
|
|
hunk ./classes/User.php 291
|
|
- # XXX: Kind of a hack.
|
|
- if ($cache) {
|
|
- # This is the stream of favorite notices, in rev chron
|
|
- # order. This forces it into cache.
|
|
- $faves = $this->favoriteNotices(0, NOTICE_CACHE_WINDOW);
|
|
- $cnt = 0;
|
|
- while ($faves->fetch()) {
|
|
- if ($faves->id < $notice->id) {
|
|
- # If we passed it, it's not a fave
|
|
- return false;
|
|
- } else if ($faves->id == $notice->id) {
|
|
- # If it matches a cached notice, then it's a fave
|
|
- return true;
|
|
- }
|
|
- $cnt++;
|
|
- }
|
|
- # If we're not past the end of the cache window,
|
|
- # then the cache has all available faves, so this one
|
|
- # is not a fave.
|
|
- if ($cnt < NOTICE_CACHE_WINDOW) {
|
|
- return false;
|
|
- }
|
|
- # Otherwise, cache doesn't have all faves;
|
|
- # fall through to the default
|
|
- }
|
|
- $fave = Fave::pkeyGet(array('user_id' => $this->id,
|
|
- 'notice_id' => $notice->id));
|
|
- return ((is_null($fave)) ? false : true);
|
|
- }
|
|
- function mutuallySubscribed($other) {
|
|
- return $this->isSubscribed($other) &&
|
|
- $other->isSubscribed($this);
|
|
- }
|
|
+ # XXX: Kind of a hack.
|
|
+ if ($cache) {
|
|
+ # This is the stream of favorite notices, in rev chron
|
|
+ # order. This forces it into cache.
|
|
+ $faves = $this->favoriteNotices(0, NOTICE_CACHE_WINDOW);
|
|
+ $cnt = 0;
|
|
+ while ($faves->fetch()) {
|
|
+ if ($faves->id < $notice->id) {
|
|
+ # If we passed it, it's not a fave
|
|
+ return false;
|
|
+ } else if ($faves->id == $notice->id) {
|
|
+ # If it matches a cached notice, then it's a fave
|
|
+ return true;
|
|
+ }
|
|
+ $cnt++;
|
|
+ }
|
|
+ # If we're not past the end of the cache window,
|
|
+ # then the cache has all available faves, so this one
|
|
+ # is not a fave.
|
|
+ if ($cnt < NOTICE_CACHE_WINDOW) {
|
|
+ return false;
|
|
+ }
|
|
+ # Otherwise, cache doesn't have all faves;
|
|
+ # fall through to the default
|
|
+ }
|
|
+ $fave = Fave::pkeyGet(array('user_id' => $this->id,
|
|
+ 'notice_id' => $notice->id));
|
|
+ return ((is_null($fave)) ? false : true);
|
|
+ }
|
|
+ function mutuallySubscribed($other) {
|
|
+ return $this->isSubscribed($other) &&
|
|
+ $other->isSubscribed($this);
|
|
+ }
|
|
hunk ./classes/User.php 327
|
|
- # 3-way join; probably should get cached
|
|
- $qry = 'SELECT user.* ' .
|
|
- 'FROM subscription sub1 JOIN user ON sub1.subscribed = user.id ' .
|
|
- 'JOIN subscription sub2 ON user.id = sub2.subscriber ' .
|
|
- 'WHERE sub1.subscriber = %d and sub2.subscribed = %d ' .
|
|
- 'ORDER BY user.nickname';
|
|
- $user = new User();
|
|
- $user->query(sprintf($qry, $this->id, $this->id));
|
|
+ # 3-way join; probably should get cached
|
|
+ $qry = 'SELECT user.* ' .
|
|
+ 'FROM subscription sub1 JOIN user ON sub1.subscribed = user.id ' .
|
|
+ 'JOIN subscription sub2 ON user.id = sub2.subscriber ' .
|
|
+ 'WHERE sub1.subscriber = %d and sub2.subscribed = %d ' .
|
|
+ 'ORDER BY user.nickname';
|
|
+ $user = new User();
|
|
+ $user->query(sprintf($qry, $this->id, $this->id));
|
|
hunk ./classes/User.php 336
|
|
- return $user;
|
|
- }
|
|
+ return $user;
|
|
+ }
|
|
hunk ./classes/User.php 339
|
|
- function getReplies($offset=0, $limit=NOTICES_PER_PAGE, $since_id=0, $before_id=0, $since=NULL) {
|
|
- $qry =
|
|
- 'SELECT notice.* ' .
|
|
- 'FROM notice JOIN reply ON notice.id = reply.notice_id ' .
|
|
- 'WHERE reply.profile_id = %d ';
|
|
- return Notice::getStream(sprintf($qry, $this->id),
|
|
- 'user:replies:'.$this->id,
|
|
- $offset, $limit, $since_id, $before_id, NULL, $since);
|
|
- }
|
|
+ function getReplies($offset=0, $limit=NOTICES_PER_PAGE, $since_id=0, $before_id=0, $since=NULL) {
|
|
+ $qry =
|
|
+ 'SELECT notice.* ' .
|
|
+ 'FROM notice JOIN reply ON notice.id = reply.notice_id ' .
|
|
+ 'WHERE reply.profile_id = %d ';
|
|
+ return Notice::getStream(sprintf($qry, $this->id),
|
|
+ 'user:replies:'.$this->id,
|
|
+ $offset, $limit, $since_id, $before_id, NULL, $since);
|
|
+ }
|
|
hunk ./classes/User.php 356
|
|
- }
|
|
+ }
|
|
hunk ./classes/User.php 359
|
|
- $qry =
|
|
- 'SELECT notice.* ' .
|
|
- 'FROM notice JOIN fave ON notice.id = fave.notice_id ' .
|
|
- 'WHERE fave.user_id = %d ';
|
|
- return Notice::getStream(sprintf($qry, $this->id),
|
|
- 'user:faves:'.$this->id,
|
|
- $offset, $limit);
|
|
- }
|
|
+ $qry =
|
|
+ 'SELECT notice.* ' .
|
|
+ 'FROM notice JOIN fave ON notice.id = fave.notice_id ' .
|
|
+ 'WHERE fave.user_id = %d ';
|
|
+ return Notice::getStream(sprintf($qry, $this->id),
|
|
+ 'user:faves:'.$this->id,
|
|
+ $offset, $limit);
|
|
+ }
|
|
hunk ./classes/User.php 369
|
|
- $enabled = common_config('inboxes', 'enabled');
|
|
+ $enabled = common_config('inboxes', 'enabled');
|
|
hunk ./classes/User.php 371
|
|
- # Complicated code, depending on whether we support inboxes yet
|
|
- # XXX: make this go away when inboxes become mandatory
|
|
+ # Complicated code, depending on whether we support inboxes yet
|
|
+ # XXX: make this go away when inboxes become mandatory
|
|
hunk ./classes/User.php 374
|
|
- if ($enabled === false ||
|
|
- ($enabled == 'transitional' && $this->inboxed == 0)) {
|
|
- $qry =
|
|
- 'SELECT notice.* ' .
|
|
- 'FROM notice JOIN subscription ON notice.profile_id = subscription.subscribed ' .
|
|
- 'WHERE subscription.subscriber = %d ';
|
|
- $order = NULL;
|
|
- } else if ($enabled === true ||
|
|
- ($enabled == 'transitional' && $this->inboxed == 1)) {
|
|
+ if ($enabled === false ||
|
|
+ ($enabled == 'transitional' && $this->inboxed == 0)) {
|
|
+ $qry =
|
|
+ 'SELECT notice.* ' .
|
|
+ 'FROM notice JOIN subscription ON notice.profile_id = subscription.subscribed ' .
|
|
+ 'WHERE subscription.subscriber = %d ';
|
|
+ $order = NULL;
|
|
+ } else if ($enabled === true ||
|
|
+ ($enabled == 'transitional' && $this->inboxed == 1)) {
|
|
hunk ./classes/User.php 384
|
|
- $qry =
|
|
- 'SELECT notice.* ' .
|
|
- 'FROM notice JOIN notice_inbox ON notice.id = notice_inbox.notice_id ' .
|
|
- 'WHERE notice_inbox.user_id = %d ';
|
|
- # NOTE: we override ORDER
|
|
- $order = 'ORDER BY notice_inbox.created DESC, notice_inbox.notice_id DESC ';
|
|
- }
|
|
- return Notice::getStream(sprintf($qry, $this->id),
|
|
- 'user:notices_with_friends:' . $this->id,
|
|
- $offset, $limit, $since_id, $before_id,
|
|
- $order, $since);
|
|
- }
|
|
+ $qry =
|
|
+ 'SELECT notice.* ' .
|
|
+ 'FROM notice JOIN notice_inbox ON notice.id = notice_inbox.notice_id ' .
|
|
+ 'WHERE notice_inbox.user_id = %d ';
|
|
+ # NOTE: we override ORDER
|
|
+ $order = 'ORDER BY notice_inbox.created DESC, notice_inbox.notice_id DESC ';
|
|
+ }
|
|
+ return Notice::getStream(sprintf($qry, $this->id),
|
|
+ 'user:notices_with_friends:' . $this->id,
|
|
+ $offset, $limit, $since_id, $before_id,
|
|
+ $order, $since);
|
|
+ }
|
|
hunk ./classes/User.php 398
|
|
- $cache = common_memcache();
|
|
- if ($cache) {
|
|
- # Faves don't happen chronologically, so we need to blow
|
|
- # ;last cache, too
|
|
- $cache->delete(common_cache_key('user:faves:'.$this->id));
|
|
- $cache->delete(common_cache_key('user:faves:'.$this->id).';last');
|
|
- }
|
|
- }
|
|
+ $cache = common_memcache();
|
|
+ if ($cache) {
|
|
+ # Faves don't happen chronologically, so we need to blow
|
|
+ # ;last cache, too
|
|
+ $cache->delete(common_cache_key('user:faves:'.$this->id));
|
|
+ $cache->delete(common_cache_key('user:faves:'.$this->id).';last');
|
|
+ }
|
|
+ }
|
|
hunk ./classes/User.php 408
|
|
- return Profile_tag::getTags($this->id, $this->id);
|
|
- }
|
|
+ return Profile_tag::getTags($this->id, $this->id);
|
|
+ }
|
|
hunk ./classes/User.php 412
|
|
- return Profile_tag::setTags($this->id, $this->id, $newtags);
|
|
- }
|
|
+ return Profile_tag::setTags($this->id, $this->id, $newtags);
|
|
+ }
|
|
hunk ./classes/User.php 437
|
|
- $sub = Subscription::pkeyGet(array('subscriber' => $other->id,
|
|
- 'subscribed' => $this->id));
|
|
+ $sub = Subscription::pkeyGet(array('subscriber' => $other->id,
|
|
+ 'subscribed' => $this->id));
|
|
hunk ./lib/common.php 57
|
|
- array('name' => 'Just another Laconica microblog',
|
|
- 'server' => 'localhost',
|
|
- 'theme' => 'default',
|
|
- 'path' => '/',
|
|
- 'logfile' => NULL,
|
|
- 'fancy' => false,
|
|
- 'locale_path' => INSTALLDIR.'/locale',
|
|
- 'language' => 'en_US',
|
|
- 'languages' => get_all_languages(),
|
|
- 'email' =>
|
|
- array_key_exists('SERVER_ADMIN', $_SERVER) ? $_SERVER['SERVER_ADMIN'] : NULL,
|
|
- 'broughtby' => NULL,
|
|
- 'timezone' => 'UTC',
|
|
- 'broughtbyurl' => NULL,
|
|
- 'closed' => false,
|
|
- 'inviteonly' => false,
|
|
+ array('name' => 'Just another Laconica microblog',
|
|
+ 'server' => 'localhost',
|
|
+ 'theme' => 'default',
|
|
+ 'path' => '/',
|
|
+ 'logfile' => NULL,
|
|
+ 'fancy' => false,
|
|
+ 'locale_path' => INSTALLDIR.'/locale',
|
|
+ 'language' => 'en_US',
|
|
+ 'languages' => get_all_languages(),
|
|
+ 'email' =>
|
|
+ array_key_exists('SERVER_ADMIN', $_SERVER) ? $_SERVER['SERVER_ADMIN'] : NULL,
|
|
+ 'broughtby' => NULL,
|
|
+ 'timezone' => 'UTC',
|
|
+ 'broughtbyurl' => NULL,
|
|
+ 'closed' => false,
|
|
+ 'inviteonly' => false,
|
|
hunk ./lib/common.php 74
|
|
- 'syslog' =>
|
|
- array('appname' => 'laconica', # for syslog
|
|
- 'priority' => 'debug'), # XXX: currently ignored
|
|
- 'queue' =>
|
|
- array('enabled' => false),
|
|
- 'license' =>
|
|
- array('url' => 'http://creativecommons.org/licenses/by/3.0/',
|
|
- 'title' => 'Creative Commons Attribution 3.0',
|
|
- 'image' => 'http://i.creativecommons.org/l/by/3.0/88x31.png'),
|
|
- 'mail' =>
|
|
- array('backend' => 'mail',
|
|
- 'params' => NULL),
|
|
- 'nickname' =>
|
|
- array('blacklist' => array(),
|
|
- 'featured' => array()),
|
|
- 'profile' =>
|
|
- array('banned' => array()),
|
|
- 'avatar' =>
|
|
- array('server' => NULL),
|
|
- 'public' =>
|
|
- array('localonly' => true,
|
|
- 'blacklist' => array()),
|
|
- 'theme' =>
|
|
- array('server' => NULL),
|
|
- 'throttle' =>
|
|
+ 'syslog' =>
|
|
+ array('appname' => 'laconica', # for syslog
|
|
+ 'priority' => 'debug'), # XXX: currently ignored
|
|
+ 'queue' =>
|
|
+ array('enabled' => false),
|
|
+ 'license' =>
|
|
+ array('url' => 'http://creativecommons.org/licenses/by/3.0/',
|
|
+ 'title' => 'Creative Commons Attribution 3.0',
|
|
+ 'image' => 'http://i.creativecommons.org/l/by/3.0/88x31.png'),
|
|
+ 'mail' =>
|
|
+ array('backend' => 'mail',
|
|
+ 'params' => NULL),
|
|
+ 'nickname' =>
|
|
+ array('blacklist' => array(),
|
|
+ 'featured' => array()),
|
|
+ 'profile' =>
|
|
+ array('banned' => array()),
|
|
+ 'avatar' =>
|
|
+ array('server' => NULL),
|
|
+ 'public' =>
|
|
+ array('localonly' => true,
|
|
+ 'blacklist' => array()),
|
|
+ 'theme' =>
|
|
+ array('server' => NULL),
|
|
+ 'throttle' =>
|
|
hunk ./lib/common.php 102
|
|
- 'xmpp' =>
|
|
- array('enabled' => false,
|
|
- 'server' => 'INVALID SERVER',
|
|
- 'port' => 5222,
|
|
- 'user' => 'update',
|
|
- 'encryption' => true,
|
|
- 'resource' => 'uniquename',
|
|
- 'password' => 'blahblahblah',
|
|
- 'host' => NULL, # only set if != server
|
|
- 'debug' => false, # print extra debug info
|
|
- 'public' => array()), # JIDs of users who want to receive the public stream
|
|
+ 'xmpp' =>
|
|
+ array('enabled' => false,
|
|
+ 'server' => 'INVALID SERVER',
|
|
+ 'port' => 5222,
|
|
+ 'user' => 'update',
|
|
+ 'encryption' => true,
|
|
+ 'resource' => 'uniquename',
|
|
+ 'password' => 'blahblahblah',
|
|
+ 'host' => NULL, # only set if != server
|
|
+ 'debug' => false, # print extra debug info
|
|
+ 'public' => array()), # JIDs of users who want to receive the public stream
|
|
hunk ./lib/common.php 117
|
|
- 'tag' =>
|
|
- array('dropoff' => 864000.0),
|
|
- 'popular' =>
|
|
- array('dropoff' => 864000.0),
|
|
- 'daemon' =>
|
|
- array('piddir' => '/var/run',
|
|
- 'user' => false,
|
|
- 'group' => false),
|
|
- 'integration' =>
|
|
- array('source' => 'Laconica'), # source attribute for Twitter
|
|
- 'memcached' =>
|
|
- array('enabled' => false,
|
|
- 'server' => 'localhost',
|
|
- 'port' => 11211),
|
|
- 'inboxes' =>
|
|
- array('enabled' => true), # on by default for new sites
|
|
- );
|
|
+ 'tag' =>
|
|
+ array('dropoff' => 864000.0),
|
|
+ 'popular' =>
|
|
+ array('dropoff' => 864000.0),
|
|
+ 'daemon' =>
|
|
+ array('piddir' => '/var/run',
|
|
+ 'user' => false,
|
|
+ 'group' => false),
|
|
+ 'integration' =>
|
|
+ array('source' => 'Laconica'), # source attribute for Twitter
|
|
+ 'memcached' =>
|
|
+ array('enabled' => false,
|
|
+ 'server' => 'localhost',
|
|
+ 'port' => 11211),
|
|
+ 'inboxes' =>
|
|
+ array('enabled' => true), # on by default for new sites
|
|
+ );
|
|
hunk ./lib/common.php 139
|
|
- 'schema_location' => INSTALLDIR . '/classes',
|
|
- 'class_location' => INSTALLDIR . '/classes',
|
|
- 'require_prefix' => 'classes/',
|
|
- 'class_prefix' => '',
|
|
- 'mirror' => NULL,
|
|
+ 'schema_location' => INSTALLDIR . '/classes',
|
|
+ 'class_location' => INSTALLDIR . '/classes',
|
|
+ 'require_prefix' => 'classes/',
|
|
+ 'class_prefix' => '',
|
|
+ 'mirror' => NULL,
|
|
hunk ./lib/common.php 145
|
|
- 'quote_identifiers' => false,
|
|
- 'type' => 'mysql' );
|
|
+ 'quote_identifiers' => false,
|
|
+ 'type' => 'mysql' );
|
|
hunk ./lib/common.php 149
|
|
- /* Work internally in UTC */
|
|
- date_default_timezone_set('UTC');
|
|
+ /* Work internally in UTC */
|
|
+ date_default_timezone_set('UTC');
|
|
hunk ./lib/common.php 167
|
|
- if ($class == 'OAuthRequest') {
|
|
- require_once('OAuth.php');
|
|
- } else if (file_exists(INSTALLDIR.'/classes/' . $class . '.php')) {
|
|
+ if ($class == 'OAuthRequest') {
|
|
+ require_once('OAuth.php');
|
|
+ } else if (file_exists(INSTALLDIR.'/classes/' . $class . '.php')) {
|
|
hunk ./lib/deleteaction.php 24
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
- $user = common_current_user();
|
|
- $notice_id = $this->trimmed('notice');
|
|
- $notice = Notice::staticGet($notice_id);
|
|
- if (!$notice) {
|
|
- common_user_error(_('No such notice.'));
|
|
- exit;
|
|
- }
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
+ $user = common_current_user();
|
|
+ $notice_id = $this->trimmed('notice');
|
|
+ $notice = Notice::staticGet($notice_id);
|
|
+ if (!$notice) {
|
|
+ common_user_error(_('No such notice.'));
|
|
+ exit;
|
|
+ }
|
|
hunk ./lib/deleteaction.php 34
|
|
- $profile = $notice->getProfile();
|
|
- $user_profile = $user->getProfile();
|
|
+ $profile = $notice->getProfile();
|
|
+ $user_profile = $user->getProfile();
|
|
hunk ./lib/deleteaction.php 37
|
|
- if (!common_logged_in()) {
|
|
- common_user_error(_('Not logged in.'));
|
|
- exit;
|
|
- } else if ($notice->profile_id != $user_profile->id) {
|
|
- common_user_error(_('Can\'t delete this notice.'));
|
|
- exit;
|
|
- }
|
|
- }
|
|
+ if (!common_logged_in()) {
|
|
+ common_user_error(_('Not logged in.'));
|
|
+ exit;
|
|
+ } else if ($notice->profile_id != $user_profile->id) {
|
|
+ common_user_error(_('Can\'t delete this notice.'));
|
|
+ exit;
|
|
+ }
|
|
+ }
|
|
hunk ./lib/deleteaction.php 46
|
|
- function show_top($arr=NULL) {
|
|
- $instr = $this->get_instructions();
|
|
- $output = common_markup_to_html($instr);
|
|
- common_element_start('div', 'instructions');
|
|
- common_raw($output);
|
|
- common_element_end('div');
|
|
- }
|
|
+ function show_top($arr=NULL) {
|
|
+ $instr = $this->get_instructions();
|
|
+ $output = common_markup_to_html($instr);
|
|
+ common_element_start('div', 'instructions');
|
|
+ common_raw($output);
|
|
+ common_element_end('div');
|
|
+ }
|
|
hunk ./lib/deleteaction.php 54
|
|
- function get_title() {
|
|
- return NULL;
|
|
- }
|
|
+ function get_title() {
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./lib/deleteaction.php 58
|
|
- function show_header() {
|
|
- return;
|
|
- }
|
|
+ function show_header() {
|
|
+ return;
|
|
+ }
|
|
hunk ./lib/facebookaction.php 13
|
|
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
hunk ./lib/facebookaction.php 17
|
|
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
hunk ./lib/facebookaction.php 26
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
- }
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
+ }
|
|
hunk ./lib/facebookaction.php 30
|
|
- function get_facebook() {
|
|
- $apikey = common_config('facebook', 'apikey');
|
|
- $secret = common_config('facebook', 'secret');
|
|
- return new Facebook($apikey, $secret);
|
|
- }
|
|
+ function get_facebook() {
|
|
+ $apikey = common_config('facebook', 'apikey');
|
|
+ $secret = common_config('facebook', 'secret');
|
|
+ return new Facebook($apikey, $secret);
|
|
+ }
|
|
hunk ./lib/facebookaction.php 36
|
|
- function update_profile_box($facebook, $fbuid, $user) {
|
|
+ function update_profile_box($facebook, $fbuid, $user) {
|
|
hunk ./lib/facebookaction.php 38
|
|
- $notice = $user->getCurrentNotice();
|
|
+ $notice = $user->getCurrentNotice();
|
|
hunk ./lib/facebookaction.php 40
|
|
- # Need to include inline CSS for styling the Profile box
|
|
+ # Need to include inline CSS for styling the Profile box
|
|
hunk ./lib/facebookaction.php 42
|
|
- $style = '<style>
|
|
- #notices {
|
|
- clear: both;
|
|
- margin: 0 auto;
|
|
- padding: 0;
|
|
- list-style-type: none;
|
|
- width: 600px;
|
|
- border-top: 1px solid #dec5b5;
|
|
- }
|
|
- #notices a:hover {
|
|
- text-decoration: underline;
|
|
- }
|
|
- .notice_single {
|
|
- clear: both;
|
|
- display: block;
|
|
- margin: 0;
|
|
- padding: 5px 5px 5px 0;
|
|
- min-height: 48px;
|
|
- font-family: Georgia, "Times New Roman", Times, serif;
|
|
- font-size: 13px;
|
|
- line-height: 16px;
|
|
- border-bottom: 1px solid #dec5b5;
|
|
- background-color:#FCFFF5;
|
|
- opacity:1;
|
|
- }
|
|
- .notice_single:hover {
|
|
- background-color: #f7ebcc;
|
|
- }
|
|
- .notice_single p {
|
|
- display: inline;
|
|
- margin: 0;
|
|
- padding: 0;
|
|
- }
|
|
- </style>';
|
|
+ $style = '<style>
|
|
+ #notices {
|
|
+ clear: both;
|
|
+ margin: 0 auto;
|
|
+ padding: 0;
|
|
+ list-style-type: none;
|
|
+ width: 600px;
|
|
+ border-top: 1px solid #dec5b5;
|
|
+ }
|
|
+ #notices a:hover {
|
|
+ text-decoration: underline;
|
|
+ }
|
|
+ .notice_single {
|
|
+ clear: both;
|
|
+ display: block;
|
|
+ margin: 0;
|
|
+ padding: 5px 5px 5px 0;
|
|
+ min-height: 48px;
|
|
+ font-family: Georgia, "Times New Roman", Times, serif;
|
|
+ font-size: 13px;
|
|
+ line-height: 16px;
|
|
+ border-bottom: 1px solid #dec5b5;
|
|
+ background-color:#FCFFF5;
|
|
+ opacity:1;
|
|
+ }
|
|
+ .notice_single:hover {
|
|
+ background-color: #f7ebcc;
|
|
+ }
|
|
+ .notice_single p {
|
|
+ display: inline;
|
|
+ margin: 0;
|
|
+ padding: 0;
|
|
+ }
|
|
+ </style>';
|
|
hunk ./lib/facebookaction.php 77
|
|
- $html = $this->render_notice($notice);
|
|
+ $html = $this->render_notice($notice);
|
|
hunk ./lib/facebookaction.php 79
|
|
- $fbml = "<fb:wide>$content $html</fb:wide>";
|
|
- $fbml .= "<fb:narrow>$content $html</fb:narrow>";
|
|
+ $fbml = "<fb:wide>$content $html</fb:wide>";
|
|
+ $fbml .= "<fb:narrow>$content $html</fb:narrow>";
|
|
hunk ./lib/facebookaction.php 82
|
|
- $fbml_main = "<fb:narrow>$content $html</fb:narrow>";
|
|
+ $fbml_main = "<fb:narrow>$content $html</fb:narrow>";
|
|
hunk ./lib/facebookaction.php 84
|
|
- $facebook->api_client->profile_setFBML(NULL, $fbuid, $fbml, NULL, NULL, $fbml_main);
|
|
- }
|
|
+ $facebook->api_client->profile_setFBML(NULL, $fbuid, $fbml, NULL, NULL, $fbml_main);
|
|
+ }
|
|
hunk ./lib/facebookaction.php 87
|
|
- # Display methods
|
|
+ # Display methods
|
|
hunk ./lib/facebookaction.php 89
|
|
- function show_header($selected ='Home') {
|
|
+ function show_header($selected ='Home') {
|
|
hunk ./lib/facebookaction.php 91
|
|
- # Add a timestamp to the CSS file so Facebook cache wont ignore our changes
|
|
- $ts = filemtime(theme_file('facebookapp.css'));
|
|
- $cssurl = theme_path('facebookapp.css') . "?ts=$ts";
|
|
+ # Add a timestamp to the CSS file so Facebook cache wont ignore our changes
|
|
+ $ts = filemtime(theme_file('facebookapp.css'));
|
|
+ $cssurl = theme_path('facebookapp.css') . "?ts=$ts";
|
|
hunk ./lib/facebookaction.php 95
|
|
- $header = '<link rel="stylesheet" type="text/css" href="'. $cssurl . '" />';
|
|
- # $header .='<script src="" ></script>';
|
|
- $header .= '<fb:dashboard/>';
|
|
+ $header = '<link rel="stylesheet" type="text/css" href="'. $cssurl . '" />';
|
|
+ # $header .='<script src="" ></script>';
|
|
+ $header .= '<fb:dashboard/>';
|
|
hunk ./lib/facebookaction.php 99
|
|
- $header .=
|
|
- '<fb:tabs>'
|
|
- .'<fb:tab-item title="Home" href="index.php" selected="' . ($selected == 'Home') .'" />'
|
|
- .'<fb:tab-item title="Invite Friends" href="invite.php" selected="' . ($selected == 'Invite') . '" />'
|
|
- .'<fb:tab-item title="Settings" href="settings.php" selected="' . ($selected == 'Settings') . '" />'
|
|
- .'</fb:tabs>';
|
|
- $header .= '<div id="main_body">';
|
|
+ $header .=
|
|
+ '<fb:tabs>'
|
|
+ .'<fb:tab-item title="Home" href="index.php" selected="' . ($selected == 'Home') .'" />'
|
|
+ .'<fb:tab-item title="Invite Friends" href="invite.php" selected="' . ($selected == 'Invite') . '" />'
|
|
+ .'<fb:tab-item title="Settings" href="settings.php" selected="' . ($selected == 'Settings') . '" />'
|
|
+ .'</fb:tabs>';
|
|
+ $header .= '<div id="main_body">';
|
|
hunk ./lib/facebookaction.php 107
|
|
- echo $header;
|
|
+ echo $header;
|
|
hunk ./lib/facebookaction.php 109
|
|
- }
|
|
+ }
|
|
hunk ./lib/facebookaction.php 111
|
|
- function show_footer() {
|
|
- $footer = '</div>';
|
|
- echo $footer;
|
|
- }
|
|
+ function show_footer() {
|
|
+ $footer = '</div>';
|
|
+ echo $footer;
|
|
+ }
|
|
hunk ./lib/facebookaction.php 116
|
|
- function show_login_form() {
|
|
+ function show_login_form() {
|
|
hunk ./lib/facebookaction.php 118
|
|
- $loginform =
|
|
- ' <h2>To add the Identi.ca application, you need to log into your Identi.ca account.</h2>'
|
|
- .'<a href="http://identi.ca/">'
|
|
- .' <img src="http://theme.identi.ca/identica/logo.png" alt="Identi.ca" id="logo"/>'
|
|
- .'</a>'
|
|
- .'<h1 class="pagetitle">Login</h1>'
|
|
- .'<div class="instructions">'
|
|
- .' <p>Login with your username and password. Don\'t have a username yet?'
|
|
- .' <a href="http://identi.ca/main/register">Register</a> a new account.'
|
|
- .' </p>'
|
|
- .'</div>'
|
|
- .'<div id="content">'
|
|
- .' <form method="post" id="login">'
|
|
- .' <p>'
|
|
- .' <label for="nickname">Nickname</label>'
|
|
- .' <input name="nickname" type="text" class="input_text" id="nickname"/>'
|
|
- .' </p>'
|
|
- .' <p>'
|
|
- .' <label for="password">Password</label>'
|
|
- .' <input name="password" type="password" class="password" id="password"/>'
|
|
- .' </p>'
|
|
- .' <p>'
|
|
- .' <input type="submit" id="submit" name="submit" class="submit" value="Login"/>'
|
|
- .' </p>'
|
|
- .' </form>'
|
|
- .' <p>'
|
|
- .' <a href="http://identi.ca/main/recoverpassword">Lost or forgotten password?</a>'
|
|
- .' </p>'
|
|
- .'</div';
|
|
+ $loginform =
|
|
+ ' <h2>To add the Identi.ca application, you need to log into your Identi.ca account.</h2>'
|
|
+ .'<a href="http://identi.ca/">'
|
|
+ .' <img src="http://theme.identi.ca/identica/logo.png" alt="Identi.ca" id="logo"/>'
|
|
+ .'</a>'
|
|
+ .'<h1 class="pagetitle">Login</h1>'
|
|
+ .'<div class="instructions">'
|
|
+ .' <p>Login with your username and password. Don\'t have a username yet?'
|
|
+ .' <a href="http://identi.ca/main/register">Register</a> a new account.'
|
|
+ .' </p>'
|
|
+ .'</div>'
|
|
+ .'<div id="content">'
|
|
+ .' <form method="post" id="login">'
|
|
+ .' <p>'
|
|
+ .' <label for="nickname">Nickname</label>'
|
|
+ .' <input name="nickname" type="text" class="input_text" id="nickname"/>'
|
|
+ .' </p>'
|
|
+ .' <p>'
|
|
+ .' <label for="password">Password</label>'
|
|
+ .' <input name="password" type="password" class="password" id="password"/>'
|
|
+ .' </p>'
|
|
+ .' <p>'
|
|
+ .' <input type="submit" id="submit" name="submit" class="submit" value="Login"/>'
|
|
+ .' </p>'
|
|
+ .' </form>'
|
|
+ .' <p>'
|
|
+ .' <a href="http://identi.ca/main/recoverpassword">Lost or forgotten password?</a>'
|
|
+ .' </p>'
|
|
+ .'</div';
|
|
hunk ./lib/facebookaction.php 148
|
|
- echo $loginform;
|
|
- }
|
|
+ echo $loginform;
|
|
+ }
|
|
hunk ./lib/facebookaction.php 151
|
|
- function render_notice($notice) {
|
|
+ function render_notice($notice) {
|
|
hunk ./lib/facebookaction.php 153
|
|
- global $config;
|
|
+ global $config;
|
|
hunk ./lib/facebookaction.php 155
|
|
- $profile = $notice->getProfile();
|
|
- $avatar = $profile->getAvatar(AVATAR_STREAM_SIZE);
|
|
+ $profile = $notice->getProfile();
|
|
+ $avatar = $profile->getAvatar(AVATAR_STREAM_SIZE);
|
|
hunk ./lib/facebookaction.php 158
|
|
- $noticeurl = common_local_url('shownotice', array('notice' => $notice->id));
|
|
+ $noticeurl = common_local_url('shownotice', array('notice' => $notice->id));
|
|
hunk ./lib/facebookaction.php 160
|
|
- # XXX: we need to figure this out better. Is this right?
|
|
- if (strcmp($notice->uri, $noticeurl) != 0 && preg_match('/^http/', $notice->uri)) {
|
|
- $noticeurl = $notice->uri;
|
|
- }
|
|
+ # XXX: we need to figure this out better. Is this right?
|
|
+ if (strcmp($notice->uri, $noticeurl) != 0 && preg_match('/^http/', $notice->uri)) {
|
|
+ $noticeurl = $notice->uri;
|
|
+ }
|
|
hunk ./lib/facebookaction.php 165
|
|
- $html =
|
|
- '<li class="notice_single" id="' . $notice->id . '">'
|
|
- .'<a href="' . $profile->profileurl . '">'
|
|
- .'<img src="';
|
|
+ $html =
|
|
+ '<li class="notice_single" id="' . $notice->id . '">'
|
|
+ .'<a href="' . $profile->profileurl . '">'
|
|
+ .'<img src="';
|
|
hunk ./lib/facebookaction.php 170
|
|
- if ($avatar) {
|
|
- $html .= common_avatar_display_url($avatar);
|
|
- } else {
|
|
- $html .= common_default_avatar(AVATAR_STREAM_SIZE);
|
|
- }
|
|
+ if ($avatar) {
|
|
+ $html .= common_avatar_display_url($avatar);
|
|
+ } else {
|
|
+ $html .= common_default_avatar(AVATAR_STREAM_SIZE);
|
|
+ }
|
|
hunk ./lib/facebookaction.php 176
|
|
- $html .=
|
|
- '" class="avatar stream" width="'
|
|
- . AVATAR_STREAM_SIZE . '" height="' . AVATAR_STREAM_SIZE .'"'
|
|
- .' alt="';
|
|
+ $html .=
|
|
+ '" class="avatar stream" width="'
|
|
+ . AVATAR_STREAM_SIZE . '" height="' . AVATAR_STREAM_SIZE .'"'
|
|
+ .' alt="';
|
|
hunk ./lib/facebookaction.php 181
|
|
- if ($profile->fullname) {
|
|
- $html .= $profile->fullname;
|
|
- } else {
|
|
- $html .= $profile->nickname;
|
|
- }
|
|
+ if ($profile->fullname) {
|
|
+ $html .= $profile->fullname;
|
|
+ } else {
|
|
+ $html .= $profile->nickname;
|
|
+ }
|
|
hunk ./lib/facebookaction.php 187
|
|
- $html .=
|
|
- '"></a>'
|
|
- .'<a href="' . $profile->profileurl . '" class="nickname">' . $profile->nickname . '</a>'
|
|
- .'<p class="content">' . $notice->rendered . '</p>'
|
|
- .'<p class="time">'
|
|
- .'<a class="permalink" href="' . $noticeurl . '" title="' . common_exact_date($notice->created) . '">' . common_date_string($notice->created) . '</a>';
|
|
+ $html .=
|
|
+ '"></a>'
|
|
+ .'<a href="' . $profile->profileurl . '" class="nickname">' . $profile->nickname . '</a>'
|
|
+ .'<p class="content">' . $notice->rendered . '</p>'
|
|
+ .'<p class="time">'
|
|
+ .'<a class="permalink" href="' . $noticeurl . '" title="' . common_exact_date($notice->created) . '">' . common_date_string($notice->created) . '</a>';
|
|
hunk ./lib/facebookaction.php 194
|
|
- if ($notice->source) {
|
|
- $html .= _(' from ');
|
|
- $html .= $this->source_link($notice->source);
|
|
- }
|
|
+ if ($notice->source) {
|
|
+ $html .= _(' from ');
|
|
+ $html .= $this->source_link($notice->source);
|
|
+ }
|
|
hunk ./lib/facebookaction.php 199
|
|
- if ($notice->reply_to) {
|
|
- $replyurl = common_local_url('shownotice', array('notice' => $notice->reply_to));
|
|
- $html .=
|
|
- ' (<a class="inreplyto" href="' . $replyurl . '">' . _('in reply to...') . ')';
|
|
- }
|
|
+ if ($notice->reply_to) {
|
|
+ $replyurl = common_local_url('shownotice', array('notice' => $notice->reply_to));
|
|
+ $html .=
|
|
+ ' (<a class="inreplyto" href="' . $replyurl . '">' . _('in reply to...') . ')';
|
|
+ }
|
|
hunk ./lib/facebookaction.php 205
|
|
- $html .= '</p></li>';
|
|
+ $html .= '</p></li>';
|
|
hunk ./lib/facebookaction.php 207
|
|
- return $html;
|
|
- }
|
|
+ return $html;
|
|
+ }
|
|
hunk ./lib/facebookaction.php 210
|
|
- function source_link($source) {
|
|
- $source_name = _($source);
|
|
+ function source_link($source) {
|
|
+ $source_name = _($source);
|
|
hunk ./lib/facebookaction.php 213
|
|
- $html = '<span class="noticesource">';
|
|
+ $html = '<span class="noticesource">';
|
|
hunk ./lib/facebookaction.php 215
|
|
- switch ($source) {
|
|
- case 'web':
|
|
- case 'xmpp':
|
|
- case 'mail':
|
|
- case 'omb':
|
|
- case 'api':
|
|
- $html .= $source_name;
|
|
- break;
|
|
- default:
|
|
- $ns = Notice_source::staticGet($source);
|
|
- if ($ns) {
|
|
- $html .= '<a href="' . $ns->url . '">' . $ns->name . '</a>';
|
|
- } else {
|
|
- $html .= $source_name;
|
|
- }
|
|
- break;
|
|
- }
|
|
+ switch ($source) {
|
|
+ case 'web':
|
|
+ case 'xmpp':
|
|
+ case 'mail':
|
|
+ case 'omb':
|
|
+ case 'api':
|
|
+ $html .= $source_name;
|
|
+ break;
|
|
+ default:
|
|
+ $ns = Notice_source::staticGet($source);
|
|
+ if ($ns) {
|
|
+ $html .= '<a href="' . $ns->url . '">' . $ns->name . '</a>';
|
|
+ } else {
|
|
+ $html .= $source_name;
|
|
+ }
|
|
+ break;
|
|
+ }
|
|
hunk ./lib/facebookaction.php 233
|
|
- $html .= '</span>';
|
|
+ $html .= '</span>';
|
|
hunk ./lib/facebookaction.php 235
|
|
- return $html;
|
|
- }
|
|
+ return $html;
|
|
+ }
|
|
hunk ./lib/facebookaction.php 238
|
|
- function pagination($have_before, $have_after, $page, $fbaction, $args=NULL) {
|
|
+ function pagination($have_before, $have_after, $page, $fbaction, $args=NULL) {
|
|
hunk ./lib/facebookaction.php 240
|
|
- $html = '';
|
|
+ $html = '';
|
|
hunk ./lib/facebookaction.php 242
|
|
- if ($have_before || $have_after) {
|
|
- $html = '<div id="pagination">';
|
|
- $html .'<ul id="nav_pagination">';
|
|
- }
|
|
+ if ($have_before || $have_after) {
|
|
+ $html = '<div id="pagination">';
|
|
+ $html .'<ul id="nav_pagination">';
|
|
+ }
|
|
hunk ./lib/facebookaction.php 247
|
|
- if ($have_before) {
|
|
- $pargs = array('page' => $page-1);
|
|
- $newargs = ($args) ? array_merge($args,$pargs) : $pargs;
|
|
- $html .= '<li class="before">';
|
|
- $html .'<a href="' . $this->pagination_url($fbaction, $newargs) . '">' . _('« After') . '</a>';
|
|
- $html .'</li>';
|
|
- }
|
|
+ if ($have_before) {
|
|
+ $pargs = array('page' => $page-1);
|
|
+ $newargs = ($args) ? array_merge($args,$pargs) : $pargs;
|
|
+ $html .= '<li class="before">';
|
|
+ $html .'<a href="' . $this->pagination_url($fbaction, $newargs) . '">' . _('« After') . '</a>';
|
|
+ $html .'</li>';
|
|
+ }
|
|
hunk ./lib/facebookaction.php 255
|
|
- if ($have_after) {
|
|
- $pargs = array('page' => $page+1);
|
|
- $newargs = ($args) ? array_merge($args,$pargs) : $pargs;
|
|
- $html .= '<li class="after">';
|
|
- $html .'<a href="' . $this->pagination_url($fbaction, $newargs) . '">' . _('Before »') . '</a>';
|
|
- $html .'</li>';
|
|
- }
|
|
+ if ($have_after) {
|
|
+ $pargs = array('page' => $page+1);
|
|
+ $newargs = ($args) ? array_merge($args,$pargs) : $pargs;
|
|
+ $html .= '<li class="after">';
|
|
+ $html .'<a href="' . $this->pagination_url($fbaction, $newargs) . '">' . _('Before »') . '</a>';
|
|
+ $html .'</li>';
|
|
+ }
|
|
hunk ./lib/facebookaction.php 263
|
|
- if ($have_before || $have_after) {
|
|
- $html .= '<ul>';
|
|
- $html .'<div>';
|
|
- }
|
|
- }
|
|
+ if ($have_before || $have_after) {
|
|
+ $html .= '<ul>';
|
|
+ $html .'<div>';
|
|
+ }
|
|
+ }
|
|
hunk ./lib/facebookaction.php 269
|
|
- function pagination_url($fbaction, $args=NULL) {
|
|
- global $config;
|
|
+ function pagination_url($fbaction, $args=NULL) {
|
|
+ global $config;
|
|
hunk ./lib/facebookaction.php 272
|
|
- $extra = '';
|
|
+ $extra = '';
|
|
hunk ./lib/facebookaction.php 274
|
|
- if ($args) {
|
|
- foreach ($args as $key => $value) {
|
|
- $extra .= "&${key}=${value}";
|
|
- }
|
|
- }
|
|
+ if ($args) {
|
|
+ foreach ($args as $key => $value) {
|
|
+ $extra .= "&${key}=${value}";
|
|
+ }
|
|
+ }
|
|
hunk ./lib/facebookaction.php 280
|
|
- return "$fbaction?${extra}";
|
|
- }
|
|
+ return "$fbaction?${extra}";
|
|
+ }
|
|
hunk ./lib/oauthstore.php 26
|
|
- # We keep a record of who's contacted us
|
|
+ # We keep a record of who's contacted us
|
|
hunk ./lib/oauthstore.php 28
|
|
- function lookup_consumer($consumer_key) {
|
|
- $con = Consumer::staticGet('consumer_key', $consumer_key);
|
|
- if (!$con) {
|
|
- $con = new Consumer();
|
|
- $con->consumer_key = $consumer_key;
|
|
- $con->seed = common_good_rand(16);
|
|
- $con->created = DB_DataObject_Cast::dateTime();
|
|
- if (!$con->insert()) {
|
|
- return NULL;
|
|
- }
|
|
- }
|
|
- return new OAuthConsumer($con->consumer_key, '');
|
|
- }
|
|
+ function lookup_consumer($consumer_key) {
|
|
+ $con = Consumer::staticGet('consumer_key', $consumer_key);
|
|
+ if (!$con) {
|
|
+ $con = new Consumer();
|
|
+ $con->consumer_key = $consumer_key;
|
|
+ $con->seed = common_good_rand(16);
|
|
+ $con->created = DB_DataObject_Cast::dateTime();
|
|
+ if (!$con->insert()) {
|
|
+ return NULL;
|
|
+ }
|
|
+ }
|
|
+ return new OAuthConsumer($con->consumer_key, '');
|
|
+ }
|
|
hunk ./lib/oauthstore.php 42
|
|
- function lookup_token($consumer, $token_type, $token_key) {
|
|
- $t = new Token();
|
|
- $t->consumer_key = $consumer->key;
|
|
- $t->tok = $token_key;
|
|
- $t->type = ($token_type == 'access') ? 1 : 0;
|
|
- if ($t->find(true)) {
|
|
- return new OAuthToken($t->tok, $t->secret);
|
|
- } else {
|
|
- return NULL;
|
|
- }
|
|
- }
|
|
+ function lookup_token($consumer, $token_type, $token_key) {
|
|
+ $t = new Token();
|
|
+ $t->consumer_key = $consumer->key;
|
|
+ $t->tok = $token_key;
|
|
+ $t->type = ($token_type == 'access') ? 1 : 0;
|
|
+ if ($t->find(true)) {
|
|
+ return new OAuthToken($t->tok, $t->secret);
|
|
+ } else {
|
|
+ return NULL;
|
|
+ }
|
|
+ }
|
|
hunk ./lib/oauthstore.php 54
|
|
- function lookup_nonce($consumer, $token, $nonce, $timestamp) {
|
|
- $n = new Nonce();
|
|
- $n->consumer_key = $consumer->key;
|
|
- $n->tok = $token->key;
|
|
- $n->nonce = $nonce;
|
|
- if ($n->find(TRUE)) {
|
|
- return TRUE;
|
|
- } else {
|
|
- $n->timestamp = $timestamp;
|
|
- $n->created = DB_DataObject_Cast::dateTime();
|
|
- $n->insert();
|
|
- return FALSE;
|
|
- }
|
|
- }
|
|
+ function lookup_nonce($consumer, $token, $nonce, $timestamp) {
|
|
+ $n = new Nonce();
|
|
+ $n->consumer_key = $consumer->key;
|
|
+ $n->tok = $token->key;
|
|
+ $n->nonce = $nonce;
|
|
+ if ($n->find(TRUE)) {
|
|
+ return TRUE;
|
|
+ } else {
|
|
+ $n->timestamp = $timestamp;
|
|
+ $n->created = DB_DataObject_Cast::dateTime();
|
|
+ $n->insert();
|
|
+ return FALSE;
|
|
+ }
|
|
+ }
|
|
hunk ./lib/oauthstore.php 69
|
|
- function new_request_token($consumer) {
|
|
- $t = new Token();
|
|
- $t->consumer_key = $consumer->key;
|
|
- $t->tok = common_good_rand(16);
|
|
- $t->secret = common_good_rand(16);
|
|
- $t->type = 0; # request
|
|
- $t->state = 0; # unauthorized
|
|
- $t->created = DB_DataObject_Cast::dateTime();
|
|
- if (!$t->insert()) {
|
|
- return NULL;
|
|
- } else {
|
|
- return new OAuthToken($t->tok, $t->secret);
|
|
- }
|
|
- }
|
|
+ function new_request_token($consumer) {
|
|
+ $t = new Token();
|
|
+ $t->consumer_key = $consumer->key;
|
|
+ $t->tok = common_good_rand(16);
|
|
+ $t->secret = common_good_rand(16);
|
|
+ $t->type = 0; # request
|
|
+ $t->state = 0; # unauthorized
|
|
+ $t->created = DB_DataObject_Cast::dateTime();
|
|
+ if (!$t->insert()) {
|
|
+ return NULL;
|
|
+ } else {
|
|
+ return new OAuthToken($t->tok, $t->secret);
|
|
+ }
|
|
+ }
|
|
hunk ./lib/oauthstore.php 84
|
|
- # defined in OAuthDataStore, but not implemented anywhere
|
|
+ # defined in OAuthDataStore, but not implemented anywhere
|
|
hunk ./lib/oauthstore.php 86
|
|
- function fetch_request_token($consumer) {
|
|
- return $this->new_request_token($consumer);
|
|
- }
|
|
+ function fetch_request_token($consumer) {
|
|
+ return $this->new_request_token($consumer);
|
|
+ }
|
|
hunk ./lib/oauthstore.php 90
|
|
- function new_access_token($token, $consumer) {
|
|
- common_debug('new_access_token("'.$token->key.'","'.$consumer->key.'")', __FILE__);
|
|
- $rt = new Token();
|
|
- $rt->consumer_key = $consumer->key;
|
|
- $rt->tok = $token->key;
|
|
- $rt->type = 0; # request
|
|
- if ($rt->find(TRUE) && $rt->state == 1) { # authorized
|
|
- common_debug('request token found.', __FILE__);
|
|
- $at = new Token();
|
|
- $at->consumer_key = $consumer->key;
|
|
- $at->tok = common_good_rand(16);
|
|
- $at->secret = common_good_rand(16);
|
|
- $at->type = 1; # access
|
|
- $at->created = DB_DataObject_Cast::dateTime();
|
|
- if (!$at->insert()) {
|
|
- $e = $at->_lastError;
|
|
- common_debug('access token "'.$at->tok.'" not inserted: "'.$e->message.'"', __FILE__);
|
|
- return NULL;
|
|
- } else {
|
|
- common_debug('access token "'.$at->tok.'" inserted', __FILE__);
|
|
- # burn the old one
|
|
- $orig_rt = clone($rt);
|
|
- $rt->state = 2; # used
|
|
- if (!$rt->update($orig_rt)) {
|
|
- return NULL;
|
|
- }
|
|
- common_debug('request token "'.$rt->tok.'" updated', __FILE__);
|
|
- # Update subscription
|
|
- # XXX: mixing levels here
|
|
- $sub = Subscription::staticGet('token', $rt->tok);
|
|
- if (!$sub) {
|
|
- return NULL;
|
|
- }
|
|
- common_debug('subscription for request token found', __FILE__);
|
|
- $orig_sub = clone($sub);
|
|
- $sub->token = $at->tok;
|
|
- $sub->secret = $at->secret;
|
|
- if (!$sub->update($orig_sub)) {
|
|
- return NULL;
|
|
- } else {
|
|
- common_debug('subscription updated to use access token', __FILE__);
|
|
- return new OAuthToken($at->tok, $at->secret);
|
|
- }
|
|
- }
|
|
- } else {
|
|
- return NULL;
|
|
- }
|
|
- }
|
|
+ function new_access_token($token, $consumer) {
|
|
+ common_debug('new_access_token("'.$token->key.'","'.$consumer->key.'")', __FILE__);
|
|
+ $rt = new Token();
|
|
+ $rt->consumer_key = $consumer->key;
|
|
+ $rt->tok = $token->key;
|
|
+ $rt->type = 0; # request
|
|
+ if ($rt->find(TRUE) && $rt->state == 1) { # authorized
|
|
+ common_debug('request token found.', __FILE__);
|
|
+ $at = new Token();
|
|
+ $at->consumer_key = $consumer->key;
|
|
+ $at->tok = common_good_rand(16);
|
|
+ $at->secret = common_good_rand(16);
|
|
+ $at->type = 1; # access
|
|
+ $at->created = DB_DataObject_Cast::dateTime();
|
|
+ if (!$at->insert()) {
|
|
+ $e = $at->_lastError;
|
|
+ common_debug('access token "'.$at->tok.'" not inserted: "'.$e->message.'"', __FILE__);
|
|
+ return NULL;
|
|
+ } else {
|
|
+ common_debug('access token "'.$at->tok.'" inserted', __FILE__);
|
|
+ # burn the old one
|
|
+ $orig_rt = clone($rt);
|
|
+ $rt->state = 2; # used
|
|
+ if (!$rt->update($orig_rt)) {
|
|
+ return NULL;
|
|
+ }
|
|
+ common_debug('request token "'.$rt->tok.'" updated', __FILE__);
|
|
+ # Update subscription
|
|
+ # XXX: mixing levels here
|
|
+ $sub = Subscription::staticGet('token', $rt->tok);
|
|
+ if (!$sub) {
|
|
+ return NULL;
|
|
+ }
|
|
+ common_debug('subscription for request token found', __FILE__);
|
|
+ $orig_sub = clone($sub);
|
|
+ $sub->token = $at->tok;
|
|
+ $sub->secret = $at->secret;
|
|
+ if (!$sub->update($orig_sub)) {
|
|
+ return NULL;
|
|
+ } else {
|
|
+ common_debug('subscription updated to use access token', __FILE__);
|
|
+ return new OAuthToken($at->tok, $at->secret);
|
|
+ }
|
|
+ }
|
|
+ } else {
|
|
+ return NULL;
|
|
+ }
|
|
+ }
|
|
hunk ./lib/oauthstore.php 139
|
|
- # defined in OAuthDataStore, but not implemented anywhere
|
|
+ # defined in OAuthDataStore, but not implemented anywhere
|
|
hunk ./lib/oauthstore.php 141
|
|
- function fetch_access_token($consumer) {
|
|
- return $this->new_access_token($consumer);
|
|
- }
|
|
+ function fetch_access_token($consumer) {
|
|
+ return $this->new_access_token($consumer);
|
|
+ }
|
|
hunk ./lib/omb.php 47
|
|
- static $con = NULL;
|
|
- if (!$con) {
|
|
- $con = new OAuthConsumer(common_root_url(), '');
|
|
- }
|
|
- return $con;
|
|
+ static $con = NULL;
|
|
+ if (!$con) {
|
|
+ $con = new OAuthConsumer(common_root_url(), '');
|
|
+ }
|
|
+ return $con;
|
|
hunk ./lib/omb.php 55
|
|
- static $server = null;
|
|
- if (!$server) {
|
|
- $server = new OAuthServer(omb_oauth_datastore());
|
|
- $server->add_signature_method(omb_hmac_sha1());
|
|
- }
|
|
- return $server;
|
|
+ static $server = null;
|
|
+ if (!$server) {
|
|
+ $server = new OAuthServer(omb_oauth_datastore());
|
|
+ $server->add_signature_method(omb_hmac_sha1());
|
|
+ }
|
|
+ return $server;
|
|
hunk ./lib/omb.php 64
|
|
- static $store = NULL;
|
|
- if (!$store) {
|
|
- $store = new LaconicaOAuthDataStore();
|
|
- }
|
|
- return $store;
|
|
+ static $store = NULL;
|
|
+ if (!$store) {
|
|
+ $store = new LaconicaOAuthDataStore();
|
|
+ }
|
|
+ return $store;
|
|
hunk ./lib/omb.php 72
|
|
- static $hmac_method = NULL;
|
|
- if (!$hmac_method) {
|
|
- $hmac_method = new OAuthSignatureMethod_HMAC_SHA1();
|
|
- }
|
|
- return $hmac_method;
|
|
+ static $hmac_method = NULL;
|
|
+ if (!$hmac_method) {
|
|
+ $hmac_method = new OAuthSignatureMethod_HMAC_SHA1();
|
|
+ }
|
|
+ return $hmac_method;
|
|
hunk ./lib/omb.php 80
|
|
- return $xrd->services(array(omb_service_filter($type)));
|
|
+ return $xrd->services(array(omb_service_filter($type)));
|
|
hunk ./lib/omb.php 84
|
|
- return create_function('$s',
|
|
- 'return omb_match_service($s, \''.$type.'\');');
|
|
+ return create_function('$s',
|
|
+ 'return omb_match_service($s, \''.$type.'\');');
|
|
hunk ./lib/omb.php 89
|
|
- return in_array($type, $service->getTypes());
|
|
+ return in_array($type, $service->getTypes());
|
|
hunk ./lib/omb.php 93
|
|
- if (!$service) {
|
|
- return NULL;
|
|
- }
|
|
- $uris = $service->getURIs();
|
|
- if (!$uris) {
|
|
- return NULL;
|
|
- }
|
|
- return $uris[0];
|
|
+ if (!$service) {
|
|
+ return NULL;
|
|
+ }
|
|
+ $uris = $service->getURIs();
|
|
+ if (!$uris) {
|
|
+ return NULL;
|
|
+ }
|
|
+ return $uris[0];
|
|
hunk ./lib/omb.php 104
|
|
- if (!$service) {
|
|
- return NULL;
|
|
- }
|
|
- $els = $service->getElements('xrd:LocalID');
|
|
- if (!$els) {
|
|
- return NULL;
|
|
- }
|
|
- $el = $els[0];
|
|
- return $service->parser->content($el);
|
|
+ if (!$service) {
|
|
+ return NULL;
|
|
+ }
|
|
+ $els = $service->getElements('xrd:LocalID');
|
|
+ if (!$els) {
|
|
+ return NULL;
|
|
+ }
|
|
+ $el = $els[0];
|
|
+ return $service->parser->content($el);
|
|
hunk ./lib/omb.php 117
|
|
- # First, get remote users subscribed to this profile
|
|
- $rp = new Remote_profile();
|
|
+ # First, get remote users subscribed to this profile
|
|
+ $rp = new Remote_profile();
|
|
hunk ./lib/omb.php 120
|
|
- $rp->query('SELECT postnoticeurl, token, secret ' .
|
|
- 'FROM subscription JOIN remote_profile ' .
|
|
- 'ON subscription.subscriber = remote_profile.id ' .
|
|
- 'WHERE subscription.subscribed = ' . $notice->profile_id . ' ');
|
|
+ $rp->query('SELECT postnoticeurl, token, secret ' .
|
|
+ 'FROM subscription JOIN remote_profile ' .
|
|
+ 'ON subscription.subscriber = remote_profile.id ' .
|
|
+ 'WHERE subscription.subscribed = ' . $notice->profile_id . ' ');
|
|
hunk ./lib/omb.php 125
|
|
- $posted = array();
|
|
+ $posted = array();
|
|
hunk ./lib/omb.php 127
|
|
- while ($rp->fetch()) {
|
|
- if (!$posted[$rp->postnoticeurl]) {
|
|
- common_log(LOG_DEBUG, 'Posting to ' . $rp->postnoticeurl);
|
|
- if (omb_post_notice_keys($notice, $rp->postnoticeurl, $rp->token, $rp->secret)) {
|
|
- common_log(LOG_DEBUG, 'Finished to ' . $rp->postnoticeurl);
|
|
- $posted[$rp->postnoticeurl] = TRUE;
|
|
- } else {
|
|
- common_log(LOG_DEBUG, 'Failed posting to ' . $rp->postnoticeurl);
|
|
- }
|
|
- }
|
|
- }
|
|
+ while ($rp->fetch()) {
|
|
+ if (!$posted[$rp->postnoticeurl]) {
|
|
+ common_log(LOG_DEBUG, 'Posting to ' . $rp->postnoticeurl);
|
|
+ if (omb_post_notice_keys($notice, $rp->postnoticeurl, $rp->token, $rp->secret)) {
|
|
+ common_log(LOG_DEBUG, 'Finished to ' . $rp->postnoticeurl);
|
|
+ $posted[$rp->postnoticeurl] = TRUE;
|
|
+ } else {
|
|
+ common_log(LOG_DEBUG, 'Failed posting to ' . $rp->postnoticeurl);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
hunk ./lib/omb.php 139
|
|
- $rp->free();
|
|
- unset($rp);
|
|
+ $rp->free();
|
|
+ unset($rp);
|
|
hunk ./lib/omb.php 142
|
|
- return true;
|
|
+ return true;
|
|
hunk ./lib/omb.php 146
|
|
- return omb_post_notice_keys($notice, $remote_profile->postnoticeurl, $subscription->token, $subscription->secret);
|
|
+ return omb_post_notice_keys($notice, $remote_profile->postnoticeurl, $subscription->token, $subscription->secret);
|
|
hunk ./lib/omb.php 151
|
|
- common_debug('Posting notice ' . $notice->id . ' to ' . $postnoticeurl, __FILE__);
|
|
+ common_debug('Posting notice ' . $notice->id . ' to ' . $postnoticeurl, __FILE__);
|
|
hunk ./lib/omb.php 153
|
|
- $user = User::staticGet('id', $notice->profile_id);
|
|
+ $user = User::staticGet('id', $notice->profile_id);
|
|
hunk ./lib/omb.php 155
|
|
- if (!$user) {
|
|
- common_debug('Failed to get user for notice ' . $notice->id . ', profile = ' . $notice->profile_id, __FILE__);
|
|
- return false;
|
|
- }
|
|
+ if (!$user) {
|
|
+ common_debug('Failed to get user for notice ' . $notice->id . ', profile = ' . $notice->profile_id, __FILE__);
|
|
+ return false;
|
|
+ }
|
|
hunk ./lib/omb.php 160
|
|
- $con = omb_oauth_consumer();
|
|
+ $con = omb_oauth_consumer();
|
|
hunk ./lib/omb.php 162
|
|
- $token = new OAuthToken($tk, $secret);
|
|
+ $token = new OAuthToken($tk, $secret);
|
|
hunk ./lib/omb.php 164
|
|
- $url = $postnoticeurl;
|
|
- $parsed = parse_url($url);
|
|
- $params = array();
|
|
- parse_str($parsed['query'], $params);
|
|
+ $url = $postnoticeurl;
|
|
+ $parsed = parse_url($url);
|
|
+ $params = array();
|
|
+ parse_str($parsed['query'], $params);
|
|
hunk ./lib/omb.php 169
|
|
- $req = OAuthRequest::from_consumer_and_token($con, $token,
|
|
- 'POST', $url, $params);
|
|
+ $req = OAuthRequest::from_consumer_and_token($con, $token,
|
|
+ 'POST', $url, $params);
|
|
hunk ./lib/omb.php 172
|
|
- $req->set_parameter('omb_version', OMB_VERSION_01);
|
|
- $req->set_parameter('omb_listenee', $user->uri);
|
|
- $req->set_parameter('omb_notice', $notice->uri);
|
|
- $req->set_parameter('omb_notice_content', $notice->content);
|
|
- $req->set_parameter('omb_notice_url', common_local_url('shownotice',
|
|
- array('notice' =>
|
|
- $notice->id)));
|
|
- $req->set_parameter('omb_notice_license', common_config('license', 'url'));
|
|
+ $req->set_parameter('omb_version', OMB_VERSION_01);
|
|
+ $req->set_parameter('omb_listenee', $user->uri);
|
|
+ $req->set_parameter('omb_notice', $notice->uri);
|
|
+ $req->set_parameter('omb_notice_content', $notice->content);
|
|
+ $req->set_parameter('omb_notice_url', common_local_url('shownotice',
|
|
+ array('notice' =>
|
|
+ $notice->id)));
|
|
+ $req->set_parameter('omb_notice_license', common_config('license', 'url'));
|
|
hunk ./lib/omb.php 181
|
|
- $user->free();
|
|
- unset($user);
|
|
+ $user->free();
|
|
+ unset($user);
|
|
hunk ./lib/omb.php 184
|
|
- $req->sign_request(omb_hmac_sha1(), $con, $token);
|
|
+ $req->sign_request(omb_hmac_sha1(), $con, $token);
|
|
hunk ./lib/omb.php 186
|
|
- # We re-use this tool's fetcher, since it's pretty good
|
|
+ # We re-use this tool's fetcher, since it's pretty good
|
|
hunk ./lib/omb.php 188
|
|
- $fetcher = Auth_Yadis_Yadis::getHTTPFetcher();
|
|
+ $fetcher = Auth_Yadis_Yadis::getHTTPFetcher();
|
|
hunk ./lib/omb.php 190
|
|
- if (!$fetcher) {
|
|
- common_log(LOG_WARNING, 'Failed to initialize Yadis fetcher.', __FILE__);
|
|
- return false;
|
|
- }
|
|
+ if (!$fetcher) {
|
|
+ common_log(LOG_WARNING, 'Failed to initialize Yadis fetcher.', __FILE__);
|
|
+ return false;
|
|
+ }
|
|
hunk ./lib/omb.php 195
|
|
- $result = $fetcher->post($req->get_normalized_http_url(),
|
|
- $req->to_postdata(),
|
|
+ $result = $fetcher->post($req->get_normalized_http_url(),
|
|
+ $req->to_postdata(),
|
|
hunk ./lib/omb.php 199
|
|
- common_debug('Got HTTP result "'.print_r($result,TRUE).'"', __FILE__);
|
|
+ common_debug('Got HTTP result "'.print_r($result,TRUE).'"', __FILE__);
|
|
hunk ./lib/omb.php 201
|
|
- if ($result->status == 403) { # not authorized, don't send again
|
|
- common_debug('403 result, deleting subscription', __FILE__);
|
|
- # FIXME: figure out how to delete this
|
|
- # $subscription->delete();
|
|
- return false;
|
|
- } else if ($result->status != 200) {
|
|
- common_debug('Error status '.$result->status, __FILE__);
|
|
- return false;
|
|
- } else { # success!
|
|
- parse_str($result->body, $return);
|
|
- if ($return['omb_version'] == OMB_VERSION_01) {
|
|
- return true;
|
|
- } else {
|
|
- return false;
|
|
- }
|
|
- }
|
|
+ if ($result->status == 403) { # not authorized, don't send again
|
|
+ common_debug('403 result, deleting subscription', __FILE__);
|
|
+ # FIXME: figure out how to delete this
|
|
+ # $subscription->delete();
|
|
+ return false;
|
|
+ } else if ($result->status != 200) {
|
|
+ common_debug('Error status '.$result->status, __FILE__);
|
|
+ return false;
|
|
+ } else { # success!
|
|
+ parse_str($result->body, $return);
|
|
+ if ($return['omb_version'] == OMB_VERSION_01) {
|
|
+ return true;
|
|
+ } else {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
hunk ./lib/omb.php 220
|
|
- # First, get remote users subscribed to this profile
|
|
- # XXX: use a join here rather than looping through results
|
|
- $sub = new Subscription();
|
|
- $sub->subscribed = $profile->id;
|
|
- if ($sub->find()) {
|
|
- $updated = array();
|
|
- while ($sub->fetch()) {
|
|
- $rp = Remote_profile::staticGet('id', $sub->subscriber);
|
|
- if ($rp) {
|
|
- if (!$updated[$rp->updateprofileurl]) {
|
|
- if (omb_update_profile($profile, $rp, $sub)) {
|
|
- $updated[$rp->updateprofileurl] = TRUE;
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
+ # First, get remote users subscribed to this profile
|
|
+ # XXX: use a join here rather than looping through results
|
|
+ $sub = new Subscription();
|
|
+ $sub->subscribed = $profile->id;
|
|
+ if ($sub->find()) {
|
|
+ $updated = array();
|
|
+ while ($sub->fetch()) {
|
|
+ $rp = Remote_profile::staticGet('id', $sub->subscriber);
|
|
+ if ($rp) {
|
|
+ if (!$updated[$rp->updateprofileurl]) {
|
|
+ if (omb_update_profile($profile, $rp, $sub)) {
|
|
+ $updated[$rp->updateprofileurl] = TRUE;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
hunk ./lib/omb.php 240
|
|
- global $config; # for license URL
|
|
- $user = User::staticGet($profile->id);
|
|
- $con = omb_oauth_consumer();
|
|
- $token = new OAuthToken($subscription->token, $subscription->secret);
|
|
- $url = $remote_profile->updateprofileurl;
|
|
- $parsed = parse_url($url);
|
|
- $params = array();
|
|
- parse_str($parsed['query'], $params);
|
|
- $req = OAuthRequest::from_consumer_and_token($con, $token,
|
|
- "POST", $url, $params);
|
|
- $req->set_parameter('omb_version', OMB_VERSION_01);
|
|
- $req->set_parameter('omb_listenee', $user->uri);
|
|
- $req->set_parameter('omb_listenee_profile', common_profile_url($profile->nickname));
|
|
- $req->set_parameter('omb_listenee_nickname', $profile->nickname);
|
|
+ global $config; # for license URL
|
|
+ $user = User::staticGet($profile->id);
|
|
+ $con = omb_oauth_consumer();
|
|
+ $token = new OAuthToken($subscription->token, $subscription->secret);
|
|
+ $url = $remote_profile->updateprofileurl;
|
|
+ $parsed = parse_url($url);
|
|
+ $params = array();
|
|
+ parse_str($parsed['query'], $params);
|
|
+ $req = OAuthRequest::from_consumer_and_token($con, $token,
|
|
+ "POST", $url, $params);
|
|
+ $req->set_parameter('omb_version', OMB_VERSION_01);
|
|
+ $req->set_parameter('omb_listenee', $user->uri);
|
|
+ $req->set_parameter('omb_listenee_profile', common_profile_url($profile->nickname));
|
|
+ $req->set_parameter('omb_listenee_nickname', $profile->nickname);
|
|
hunk ./lib/omb.php 255
|
|
- # We use blanks to force emptying any existing values in these optional fields
|
|
+ # We use blanks to force emptying any existing values in these optional fields
|
|
hunk ./lib/omb.php 257
|
|
- $req->set_parameter('omb_listenee_fullname',
|
|
- ($profile->fullname) ? $profile->fullname : '');
|
|
- $req->set_parameter('omb_listenee_homepage',
|
|
- ($profile->homepage) ? $profile->homepage : '');
|
|
- $req->set_parameter('omb_listenee_bio',
|
|
- ($profile->bio) ? $profile->bio : '');
|
|
- $req->set_parameter('omb_listenee_location',
|
|
- ($profile->location) ? $profile->location : '');
|
|
+ $req->set_parameter('omb_listenee_fullname',
|
|
+ ($profile->fullname) ? $profile->fullname : '');
|
|
+ $req->set_parameter('omb_listenee_homepage',
|
|
+ ($profile->homepage) ? $profile->homepage : '');
|
|
+ $req->set_parameter('omb_listenee_bio',
|
|
+ ($profile->bio) ? $profile->bio : '');
|
|
+ $req->set_parameter('omb_listenee_location',
|
|
+ ($profile->location) ? $profile->location : '');
|
|
hunk ./lib/omb.php 266
|
|
- $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE);
|
|
- $req->set_parameter('omb_listenee_avatar',
|
|
- ($avatar) ? $avatar->url : '');
|
|
+ $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE);
|
|
+ $req->set_parameter('omb_listenee_avatar',
|
|
+ ($avatar) ? $avatar->url : '');
|
|
hunk ./lib/omb.php 270
|
|
- $req->sign_request(omb_hmac_sha1(), $con, $token);
|
|
+ $req->sign_request(omb_hmac_sha1(), $con, $token);
|
|
hunk ./lib/omb.php 272
|
|
- # We re-use this tool's fetcher, since it's pretty good
|
|
+ # We re-use this tool's fetcher, since it's pretty good
|
|
hunk ./lib/omb.php 274
|
|
- $fetcher = Auth_Yadis_Yadis::getHTTPFetcher();
|
|
+ $fetcher = Auth_Yadis_Yadis::getHTTPFetcher();
|
|
hunk ./lib/omb.php 276
|
|
- common_debug('request URL = '.$req->get_normalized_http_url(), __FILE__);
|
|
- common_debug('postdata = '.$req->to_postdata(), __FILE__);
|
|
- $result = $fetcher->post($req->get_normalized_http_url(),
|
|
- $req->to_postdata(),
|
|
+ common_debug('request URL = '.$req->get_normalized_http_url(), __FILE__);
|
|
+ common_debug('postdata = '.$req->to_postdata(), __FILE__);
|
|
+ $result = $fetcher->post($req->get_normalized_http_url(),
|
|
+ $req->to_postdata(),
|
|
hunk ./lib/omb.php 282
|
|
- common_debug('Got HTTP result "'.print_r($result,TRUE).'"', __FILE__);
|
|
+ common_debug('Got HTTP result "'.print_r($result,TRUE).'"', __FILE__);
|
|
hunk ./lib/omb.php 284
|
|
- if ($result->status == 403) { # not authorized, don't send again
|
|
- common_debug('403 result, deleting subscription', __FILE__);
|
|
- $subscription->delete();
|
|
- return false;
|
|
- } else if ($result->status != 200) {
|
|
- common_debug('Error status '.$result->status, __FILE__);
|
|
- return false;
|
|
- } else { # success!
|
|
- parse_str($result->body, $return);
|
|
- if ($return['omb_version'] == OMB_VERSION_01) {
|
|
- return true;
|
|
- } else {
|
|
- return false;
|
|
- }
|
|
- }
|
|
+ if ($result->status == 403) { # not authorized, don't send again
|
|
+ common_debug('403 result, deleting subscription', __FILE__);
|
|
+ $subscription->delete();
|
|
+ return false;
|
|
+ } else if ($result->status != 200) {
|
|
+ common_debug('Error status '.$result->status, __FILE__);
|
|
+ return false;
|
|
+ } else { # success!
|
|
+ parse_str($result->body, $return);
|
|
+ if ($return['omb_version'] == OMB_VERSION_01) {
|
|
+ return true;
|
|
+ } else {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
hunk ./lib/openid.php 36
|
|
- if (!$store) {
|
|
- # Can't be called statically
|
|
- $user = new User();
|
|
- $conn = $user->getDatabaseConnection();
|
|
- $store = new Auth_OpenID_MySQLStore($conn);
|
|
- }
|
|
- return $store;
|
|
+ if (!$store) {
|
|
+ # Can't be called statically
|
|
+ $user = new User();
|
|
+ $conn = $user->getDatabaseConnection();
|
|
+ $store = new Auth_OpenID_MySQLStore($conn);
|
|
+ }
|
|
+ return $store;
|
|
hunk ./lib/openid.php 46
|
|
- $store = oid_store();
|
|
- $consumer = new Auth_OpenID_Consumer($store);
|
|
- return $consumer;
|
|
+ $store = oid_store();
|
|
+ $consumer = new Auth_OpenID_Consumer($store);
|
|
+ return $consumer;
|
|
hunk ./lib/openid.php 52
|
|
- oid_set_last('');
|
|
+ oid_set_last('');
|
|
hunk ./lib/openid.php 56
|
|
- common_set_cookie(OPENID_COOKIE_KEY,
|
|
- $openid_url,
|
|
- time() + OPENID_COOKIE_EXPIRY);
|
|
+ common_set_cookie(OPENID_COOKIE_KEY,
|
|
+ $openid_url,
|
|
+ time() + OPENID_COOKIE_EXPIRY);
|
|
hunk ./lib/openid.php 62
|
|
- $openid_url = $_COOKIE[OPENID_COOKIE_KEY];
|
|
- if ($openid_url && strlen($openid_url) > 0) {
|
|
- return $openid_url;
|
|
- } else {
|
|
- return NULL;
|
|
- }
|
|
+ $openid_url = $_COOKIE[OPENID_COOKIE_KEY];
|
|
+ if ($openid_url && strlen($openid_url) > 0) {
|
|
+ return $openid_url;
|
|
+ } else {
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./lib/openid.php 72
|
|
- $oid = new User_openid();
|
|
- $oid->user_id = $id;
|
|
- $oid->canonical = $canonical;
|
|
- $oid->display = $display;
|
|
- $oid->created = DB_DataObject_Cast::dateTime();
|
|
+ $oid = new User_openid();
|
|
+ $oid->user_id = $id;
|
|
+ $oid->canonical = $canonical;
|
|
+ $oid->display = $display;
|
|
+ $oid->created = DB_DataObject_Cast::dateTime();
|
|
hunk ./lib/openid.php 78
|
|
- if (!$oid->insert()) {
|
|
- $err = PEAR::getStaticProperty('DB_DataObject','lastError');
|
|
- common_debug('DB error ' . $err->code . ': ' . $err->message, __FILE__);
|
|
- return false;
|
|
- }
|
|
+ if (!$oid->insert()) {
|
|
+ $err = PEAR::getStaticProperty('DB_DataObject','lastError');
|
|
+ common_debug('DB error ' . $err->code . ': ' . $err->message, __FILE__);
|
|
+ return false;
|
|
+ }
|
|
hunk ./lib/openid.php 84
|
|
- return true;
|
|
+ return true;
|
|
hunk ./lib/openid.php 88
|
|
- $user = NULL;
|
|
- $oid = User_openid::staticGet('canonical', $openid_url);
|
|
- if ($oid) {
|
|
- $user = User::staticGet('id', $oid->user_id);
|
|
- }
|
|
- return $user;
|
|
+ $user = NULL;
|
|
+ $oid = User_openid::staticGet('canonical', $openid_url);
|
|
+ if ($oid) {
|
|
+ $user = User::staticGet('id', $oid->user_id);
|
|
+ }
|
|
+ return $user;
|
|
hunk ./lib/openid.php 97
|
|
- if (!$backto) {
|
|
- $action = $_REQUEST['action'];
|
|
- $args = common_copy_args($_GET);
|
|
- unset($args['action']);
|
|
- $backto = common_local_url($action, $args);
|
|
- }
|
|
- common_debug('going back to "' . $backto . '"', __FILE__);
|
|
+ if (!$backto) {
|
|
+ $action = $_REQUEST['action'];
|
|
+ $args = common_copy_args($_GET);
|
|
+ unset($args['action']);
|
|
+ $backto = common_local_url($action, $args);
|
|
+ }
|
|
+ common_debug('going back to "' . $backto . '"', __FILE__);
|
|
hunk ./lib/openid.php 105
|
|
- common_ensure_session();
|
|
+ common_ensure_session();
|
|
hunk ./lib/openid.php 107
|
|
- $_SESSION['openid_immediate_backto'] = $backto;
|
|
- common_debug('passed-in variable is "' . $backto . '"', __FILE__);
|
|
- common_debug('session variable is "' . $_SESSION['openid_immediate_backto'] . '"', __FILE__);
|
|
+ $_SESSION['openid_immediate_backto'] = $backto;
|
|
+ common_debug('passed-in variable is "' . $backto . '"', __FILE__);
|
|
+ common_debug('session variable is "' . $_SESSION['openid_immediate_backto'] . '"', __FILE__);
|
|
hunk ./lib/openid.php 111
|
|
- oid_authenticate($openid_url,
|
|
- 'finishimmediate',
|
|
- true);
|
|
+ oid_authenticate($openid_url,
|
|
+ 'finishimmediate',
|
|
+ true);
|
|
hunk ./lib/openid.php 118
|
|
- $consumer = oid_consumer();
|
|
+ $consumer = oid_consumer();
|
|
hunk ./lib/openid.php 120
|
|
- if (!$consumer) {
|
|
- common_server_error(_('Cannot instantiate OpenID consumer object.'));
|
|
- return false;
|
|
- }
|
|
+ if (!$consumer) {
|
|
+ common_server_error(_('Cannot instantiate OpenID consumer object.'));
|
|
+ return false;
|
|
+ }
|
|
hunk ./lib/openid.php 125
|
|
- common_ensure_session();
|
|
+ common_ensure_session();
|
|
hunk ./lib/openid.php 127
|
|
- $auth_request = $consumer->begin($openid_url);
|
|
+ $auth_request = $consumer->begin($openid_url);
|
|
hunk ./lib/openid.php 129
|
|
- // Handle failure status return values.
|
|
- if (!$auth_request) {
|
|
- return _('Not a valid OpenID.');
|
|
- } else if (Auth_OpenID::isFailure($auth_request)) {
|
|
- return sprintf(_('OpenID failure: %s'), $auth_request->message);
|
|
- }
|
|
+ // Handle failure status return values.
|
|
+ if (!$auth_request) {
|
|
+ return _('Not a valid OpenID.');
|
|
+ } else if (Auth_OpenID::isFailure($auth_request)) {
|
|
+ return sprintf(_('OpenID failure: %s'), $auth_request->message);
|
|
+ }
|
|
hunk ./lib/openid.php 136
|
|
- $sreg_request = Auth_OpenID_SRegRequest::build(// Required
|
|
- array(),
|
|
- // Optional
|
|
- array('nickname',
|
|
- 'email',
|
|
- 'fullname',
|
|
- 'language',
|
|
- 'timezone',
|
|
- 'postcode',
|
|
- 'country'));
|
|
+ $sreg_request = Auth_OpenID_SRegRequest::build(// Required
|
|
+ array(),
|
|
+ // Optional
|
|
+ array('nickname',
|
|
+ 'email',
|
|
+ 'fullname',
|
|
+ 'language',
|
|
+ 'timezone',
|
|
+ 'postcode',
|
|
+ 'country'));
|
|
hunk ./lib/openid.php 147
|
|
- if ($sreg_request) {
|
|
- $auth_request->addExtension($sreg_request);
|
|
- }
|
|
+ if ($sreg_request) {
|
|
+ $auth_request->addExtension($sreg_request);
|
|
+ }
|
|
hunk ./lib/openid.php 151
|
|
- $trust_root = common_local_url('public');
|
|
- $process_url = common_local_url($returnto);
|
|
+ $trust_root = common_local_url('public');
|
|
+ $process_url = common_local_url($returnto);
|
|
hunk ./lib/openid.php 154
|
|
- if ($auth_request->shouldSendRedirect()) {
|
|
- $redirect_url = $auth_request->redirectURL($trust_root,
|
|
- $process_url,
|
|
- $immediate);
|
|
- if (!$redirect_url) {
|
|
- } else if (Auth_OpenID::isFailure($redirect_url)) {
|
|
- return sprintf(_('Could not redirect to server: %s'), $redirect_url->message);
|
|
- } else {
|
|
- common_redirect($redirect_url);
|
|
- }
|
|
- } else {
|
|
- // Generate form markup and render it.
|
|
- $form_id = 'openid_message';
|
|
- $form_html = $auth_request->formMarkup($trust_root, $process_url,
|
|
- $immediate, array('id' => $form_id));
|
|
+ if ($auth_request->shouldSendRedirect()) {
|
|
+ $redirect_url = $auth_request->redirectURL($trust_root,
|
|
+ $process_url,
|
|
+ $immediate);
|
|
+ if (!$redirect_url) {
|
|
+ } else if (Auth_OpenID::isFailure($redirect_url)) {
|
|
+ return sprintf(_('Could not redirect to server: %s'), $redirect_url->message);
|
|
+ } else {
|
|
+ common_redirect($redirect_url);
|
|
+ }
|
|
+ } else {
|
|
+ // Generate form markup and render it.
|
|
+ $form_id = 'openid_message';
|
|
+ $form_html = $auth_request->formMarkup($trust_root, $process_url,
|
|
+ $immediate, array('id' => $form_id));
|
|
hunk ./lib/openid.php 170
|
|
- # XXX: This is cheap, but things choke if we don't escape ampersands
|
|
- # in the HTML attributes
|
|
+ # XXX: This is cheap, but things choke if we don't escape ampersands
|
|
+ # in the HTML attributes
|
|
hunk ./lib/openid.php 173
|
|
- $form_html = preg_replace('/&/', '&', $form_html);
|
|
+ $form_html = preg_replace('/&/', '&', $form_html);
|
|
hunk ./lib/openid.php 175
|
|
- // Display an error if the form markup couldn't be generated;
|
|
- // otherwise, render the HTML.
|
|
- if (Auth_OpenID::isFailure($form_html)) {
|
|
- $this->show_form(sprintf(_('Could not create OpenID form: %s'), $form_html->message));
|
|
- } else {
|
|
- common_show_header(_('OpenID Auto-Submit'), NULL, NULL, '_oid_print_instructions');
|
|
- common_raw($form_html);
|
|
- common_element('script', NULL,
|
|
- '$(document).ready(function() { ' .
|
|
- ' $("#'. $form_id .'").submit(); '.
|
|
- '});');
|
|
- common_show_footer();
|
|
- }
|
|
- }
|
|
+ // Display an error if the form markup couldn't be generated;
|
|
+ // otherwise, render the HTML.
|
|
+ if (Auth_OpenID::isFailure($form_html)) {
|
|
+ $this->show_form(sprintf(_('Could not create OpenID form: %s'), $form_html->message));
|
|
+ } else {
|
|
+ common_show_header(_('OpenID Auto-Submit'), NULL, NULL, '_oid_print_instructions');
|
|
+ common_raw($form_html);
|
|
+ common_element('script', NULL,
|
|
+ '$(document).ready(function() { ' .
|
|
+ ' $("#'. $form_id .'").submit(); '.
|
|
+ '});');
|
|
+ common_show_footer();
|
|
+ }
|
|
+ }
|
|
hunk ./lib/openid.php 194
|
|
- common_element('div', 'instructions',
|
|
- _('This form should automatically submit itself. '.
|
|
- 'If not, click the submit button to go to your '.
|
|
- 'OpenID provider.'));
|
|
+ common_element('div', 'instructions',
|
|
+ _('This form should automatically submit itself. '.
|
|
+ 'If not, click the submit button to go to your '.
|
|
+ 'OpenID provider.'));
|
|
hunk ./lib/openid.php 204
|
|
- $profile = $user->getProfile();
|
|
+ $profile = $user->getProfile();
|
|
hunk ./lib/openid.php 206
|
|
- $orig_profile = clone($profile);
|
|
+ $orig_profile = clone($profile);
|
|
hunk ./lib/openid.php 208
|
|
- if ($sreg['fullname'] && strlen($sreg['fullname']) <= 255) {
|
|
- $profile->fullname = $sreg['fullname'];
|
|
- }
|
|
+ if ($sreg['fullname'] && strlen($sreg['fullname']) <= 255) {
|
|
+ $profile->fullname = $sreg['fullname'];
|
|
+ }
|
|
hunk ./lib/openid.php 212
|
|
- if ($sreg['country']) {
|
|
- if ($sreg['postcode']) {
|
|
- # XXX: use postcode to get city and region
|
|
- # XXX: also, store postcode somewhere -- it's valuable!
|
|
- $profile->location = $sreg['postcode'] . ', ' . $sreg['country'];
|
|
- } else {
|
|
- $profile->location = $sreg['country'];
|
|
- }
|
|
- }
|
|
+ if ($sreg['country']) {
|
|
+ if ($sreg['postcode']) {
|
|
+ # XXX: use postcode to get city and region
|
|
+ # XXX: also, store postcode somewhere -- it's valuable!
|
|
+ $profile->location = $sreg['postcode'] . ', ' . $sreg['country'];
|
|
+ } else {
|
|
+ $profile->location = $sreg['country'];
|
|
+ }
|
|
+ }
|
|
hunk ./lib/openid.php 222
|
|
- # XXX save language if it's passed
|
|
- # XXX save timezone if it's passed
|
|
+ # XXX save language if it's passed
|
|
+ # XXX save timezone if it's passed
|
|
hunk ./lib/openid.php 225
|
|
- if (!$profile->update($orig_profile)) {
|
|
- common_server_error(_('Error saving the profile.'));
|
|
- return false;
|
|
- }
|
|
+ if (!$profile->update($orig_profile)) {
|
|
+ common_server_error(_('Error saving the profile.'));
|
|
+ return false;
|
|
+ }
|
|
hunk ./lib/openid.php 230
|
|
- $orig_user = clone($user);
|
|
+ $orig_user = clone($user);
|
|
hunk ./lib/openid.php 232
|
|
- if ($sreg['email'] && Validate::email($sreg['email'], true)) {
|
|
- $user->email = $sreg['email'];
|
|
- }
|
|
+ if ($sreg['email'] && Validate::email($sreg['email'], true)) {
|
|
+ $user->email = $sreg['email'];
|
|
+ }
|
|
hunk ./lib/openid.php 236
|
|
- if (!$user->update($orig_user)) {
|
|
- common_server_error(_('Error saving the user.'));
|
|
- return false;
|
|
- }
|
|
+ if (!$user->update($orig_user)) {
|
|
+ common_server_error(_('Error saving the user.'));
|
|
+ return false;
|
|
+ }
|
|
hunk ./lib/openid.php 241
|
|
- return true;
|
|
+ return true;
|
|
hunk ./lib/personal.php 23
|
|
-
|
|
- function is_readonly() {
|
|
- return true;
|
|
- }
|
|
-
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
- common_set_returnto($this->self_url());
|
|
- }
|
|
+
|
|
+ function is_readonly() {
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
+ common_set_returnto($this->self_url());
|
|
+ }
|
|
hunk ./lib/personal.php 33
|
|
- function views_menu() {
|
|
+ function views_menu() {
|
|
hunk ./lib/personal.php 35
|
|
- $user = NULL;
|
|
- $action = $this->trimmed('action');
|
|
- $nickname = $this->trimmed('nickname');
|
|
+ $user = NULL;
|
|
+ $action = $this->trimmed('action');
|
|
+ $nickname = $this->trimmed('nickname');
|
|
hunk ./lib/personal.php 39
|
|
- if ($nickname) {
|
|
- $user = User::staticGet('nickname', $nickname);
|
|
- $user_profile = $user->getProfile();
|
|
- } else {
|
|
- $user_profile = false;
|
|
- }
|
|
+ if ($nickname) {
|
|
+ $user = User::staticGet('nickname', $nickname);
|
|
+ $user_profile = $user->getProfile();
|
|
+ } else {
|
|
+ $user_profile = false;
|
|
+ }
|
|
hunk ./lib/personal.php 46
|
|
- common_element_start('ul', array('id' => 'nav_views'));
|
|
+ common_element_start('ul', array('id' => 'nav_views'));
|
|
hunk ./lib/personal.php 48
|
|
- common_menu_item(common_local_url('all', array('nickname' =>
|
|
- $nickname)),
|
|
- _('Personal'),
|
|
- sprintf(_('%s and friends'), (($user_profile && $user_profile->fullname) ? $user_profile->fullname : $nickname)),
|
|
- $action == 'all');
|
|
- common_menu_item(common_local_url('replies', array('nickname' =>
|
|
- $nickname)),
|
|
- _('Replies'),
|
|
- sprintf(_('Replies to %s'), (($user_profile && $user_profile->fullname) ? $user_profile->fullname : $nickname)),
|
|
- $action == 'replies');
|
|
- common_menu_item(common_local_url('showstream', array('nickname' =>
|
|
- $nickname)),
|
|
- _('Profile'),
|
|
- ($user_profile && $user_profile->fullname) ? $user_profile->fullname : $nickname,
|
|
- $action == 'showstream');
|
|
- common_menu_item(common_local_url('showfavorites', array('nickname' =>
|
|
- $nickname)),
|
|
- _('Favorites'),
|
|
- sprintf(_('%s\'s favorite notices'), ($user_profile) ? $user_profile->getBestName() : _('User')),
|
|
- $action == 'showfavorites');
|
|
-
|
|
- $cur = common_current_user();
|
|
-
|
|
- if ($cur && $cur->id == $user->id) {
|
|
-
|
|
- common_menu_item(common_local_url('inbox', array('nickname' =>
|
|
- $nickname)),
|
|
- _('Inbox'),
|
|
- _('Your incoming messages'),
|
|
- $action == 'inbox');
|
|
- common_menu_item(common_local_url('outbox', array('nickname' =>
|
|
- $nickname)),
|
|
- _('Outbox'),
|
|
- _('Your sent messages'),
|
|
- $action == 'outbox');
|
|
- }
|
|
-
|
|
- common_element_end('ul');
|
|
- }
|
|
+ common_menu_item(common_local_url('all', array('nickname' =>
|
|
+ $nickname)),
|
|
+ _('Personal'),
|
|
+ sprintf(_('%s and friends'), (($user_profile && $user_profile->fullname) ? $user_profile->fullname : $nickname)),
|
|
+ $action == 'all');
|
|
+ common_menu_item(common_local_url('replies', array('nickname' =>
|
|
+ $nickname)),
|
|
+ _('Replies'),
|
|
+ sprintf(_('Replies to %s'), (($user_profile && $user_profile->fullname) ? $user_profile->fullname : $nickname)),
|
|
+ $action == 'replies');
|
|
+ common_menu_item(common_local_url('showstream', array('nickname' =>
|
|
+ $nickname)),
|
|
+ _('Profile'),
|
|
+ ($user_profile && $user_profile->fullname) ? $user_profile->fullname : $nickname,
|
|
+ $action == 'showstream');
|
|
+ common_menu_item(common_local_url('showfavorites', array('nickname' =>
|
|
+ $nickname)),
|
|
+ _('Favorites'),
|
|
+ sprintf(_('%s\'s favorite notices'), ($user_profile) ? $user_profile->getBestName() : _('User')),
|
|
+ $action == 'showfavorites');
|
|
+
|
|
+ $cur = common_current_user();
|
|
+
|
|
+ if ($cur && $cur->id == $user->id) {
|
|
+
|
|
+ common_menu_item(common_local_url('inbox', array('nickname' =>
|
|
+ $nickname)),
|
|
+ _('Inbox'),
|
|
+ _('Your incoming messages'),
|
|
+ $action == 'inbox');
|
|
+ common_menu_item(common_local_url('outbox', array('nickname' =>
|
|
+ $nickname)),
|
|
+ _('Outbox'),
|
|
+ _('Your sent messages'),
|
|
+ $action == 'outbox');
|
|
+ }
|
|
+
|
|
+ common_element_end('ul');
|
|
+ }
|
|
hunk ./lib/personal.php 88
|
|
- function show_feeds_list($feeds) {
|
|
- common_element_start('div', array('class' => 'feeds'));
|
|
- common_element('p', null, 'Feeds:');
|
|
- common_element_start('ul', array('class' => 'xoxo'));
|
|
+ function show_feeds_list($feeds) {
|
|
+ common_element_start('div', array('class' => 'feeds'));
|
|
+ common_element('p', null, 'Feeds:');
|
|
+ common_element_start('ul', array('class' => 'xoxo'));
|
|
hunk ./lib/personal.php 93
|
|
- foreach ($feeds as $key => $value) {
|
|
- $this->common_feed_item($feeds[$key]);
|
|
- }
|
|
- common_element_end('ul');
|
|
- common_element_end('div');
|
|
- }
|
|
+ foreach ($feeds as $key => $value) {
|
|
+ $this->common_feed_item($feeds[$key]);
|
|
+ }
|
|
+ common_element_end('ul');
|
|
+ common_element_end('div');
|
|
+ }
|
|
hunk ./lib/personal.php 100
|
|
- function common_feed_item($feed) {
|
|
- $nickname = $this->trimmed('nickname');
|
|
+ function common_feed_item($feed) {
|
|
+ $nickname = $this->trimmed('nickname');
|
|
hunk ./lib/personal.php 103
|
|
- switch($feed['item']) {
|
|
- case 'notices': default:
|
|
- $feed_classname = $feed['type'];
|
|
- $feed_mimetype = "application/".$feed['type']."+xml";
|
|
- $feed_title = "$nickname's ".$feed['version']." notice feed";
|
|
- $feed['textContent'] = "RSS";
|
|
- break;
|
|
+ switch($feed['item']) {
|
|
+ case 'notices': default:
|
|
+ $feed_classname = $feed['type'];
|
|
+ $feed_mimetype = "application/".$feed['type']."+xml";
|
|
+ $feed_title = "$nickname's ".$feed['version']." notice feed";
|
|
+ $feed['textContent'] = "RSS";
|
|
+ break;
|
|
hunk ./lib/personal.php 111
|
|
- case 'allrss':
|
|
- $feed_classname = $feed['type'];
|
|
- $feed_mimetype = "application/".$feed['type']."+xml";
|
|
- $feed_title = $feed['version']." feed for $nickname and friends";
|
|
- $feed['textContent'] = "RSS";
|
|
- break;
|
|
+ case 'allrss':
|
|
+ $feed_classname = $feed['type'];
|
|
+ $feed_mimetype = "application/".$feed['type']."+xml";
|
|
+ $feed_title = $feed['version']." feed for $nickname and friends";
|
|
+ $feed['textContent'] = "RSS";
|
|
+ break;
|
|
hunk ./lib/personal.php 118
|
|
- case 'repliesrss':
|
|
- $feed_classname = $feed['type'];
|
|
- $feed_mimetype = "application/".$feed['type']."+xml";
|
|
- $feed_title = $feed['version']." feed for replies to $nickname";
|
|
- $feed['textContent'] = "RSS";
|
|
- break;
|
|
+ case 'repliesrss':
|
|
+ $feed_classname = $feed['type'];
|
|
+ $feed_mimetype = "application/".$feed['type']."+xml";
|
|
+ $feed_title = $feed['version']." feed for replies to $nickname";
|
|
+ $feed['textContent'] = "RSS";
|
|
+ break;
|
|
hunk ./lib/personal.php 125
|
|
- case 'publicrss':
|
|
- $feed_classname = $feed['type'];
|
|
- $feed_mimetype = "application/".$feed['type']."+xml";
|
|
- $feed_title = "Public timeline ".$feed['version']." feed";
|
|
- $feed['textContent'] = "RSS";
|
|
- break;
|
|
+ case 'publicrss':
|
|
+ $feed_classname = $feed['type'];
|
|
+ $feed_mimetype = "application/".$feed['type']."+xml";
|
|
+ $feed_title = "Public timeline ".$feed['version']." feed";
|
|
+ $feed['textContent'] = "RSS";
|
|
+ break;
|
|
hunk ./lib/personal.php 132
|
|
- case 'publicatom':
|
|
- $feed_classname = "atom";
|
|
- $feed_mimetype = "application/".$feed['type']."+xml";
|
|
- $feed_title = "Public timeline ".$feed['version']." feed";
|
|
- $feed['textContent'] = "Atom";
|
|
- break;
|
|
+ case 'publicatom':
|
|
+ $feed_classname = "atom";
|
|
+ $feed_mimetype = "application/".$feed['type']."+xml";
|
|
+ $feed_title = "Public timeline ".$feed['version']." feed";
|
|
+ $feed['textContent'] = "Atom";
|
|
+ break;
|
|
hunk ./lib/personal.php 139
|
|
- case 'tagrss':
|
|
- $feed_classname = $feed['type'];
|
|
- $feed_mimetype = "application/".$feed['type']."+xml";
|
|
- $feed_title = $feed['version']." feed for this tag";
|
|
- $feed['textContent'] = "RSS";
|
|
- break;
|
|
+ case 'tagrss':
|
|
+ $feed_classname = $feed['type'];
|
|
+ $feed_mimetype = "application/".$feed['type']."+xml";
|
|
+ $feed_title = $feed['version']." feed for this tag";
|
|
+ $feed['textContent'] = "RSS";
|
|
+ break;
|
|
hunk ./lib/personal.php 146
|
|
- case 'favoritedrss':
|
|
- $feed_classname = $feed['type'];
|
|
- $feed_mimetype = "application/".$feed['type']."+xml";
|
|
- $feed_title = "Favorited ".$feed['version']." feed";
|
|
- $feed['textContent'] = "RSS";
|
|
- break;
|
|
+ case 'favoritedrss':
|
|
+ $feed_classname = $feed['type'];
|
|
+ $feed_mimetype = "application/".$feed['type']."+xml";
|
|
+ $feed_title = "Favorited ".$feed['version']." feed";
|
|
+ $feed['textContent'] = "RSS";
|
|
+ break;
|
|
hunk ./lib/personal.php 153
|
|
- case 'foaf':
|
|
- $feed_classname = "foaf";
|
|
- $feed_mimetype = "application/".$feed['type']."+xml";
|
|
- $feed_title = "$nickname's FOAF file";
|
|
- $feed['textContent'] = "FOAF";
|
|
- break;
|
|
+ case 'foaf':
|
|
+ $feed_classname = "foaf";
|
|
+ $feed_mimetype = "application/".$feed['type']."+xml";
|
|
+ $feed_title = "$nickname's FOAF file";
|
|
+ $feed['textContent'] = "FOAF";
|
|
+ break;
|
|
hunk ./lib/personal.php 160
|
|
- case 'favoritesrss':
|
|
- $feed_classname = "favorites";
|
|
- $feed_mimetype = "application/".$feed['type']."+xml";
|
|
- $feed_title = "Feed for favorites of $nickname";
|
|
- $feed['textContent'] = "RSS";
|
|
- break;
|
|
+ case 'favoritesrss':
|
|
+ $feed_classname = "favorites";
|
|
+ $feed_mimetype = "application/".$feed['type']."+xml";
|
|
+ $feed_title = "Feed for favorites of $nickname";
|
|
+ $feed['textContent'] = "RSS";
|
|
+ break;
|
|
hunk ./lib/personal.php 167
|
|
- case 'usertimeline':
|
|
- $feed_classname = "atom";
|
|
- $feed_mimetype = "application/".$feed['type']."+xml";
|
|
- $feed_title = "$nickname's ".$feed['version']." notice feed";
|
|
- $feed['textContent'] = "Atom";
|
|
- break;
|
|
- }
|
|
- common_element_start('li');
|
|
- common_element('a', array('href' => $feed['href'],
|
|
- 'class' => $feed_classname,
|
|
- 'type' => $feed_mimetype,
|
|
- 'title' => $feed_title),
|
|
- $feed['textContent']);
|
|
- common_element_end('li');
|
|
- }
|
|
+ case 'usertimeline':
|
|
+ $feed_classname = "atom";
|
|
+ $feed_mimetype = "application/".$feed['type']."+xml";
|
|
+ $feed_title = "$nickname's ".$feed['version']." notice feed";
|
|
+ $feed['textContent'] = "Atom";
|
|
+ break;
|
|
+ }
|
|
+ common_element_start('li');
|
|
+ common_element('a', array('href' => $feed['href'],
|
|
+ 'class' => $feed_classname,
|
|
+ 'type' => $feed_mimetype,
|
|
+ 'title' => $feed_title),
|
|
+ $feed['textContent']);
|
|
+ common_element_end('li');
|
|
+ }
|
|
hunk ./lib/personal.php 183
|
|
-
|
|
- function source_link($source) {
|
|
- $source_name = _($source);
|
|
- switch ($source) {
|
|
- case 'web':
|
|
- case 'xmpp':
|
|
- case 'mail':
|
|
- case 'omb':
|
|
- case 'api':
|
|
- common_element('span', 'noticesource', $source_name);
|
|
- break;
|
|
- default:
|
|
- $ns = Notice_source::staticGet($source);
|
|
- if ($ns) {
|
|
- common_element('a', array('href' => $ns->url),
|
|
- $ns->name);
|
|
- } else {
|
|
- common_element('span', 'noticesource', $source_name);
|
|
- }
|
|
- break;
|
|
- }
|
|
- return;
|
|
- }
|
|
+
|
|
+ function source_link($source) {
|
|
+ $source_name = _($source);
|
|
+ switch ($source) {
|
|
+ case 'web':
|
|
+ case 'xmpp':
|
|
+ case 'mail':
|
|
+ case 'omb':
|
|
+ case 'api':
|
|
+ common_element('span', 'noticesource', $source_name);
|
|
+ break;
|
|
+ default:
|
|
+ $ns = Notice_source::staticGet($source);
|
|
+ if ($ns) {
|
|
+ common_element('a', array('href' => $ns->url),
|
|
+ $ns->name);
|
|
+ } else {
|
|
+ common_element('span', 'noticesource', $source_name);
|
|
+ }
|
|
+ break;
|
|
+ }
|
|
+ return;
|
|
+ }
|
|
hunk ./lib/profilelist.php 27
|
|
- var $profile = NULL;
|
|
- var $owner = NULL;
|
|
- var $action = NULL;
|
|
+ var $profile = NULL;
|
|
+ var $owner = NULL;
|
|
+ var $action = NULL;
|
|
hunk ./lib/profilelist.php 31
|
|
- function __construct($profile, $owner=NULL, $action=NULL) {
|
|
- $this->profile = $profile;
|
|
- $this->owner = $owner;
|
|
- $this->action = $action;
|
|
- }
|
|
+ function __construct($profile, $owner=NULL, $action=NULL) {
|
|
+ $this->profile = $profile;
|
|
+ $this->owner = $owner;
|
|
+ $this->action = $action;
|
|
+ }
|
|
hunk ./lib/profilelist.php 37
|
|
- function show_list() {
|
|
+ function show_list() {
|
|
hunk ./lib/profilelist.php 39
|
|
- common_element_start('ul', array('id' => 'profiles', 'class' => 'profile_list'));
|
|
+ common_element_start('ul', array('id' => 'profiles', 'class' => 'profile_list'));
|
|
hunk ./lib/profilelist.php 41
|
|
- $cnt = 0;
|
|
+ $cnt = 0;
|
|
hunk ./lib/profilelist.php 43
|
|
- while ($this->profile->fetch()) {
|
|
- $cnt++;
|
|
- if($cnt > PROFILES_PER_PAGE) {
|
|
- break;
|
|
- }
|
|
- $this->show();
|
|
- }
|
|
+ while ($this->profile->fetch()) {
|
|
+ $cnt++;
|
|
+ if($cnt > PROFILES_PER_PAGE) {
|
|
+ break;
|
|
+ }
|
|
+ $this->show();
|
|
+ }
|
|
hunk ./lib/profilelist.php 51
|
|
- common_element_end('ul');
|
|
+ common_element_end('ul');
|
|
hunk ./lib/profilelist.php 53
|
|
- return $cnt;
|
|
- }
|
|
+ return $cnt;
|
|
+ }
|
|
hunk ./lib/profilelist.php 56
|
|
- function show() {
|
|
+ function show() {
|
|
hunk ./lib/profilelist.php 58
|
|
- common_element_start('li', array('class' => 'profile_single',
|
|
- 'id' => 'profile-' . $this->profile->id));
|
|
+ common_element_start('li', array('class' => 'profile_single',
|
|
+ 'id' => 'profile-' . $this->profile->id));
|
|
hunk ./lib/profilelist.php 61
|
|
- $user = common_current_user();
|
|
+ $user = common_current_user();
|
|
hunk ./lib/profilelist.php 63
|
|
- if ($user && $user->id != $this->profile->id) {
|
|
- # XXX: special-case for user looking at own
|
|
- # subscriptions page
|
|
- if ($user->isSubscribed($this->profile)) {
|
|
- common_unsubscribe_form($this->profile);
|
|
- } else {
|
|
- common_subscribe_form($this->profile);
|
|
- }
|
|
- }
|
|
+ if ($user && $user->id != $this->profile->id) {
|
|
+ # XXX: special-case for user looking at own
|
|
+ # subscriptions page
|
|
+ if ($user->isSubscribed($this->profile)) {
|
|
+ common_unsubscribe_form($this->profile);
|
|
+ } else {
|
|
+ common_subscribe_form($this->profile);
|
|
+ }
|
|
+ }
|
|
hunk ./lib/profilelist.php 73
|
|
- $avatar = $this->profile->getAvatar(AVATAR_STREAM_SIZE);
|
|
- common_element_start('a', array('href' => $this->profile->profileurl));
|
|
- common_element('img', array('src' => ($avatar) ? common_avatar_display_url($avatar) : common_default_avatar(AVATAR_STREAM_SIZE),
|
|
- 'class' => 'avatar stream',
|
|
- 'width' => AVATAR_STREAM_SIZE,
|
|
- 'height' => AVATAR_STREAM_SIZE,
|
|
- 'alt' =>
|
|
- ($this->profile->fullname) ? $this->profile->fullname :
|
|
- $this->profile->nickname));
|
|
- common_element_end('a');
|
|
- common_element_start('p');
|
|
- common_element_start('a', array('href' => $this->profile->profileurl,
|
|
- 'class' => 'nickname'));
|
|
- common_raw($this->highlight($this->profile->nickname));
|
|
- common_element_end('a');
|
|
- if ($this->profile->fullname) {
|
|
- common_text(' | ');
|
|
- common_element_start('span', 'fullname');
|
|
- common_raw($this->highlight($this->profile->fullname));
|
|
- common_element_end('span');
|
|
- }
|
|
- if ($this->profile->location) {
|
|
- common_text(' | ');
|
|
- common_element_start('span', 'location');
|
|
- common_raw($this->highlight($this->profile->location));
|
|
- common_element_end('span');
|
|
- }
|
|
- common_element_end('p');
|
|
- if ($this->profile->homepage) {
|
|
- common_element_start('p', 'website');
|
|
- common_element_start('a', array('href' => $this->profile->homepage));
|
|
- common_raw($this->highlight($this->profile->homepage));
|
|
- common_element_end('a');
|
|
- common_element_end('p');
|
|
- }
|
|
- if ($this->profile->bio) {
|
|
- common_element_start('p', 'bio');
|
|
- common_raw($this->highlight($this->profile->bio));
|
|
- common_element_end('p');
|
|
- }
|
|
+ $avatar = $this->profile->getAvatar(AVATAR_STREAM_SIZE);
|
|
+ common_element_start('a', array('href' => $this->profile->profileurl));
|
|
+ common_element('img', array('src' => ($avatar) ? common_avatar_display_url($avatar) : common_default_avatar(AVATAR_STREAM_SIZE),
|
|
+ 'class' => 'avatar stream',
|
|
+ 'width' => AVATAR_STREAM_SIZE,
|
|
+ 'height' => AVATAR_STREAM_SIZE,
|
|
+ 'alt' =>
|
|
+ ($this->profile->fullname) ? $this->profile->fullname :
|
|
+ $this->profile->nickname));
|
|
+ common_element_end('a');
|
|
+ common_element_start('p');
|
|
+ common_element_start('a', array('href' => $this->profile->profileurl,
|
|
+ 'class' => 'nickname'));
|
|
+ common_raw($this->highlight($this->profile->nickname));
|
|
+ common_element_end('a');
|
|
+ if ($this->profile->fullname) {
|
|
+ common_text(' | ');
|
|
+ common_element_start('span', 'fullname');
|
|
+ common_raw($this->highlight($this->profile->fullname));
|
|
+ common_element_end('span');
|
|
+ }
|
|
+ if ($this->profile->location) {
|
|
+ common_text(' | ');
|
|
+ common_element_start('span', 'location');
|
|
+ common_raw($this->highlight($this->profile->location));
|
|
+ common_element_end('span');
|
|
+ }
|
|
+ common_element_end('p');
|
|
+ if ($this->profile->homepage) {
|
|
+ common_element_start('p', 'website');
|
|
+ common_element_start('a', array('href' => $this->profile->homepage));
|
|
+ common_raw($this->highlight($this->profile->homepage));
|
|
+ common_element_end('a');
|
|
+ common_element_end('p');
|
|
+ }
|
|
+ if ($this->profile->bio) {
|
|
+ common_element_start('p', 'bio');
|
|
+ common_raw($this->highlight($this->profile->bio));
|
|
+ common_element_end('p');
|
|
+ }
|
|
hunk ./lib/profilelist.php 114
|
|
- # If we're on a list with an owner (subscriptions or subscribers)...
|
|
+ # If we're on a list with an owner (subscriptions or subscribers)...
|
|
hunk ./lib/profilelist.php 116
|
|
- if ($this->owner) {
|
|
- # Get tags
|
|
- $tags = Profile_tag::getTags($this->owner->id, $this->profile->id);
|
|
+ if ($this->owner) {
|
|
+ # Get tags
|
|
+ $tags = Profile_tag::getTags($this->owner->id, $this->profile->id);
|
|
hunk ./lib/profilelist.php 120
|
|
- common_element_start('div', 'tags_user');
|
|
- common_element_start('dl');
|
|
- common_element_start('dt');
|
|
- if ($user->id == $this->owner->id) {
|
|
- common_element('a', array('href' => common_local_url('tagother',
|
|
- array('id' => $this->profile->id))),
|
|
- _('Tags'));
|
|
- } else {
|
|
- common_text(_('Tags'));
|
|
- }
|
|
- common_text(":");
|
|
- common_element_end('dt');
|
|
- common_element_start('dd');
|
|
- if ($tags) {
|
|
- common_element_start('ul', 'tags xoxo');
|
|
- foreach ($tags as $tag) {
|
|
- common_element_start('li');
|
|
- common_element('a', array('rel' => 'tag',
|
|
- 'href' => common_local_url($this->action,
|
|
- array('nickname' => $this->owner->nickname,
|
|
- 'tag' => $tag))),
|
|
- $tag);
|
|
- common_element_end('li');
|
|
- }
|
|
- common_element_end('ul');
|
|
- } else {
|
|
- common_text(_('(none)'));
|
|
- }
|
|
- common_element_end('dd');
|
|
- common_element_end('dl');
|
|
- common_element_end('div');
|
|
- }
|
|
+ common_element_start('div', 'tags_user');
|
|
+ common_element_start('dl');
|
|
+ common_element_start('dt');
|
|
+ if ($user->id == $this->owner->id) {
|
|
+ common_element('a', array('href' => common_local_url('tagother',
|
|
+ array('id' => $this->profile->id))),
|
|
+ _('Tags'));
|
|
+ } else {
|
|
+ common_text(_('Tags'));
|
|
+ }
|
|
+ common_text(":");
|
|
+ common_element_end('dt');
|
|
+ common_element_start('dd');
|
|
+ if ($tags) {
|
|
+ common_element_start('ul', 'tags xoxo');
|
|
+ foreach ($tags as $tag) {
|
|
+ common_element_start('li');
|
|
+ common_element('a', array('rel' => 'tag',
|
|
+ 'href' => common_local_url($this->action,
|
|
+ array('nickname' => $this->owner->nickname,
|
|
+ 'tag' => $tag))),
|
|
+ $tag);
|
|
+ common_element_end('li');
|
|
+ }
|
|
+ common_element_end('ul');
|
|
+ } else {
|
|
+ common_text(_('(none)'));
|
|
+ }
|
|
+ common_element_end('dd');
|
|
+ common_element_end('dl');
|
|
+ common_element_end('div');
|
|
+ }
|
|
hunk ./lib/profilelist.php 157
|
|
- common_element_end('li');
|
|
- }
|
|
+ common_element_end('li');
|
|
+ }
|
|
hunk ./lib/profilelist.php 166
|
|
- function highlight($text) {
|
|
- return htmlspecialchars($text);
|
|
- }
|
|
+ function highlight($text) {
|
|
+ return htmlspecialchars($text);
|
|
+ }
|
|
hunk ./lib/queuehandler.php 30
|
|
- var $_id = 'generic';
|
|
+ var $_id = 'generic';
|
|
hunk ./lib/queuehandler.php 32
|
|
- function QueueHandler($id=NULL) {
|
|
- if ($id) {
|
|
- $this->set_id($id);
|
|
- }
|
|
- }
|
|
-
|
|
- function class_name() {
|
|
- return ucfirst($this->transport()) . 'Handler';
|
|
- }
|
|
+ function QueueHandler($id=NULL) {
|
|
+ if ($id) {
|
|
+ $this->set_id($id);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ function class_name() {
|
|
+ return ucfirst($this->transport()) . 'Handler';
|
|
+ }
|
|
hunk ./lib/queuehandler.php 42
|
|
- function name() {
|
|
- return strtolower($this->class_name().'.'.$this->get_id());
|
|
- }
|
|
-
|
|
- function get_id() {
|
|
- return $this->_id;
|
|
- }
|
|
+ function name() {
|
|
+ return strtolower($this->class_name().'.'.$this->get_id());
|
|
+ }
|
|
+
|
|
+ function get_id() {
|
|
+ return $this->_id;
|
|
+ }
|
|
hunk ./lib/queuehandler.php 50
|
|
- function set_id($id) {
|
|
- $this->_id = $id;
|
|
- }
|
|
-
|
|
- function transport() {
|
|
- return NULL;
|
|
- }
|
|
-
|
|
- function start() {
|
|
- }
|
|
-
|
|
- function finish() {
|
|
- }
|
|
+ function set_id($id) {
|
|
+ $this->_id = $id;
|
|
+ }
|
|
+
|
|
+ function transport() {
|
|
+ return NULL;
|
|
+ }
|
|
+
|
|
+ function start() {
|
|
+ }
|
|
+
|
|
+ function finish() {
|
|
+ }
|
|
hunk ./lib/queuehandler.php 64
|
|
- function handle_notice($notice) {
|
|
- return true;
|
|
- }
|
|
-
|
|
- function run() {
|
|
- if (!$this->start()) {
|
|
- return false;
|
|
- }
|
|
- $this->log(LOG_INFO, 'checking for queued notices');
|
|
- $transport = $this->transport();
|
|
- do {
|
|
- $qi = Queue_item::top($transport);
|
|
- if ($qi) {
|
|
- $this->log(LOG_INFO, 'Got item enqueued '.common_exact_date($qi->created));
|
|
- $notice = Notice::staticGet($qi->notice_id);
|
|
- if ($notice) {
|
|
- $this->log(LOG_INFO, 'broadcasting notice ID = ' . $notice->id);
|
|
- # XXX: what to do if broadcast fails?
|
|
- $result = $this->handle_notice($notice);
|
|
- if (!$result) {
|
|
- $this->log(LOG_WARNING, 'Failed broadcast for notice ID = ' . $notice->id);
|
|
- $orig = $qi;
|
|
- $qi->claimed = NULL;
|
|
- $qi->update($orig);
|
|
- $this->log(LOG_WARNING, 'Abandoned claim for notice ID = ' . $notice->id);
|
|
- continue;
|
|
- }
|
|
- $this->log(LOG_INFO, 'finished broadcasting notice ID = ' . $notice->id);
|
|
- $notice->free();
|
|
- unset($notice);
|
|
- $notice = NULL;
|
|
- } else {
|
|
- $this->log(LOG_WARNING, 'queue item for notice that does not exist');
|
|
- }
|
|
- $qi->delete();
|
|
- $qi->free();
|
|
- unset($qi);
|
|
- $this->idle(0);
|
|
- } else {
|
|
- $this->clear_old_claims();
|
|
- $this->idle(5);
|
|
- }
|
|
- } while (true);
|
|
- if (!$this->finish()) {
|
|
- return false;
|
|
- }
|
|
- return true;
|
|
- }
|
|
+ function handle_notice($notice) {
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ function run() {
|
|
+ if (!$this->start()) {
|
|
+ return false;
|
|
+ }
|
|
+ $this->log(LOG_INFO, 'checking for queued notices');
|
|
+ $transport = $this->transport();
|
|
+ do {
|
|
+ $qi = Queue_item::top($transport);
|
|
+ if ($qi) {
|
|
+ $this->log(LOG_INFO, 'Got item enqueued '.common_exact_date($qi->created));
|
|
+ $notice = Notice::staticGet($qi->notice_id);
|
|
+ if ($notice) {
|
|
+ $this->log(LOG_INFO, 'broadcasting notice ID = ' . $notice->id);
|
|
+ # XXX: what to do if broadcast fails?
|
|
+ $result = $this->handle_notice($notice);
|
|
+ if (!$result) {
|
|
+ $this->log(LOG_WARNING, 'Failed broadcast for notice ID = ' . $notice->id);
|
|
+ $orig = $qi;
|
|
+ $qi->claimed = NULL;
|
|
+ $qi->update($orig);
|
|
+ $this->log(LOG_WARNING, 'Abandoned claim for notice ID = ' . $notice->id);
|
|
+ continue;
|
|
+ }
|
|
+ $this->log(LOG_INFO, 'finished broadcasting notice ID = ' . $notice->id);
|
|
+ $notice->free();
|
|
+ unset($notice);
|
|
+ $notice = NULL;
|
|
+ } else {
|
|
+ $this->log(LOG_WARNING, 'queue item for notice that does not exist');
|
|
+ }
|
|
+ $qi->delete();
|
|
+ $qi->free();
|
|
+ unset($qi);
|
|
+ $this->idle(0);
|
|
+ } else {
|
|
+ $this->clear_old_claims();
|
|
+ $this->idle(5);
|
|
+ }
|
|
+ } while (true);
|
|
+ if (!$this->finish()) {
|
|
+ return false;
|
|
+ }
|
|
+ return true;
|
|
+ }
|
|
hunk ./lib/queuehandler.php 113
|
|
- function idle($timeout=0) {
|
|
- if ($timeout>0) {
|
|
- sleep($timeout);
|
|
- }
|
|
- }
|
|
-
|
|
- function clear_old_claims() {
|
|
- $qi = new Queue_item();
|
|
- $qi->transport = $this->transport();
|
|
- $qi->whereAdd('now() - claimed > '.CLAIM_TIMEOUT);
|
|
- $qi->update(DB_DATAOBJECT_WHEREADD_ONLY);
|
|
- $qi->free();
|
|
- unset($qi);
|
|
- }
|
|
-
|
|
- function log($level, $msg) {
|
|
- common_log($level, $this->class_name() . ' ('. $this->get_id() .'): '.$msg);
|
|
- }
|
|
+ function idle($timeout=0) {
|
|
+ if ($timeout>0) {
|
|
+ sleep($timeout);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ function clear_old_claims() {
|
|
+ $qi = new Queue_item();
|
|
+ $qi->transport = $this->transport();
|
|
+ $qi->whereAdd('now() - claimed > '.CLAIM_TIMEOUT);
|
|
+ $qi->update(DB_DATAOBJECT_WHEREADD_ONLY);
|
|
+ $qi->free();
|
|
+ unset($qi);
|
|
+ }
|
|
+
|
|
+ function log($level, $msg) {
|
|
+ common_log($level, $this->class_name() . ' ('. $this->get_id() .'): '.$msg);
|
|
+ }
|
|
hunk ./lib/queuehandler.php 132
|
|
-
|
|
+
|
|
hunk ./lib/rssaction.php 26
|
|
- # This will contain the details of each feed item's author and be used to generate SIOC data.
|
|
- var $creators = array();
|
|
+ # This will contain the details of each feed item's author and be used to generate SIOC data.
|
|
+ var $creators = array();
|
|
hunk ./lib/rssaction.php 29
|
|
- function is_readonly() {
|
|
- return true;
|
|
- }
|
|
+ function is_readonly() {
|
|
+ return true;
|
|
+ }
|
|
hunk ./lib/rssaction.php 33
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
- $limit = (int) $this->trimmed('limit');
|
|
- if ($limit == 0) {
|
|
- $limit = DEFAULT_RSS_LIMIT;
|
|
- }
|
|
- $this->show_rss($limit);
|
|
- }
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
+ $limit = (int) $this->trimmed('limit');
|
|
+ if ($limit == 0) {
|
|
+ $limit = DEFAULT_RSS_LIMIT;
|
|
+ }
|
|
+ $this->show_rss($limit);
|
|
+ }
|
|
hunk ./lib/rssaction.php 42
|
|
- function init() {
|
|
- return true;
|
|
- }
|
|
+ function init() {
|
|
+ return true;
|
|
+ }
|
|
hunk ./lib/rssaction.php 46
|
|
- function get_notices() {
|
|
- return array();
|
|
- }
|
|
+ function get_notices() {
|
|
+ return array();
|
|
+ }
|
|
hunk ./lib/rssaction.php 50
|
|
- function get_channel() {
|
|
- return array('url' => '',
|
|
- 'title' => '',
|
|
- 'link' => '',
|
|
- 'description' => '');
|
|
- }
|
|
+ function get_channel() {
|
|
+ return array('url' => '',
|
|
+ 'title' => '',
|
|
+ 'link' => '',
|
|
+ 'description' => '');
|
|
+ }
|
|
hunk ./lib/rssaction.php 57
|
|
- function get_image() {
|
|
- return NULL;
|
|
- }
|
|
+ function get_image() {
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./lib/rssaction.php 61
|
|
- function show_rss($limit=0) {
|
|
+ function show_rss($limit=0) {
|
|
hunk ./lib/rssaction.php 63
|
|
- if (!$this->init()) {
|
|
- return;
|
|
- }
|
|
+ if (!$this->init()) {
|
|
+ return;
|
|
+ }
|
|
hunk ./lib/rssaction.php 67
|
|
- $notices = $this->get_notices($limit);
|
|
+ $notices = $this->get_notices($limit);
|
|
hunk ./lib/rssaction.php 69
|
|
- $this->init_rss();
|
|
- $this->show_channel($notices);
|
|
- $this->show_image();
|
|
+ $this->init_rss();
|
|
+ $this->show_channel($notices);
|
|
+ $this->show_image();
|
|
hunk ./lib/rssaction.php 73
|
|
- foreach ($notices as $n) {
|
|
- $this->show_item($n);
|
|
- }
|
|
+ foreach ($notices as $n) {
|
|
+ $this->show_item($n);
|
|
+ }
|
|
hunk ./lib/rssaction.php 77
|
|
- $this->show_creators();
|
|
- $this->end_rss();
|
|
- }
|
|
+ $this->show_creators();
|
|
+ $this->end_rss();
|
|
+ }
|
|
hunk ./lib/rssaction.php 81
|
|
- function show_channel($notices) {
|
|
+ function show_channel($notices) {
|
|
hunk ./lib/rssaction.php 83
|
|
- $channel = $this->get_channel();
|
|
- $image = $this->get_image();
|
|
+ $channel = $this->get_channel();
|
|
+ $image = $this->get_image();
|
|
hunk ./lib/rssaction.php 86
|
|
- common_element_start('channel', array('rdf:about' => $channel['url']));
|
|
- common_element('title', NULL, $channel['title']);
|
|
- common_element('link', NULL, $channel['link']);
|
|
- common_element('description', NULL, $channel['description']);
|
|
- common_element('cc:licence', array('rdf:resource' => common_config('license','url')));
|
|
+ common_element_start('channel', array('rdf:about' => $channel['url']));
|
|
+ common_element('title', NULL, $channel['title']);
|
|
+ common_element('link', NULL, $channel['link']);
|
|
+ common_element('description', NULL, $channel['description']);
|
|
+ common_element('cc:licence', array('rdf:resource' => common_config('license','url')));
|
|
hunk ./lib/rssaction.php 92
|
|
- if ($image) {
|
|
- common_element('image', array('rdf:resource' => $image));
|
|
- }
|
|
+ if ($image) {
|
|
+ common_element('image', array('rdf:resource' => $image));
|
|
+ }
|
|
hunk ./lib/rssaction.php 96
|
|
- common_element_start('items');
|
|
- common_element_start('rdf:Seq');
|
|
+ common_element_start('items');
|
|
+ common_element_start('rdf:Seq');
|
|
hunk ./lib/rssaction.php 99
|
|
- foreach ($notices as $notice) {
|
|
- common_element('sioct:MicroblogPost', array('rdf:resource' => $notice->uri));
|
|
- }
|
|
+ foreach ($notices as $notice) {
|
|
+ common_element('sioct:MicroblogPost', array('rdf:resource' => $notice->uri));
|
|
+ }
|
|
hunk ./lib/rssaction.php 103
|
|
- common_element_end('rdf:Seq');
|
|
- common_element_end('items');
|
|
+ common_element_end('rdf:Seq');
|
|
+ common_element_end('items');
|
|
hunk ./lib/rssaction.php 106
|
|
- common_element_end('channel');
|
|
- }
|
|
+ common_element_end('channel');
|
|
+ }
|
|
hunk ./lib/rssaction.php 109
|
|
- function show_image() {
|
|
- $image = $this->get_image();
|
|
- if ($image) {
|
|
- $channel = $this->get_channel();
|
|
- common_element_start('image', array('rdf:about' => $image));
|
|
- common_element('title', NULL, $channel['title']);
|
|
- common_element('link', NULL, $channel['link']);
|
|
- common_element('url', NULL, $image);
|
|
- common_element_end('image');
|
|
- }
|
|
- }
|
|
+ function show_image() {
|
|
+ $image = $this->get_image();
|
|
+ if ($image) {
|
|
+ $channel = $this->get_channel();
|
|
+ common_element_start('image', array('rdf:about' => $image));
|
|
+ common_element('title', NULL, $channel['title']);
|
|
+ common_element('link', NULL, $channel['link']);
|
|
+ common_element('url', NULL, $image);
|
|
+ common_element_end('image');
|
|
+ }
|
|
+ }
|
|
hunk ./lib/rssaction.php 121
|
|
- function show_item($notice) {
|
|
- $profile = Profile::staticGet($notice->profile_id);
|
|
- $nurl = common_local_url('shownotice', array('notice' => $notice->id));
|
|
- $creator_uri = common_profile_uri($profile);
|
|
- common_element_start('item', array('rdf:about' => $notice->uri));
|
|
- $title = $profile->nickname . ': ' . common_xml_safe_str(trim($notice->content));
|
|
- common_element('title', NULL, $title);
|
|
- common_element('link', NULL, $nurl);
|
|
- common_element('description', NULL, $profile->nickname."'s status on ".common_exact_date($notice->created));
|
|
- common_element('dc:date', NULL, common_date_w3dtf($notice->created));
|
|
- common_element('dc:creator', NULL, ($profile->fullname) ? $profile->fullname : $profile->nickname);
|
|
- common_element('sioc:has_creator', array('rdf:resource' => $creator_uri));
|
|
- common_element('laconica:postIcon', array('rdf:resource' => common_profile_avatar_url($profile)));
|
|
- common_element('cc:licence', array('rdf:resource' => common_config('license', 'url')));
|
|
- common_element_end('item');
|
|
- $this->creators[$creator_uri] = $profile;
|
|
- }
|
|
+ function show_item($notice) {
|
|
+ $profile = Profile::staticGet($notice->profile_id);
|
|
+ $nurl = common_local_url('shownotice', array('notice' => $notice->id));
|
|
+ $creator_uri = common_profile_uri($profile);
|
|
+ common_element_start('item', array('rdf:about' => $notice->uri));
|
|
+ $title = $profile->nickname . ': ' . common_xml_safe_str(trim($notice->content));
|
|
+ common_element('title', NULL, $title);
|
|
+ common_element('link', NULL, $nurl);
|
|
+ common_element('description', NULL, $profile->nickname."'s status on ".common_exact_date($notice->created));
|
|
+ common_element('dc:date', NULL, common_date_w3dtf($notice->created));
|
|
+ common_element('dc:creator', NULL, ($profile->fullname) ? $profile->fullname : $profile->nickname);
|
|
+ common_element('sioc:has_creator', array('rdf:resource' => $creator_uri));
|
|
+ common_element('laconica:postIcon', array('rdf:resource' => common_profile_avatar_url($profile)));
|
|
+ common_element('cc:licence', array('rdf:resource' => common_config('license', 'url')));
|
|
+ common_element_end('item');
|
|
+ $this->creators[$creator_uri] = $profile;
|
|
+ }
|
|
hunk ./lib/rssaction.php 139
|
|
- function show_creators() {
|
|
- foreach ($this->creators as $uri => $profile) {
|
|
- $id = $profile->id;
|
|
- $nickname = $profile->nickname;
|
|
- common_element_start('sioc:User', array('rdf:about' => $uri));
|
|
- common_element('foaf:nick', NULL, $nickname);
|
|
- if ($profile->fullname) {
|
|
- common_element('foaf:name', NULL, $profile->fullname);
|
|
- }
|
|
- common_element('sioc:id', NULL, $id);
|
|
- $avatar = common_profile_avatar_url($profile);
|
|
- common_element('sioc:avatar', array('rdf:resource' => $avatar));
|
|
- common_element_end('sioc:User');
|
|
- }
|
|
- }
|
|
+ function show_creators() {
|
|
+ foreach ($this->creators as $uri => $profile) {
|
|
+ $id = $profile->id;
|
|
+ $nickname = $profile->nickname;
|
|
+ common_element_start('sioc:User', array('rdf:about' => $uri));
|
|
+ common_element('foaf:nick', NULL, $nickname);
|
|
+ if ($profile->fullname) {
|
|
+ common_element('foaf:name', NULL, $profile->fullname);
|
|
+ }
|
|
+ common_element('sioc:id', NULL, $id);
|
|
+ $avatar = common_profile_avatar_url($profile);
|
|
+ common_element('sioc:avatar', array('rdf:resource' => $avatar));
|
|
+ common_element_end('sioc:User');
|
|
+ }
|
|
+ }
|
|
hunk ./lib/rssaction.php 155
|
|
- function init_rss() {
|
|
- $channel = $this->get_channel();
|
|
- header('Content-Type: application/rdf+xml');
|
|
+ function init_rss() {
|
|
+ $channel = $this->get_channel();
|
|
+ header('Content-Type: application/rdf+xml');
|
|
hunk ./lib/rssaction.php 159
|
|
- common_start_xml();
|
|
- common_element_start('rdf:RDF', array('xmlns:rdf' =>
|
|
- 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',
|
|
- 'xmlns:dc' =>
|
|
- 'http://purl.org/dc/elements/1.1/',
|
|
- 'xmlns:cc' =>
|
|
- 'http://web.resource.org/cc/',
|
|
+ common_start_xml();
|
|
+ common_element_start('rdf:RDF', array('xmlns:rdf' =>
|
|
+ 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',
|
|
+ 'xmlns:dc' =>
|
|
+ 'http://purl.org/dc/elements/1.1/',
|
|
+ 'xmlns:cc' =>
|
|
+ 'http://web.resource.org/cc/',
|
|
hunk ./lib/rssaction.php 168
|
|
- 'xmlns:foaf' =>
|
|
- 'http://xmlns.com/foaf/0.1/',
|
|
- 'xmlns:sioc' =>
|
|
- 'http://rdfs.org/sioc/ns#',
|
|
- 'xmlns:sioct' =>
|
|
- 'http://rdfs.org/sioc/types#',
|
|
- 'xmlns:laconica' =>
|
|
- 'http://laconi.ca/ont/',
|
|
- 'xmlns' => 'http://purl.org/rss/1.0/'));
|
|
- common_element_start('sioc:Site', array('rdf:about' => common_root_url()));
|
|
- common_element('sioc:name', NULL, common_config('site', 'name'));
|
|
- common_element_start('sioc:container_of');
|
|
- common_element('sioc:Container', array('rdf:about' =>
|
|
- $channel['url']));
|
|
- common_element_end('sioc:container_of');
|
|
- common_element_end('sioc:Site');
|
|
- }
|
|
+ 'xmlns:foaf' =>
|
|
+ 'http://xmlns.com/foaf/0.1/',
|
|
+ 'xmlns:sioc' =>
|
|
+ 'http://rdfs.org/sioc/ns#',
|
|
+ 'xmlns:sioct' =>
|
|
+ 'http://rdfs.org/sioc/types#',
|
|
+ 'xmlns:laconica' =>
|
|
+ 'http://laconi.ca/ont/',
|
|
+ 'xmlns' => 'http://purl.org/rss/1.0/'));
|
|
+ common_element_start('sioc:Site', array('rdf:about' => common_root_url()));
|
|
+ common_element('sioc:name', NULL, common_config('site', 'name'));
|
|
+ common_element_start('sioc:container_of');
|
|
+ common_element('sioc:Container', array('rdf:about' =>
|
|
+ $channel['url']));
|
|
+ common_element_end('sioc:container_of');
|
|
+ common_element_end('sioc:Site');
|
|
+ }
|
|
hunk ./lib/rssaction.php 186
|
|
- function end_rss() {
|
|
- common_element_end('rdf:RDF');
|
|
- }
|
|
+ function end_rss() {
|
|
+ common_element_end('rdf:RDF');
|
|
+ }
|
|
hunk ./lib/search_engines.php 101
|
|
- 'against (\''.addslashes($q).'\')');
|
|
+ 'against (\''.addslashes($q).'\')');
|
|
hunk ./lib/search_engines.php 104
|
|
- 'against (\''.addslashes($q).'\')');
|
|
+ 'against (\''.addslashes($q).'\')');
|
|
hunk ./lib/searchaction.php 24
|
|
- function is_readonly() {
|
|
- return true;
|
|
- }
|
|
+ function is_readonly() {
|
|
+ return true;
|
|
+ }
|
|
hunk ./lib/searchaction.php 28
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
- $this->show_form();
|
|
- }
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
+ $this->show_form();
|
|
+ }
|
|
hunk ./lib/searchaction.php 33
|
|
- function show_top($arr=NULL) {
|
|
- if ($arr) {
|
|
- $error = $arr[1];
|
|
- }
|
|
- if ($error) {
|
|
- common_element('p', 'error', $error);
|
|
- } else {
|
|
- $instr = $this->get_instructions();
|
|
- $output = common_markup_to_html($instr);
|
|
- common_element_start('div', 'instructions');
|
|
- common_raw($output);
|
|
- common_element_end('div');
|
|
- }
|
|
- $this->search_menu();
|
|
- }
|
|
+ function show_top($arr=NULL) {
|
|
+ if ($arr) {
|
|
+ $error = $arr[1];
|
|
+ }
|
|
+ if ($error) {
|
|
+ common_element('p', 'error', $error);
|
|
+ } else {
|
|
+ $instr = $this->get_instructions();
|
|
+ $output = common_markup_to_html($instr);
|
|
+ common_element_start('div', 'instructions');
|
|
+ common_raw($output);
|
|
+ common_element_end('div');
|
|
+ }
|
|
+ $this->search_menu();
|
|
+ }
|
|
hunk ./lib/searchaction.php 49
|
|
- function get_title() {
|
|
- return NULL;
|
|
- }
|
|
+ function get_title() {
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./lib/searchaction.php 53
|
|
- function show_header($arr) {
|
|
- return;
|
|
- }
|
|
+ function show_header($arr) {
|
|
+ return;
|
|
+ }
|
|
hunk ./lib/searchaction.php 57
|
|
- function show_form($error=NULL) {
|
|
- global $config;
|
|
+ function show_form($error=NULL) {
|
|
+ global $config;
|
|
hunk ./lib/searchaction.php 60
|
|
- $q = $this->trimmed('q');
|
|
- $page = $this->trimmed('page', 1);
|
|
+ $q = $this->trimmed('q');
|
|
+ $page = $this->trimmed('page', 1);
|
|
hunk ./lib/searchaction.php 63
|
|
- common_show_header($this->get_title(), array($this, 'show_header'), array($q, $error),
|
|
- array($this, 'show_top'));
|
|
- common_element_start('form', array('method' => 'get',
|
|
- 'id' => 'login',
|
|
- 'action' => common_local_url($this->trimmed('action'))));
|
|
- common_element_start('p');
|
|
- if (!isset($config['site']['fancy']) || !$config['site']['fancy']) {
|
|
- common_element('input', array('name' => 'action',
|
|
- 'type' => 'hidden',
|
|
- 'value' => $this->trimmed('action')));
|
|
- }
|
|
- common_element('input', array('name' => 'q',
|
|
- 'id' => 'q',
|
|
- 'type' => 'text',
|
|
- 'class' => 'input_text',
|
|
- 'value' => ($q) ? $q : ''));
|
|
- common_text(' ');
|
|
- common_element('input', array('type' => 'submit',
|
|
- 'id' => 'search',
|
|
- 'name' => 'search',
|
|
- 'class' => 'submit',
|
|
- 'value' => _('Search')));
|
|
+ common_show_header($this->get_title(), array($this, 'show_header'), array($q, $error),
|
|
+ array($this, 'show_top'));
|
|
+ common_element_start('form', array('method' => 'get',
|
|
+ 'id' => 'login',
|
|
+ 'action' => common_local_url($this->trimmed('action'))));
|
|
+ common_element_start('p');
|
|
+ if (!isset($config['site']['fancy']) || !$config['site']['fancy']) {
|
|
+ common_element('input', array('name' => 'action',
|
|
+ 'type' => 'hidden',
|
|
+ 'value' => $this->trimmed('action')));
|
|
+ }
|
|
+ common_element('input', array('name' => 'q',
|
|
+ 'id' => 'q',
|
|
+ 'type' => 'text',
|
|
+ 'class' => 'input_text',
|
|
+ 'value' => ($q) ? $q : ''));
|
|
+ common_text(' ');
|
|
+ common_element('input', array('type' => 'submit',
|
|
+ 'id' => 'search',
|
|
+ 'name' => 'search',
|
|
+ 'class' => 'submit',
|
|
+ 'value' => _('Search')));
|
|
hunk ./lib/searchaction.php 86
|
|
- common_element_end('p');
|
|
- common_element_end('form');
|
|
- if ($q) {
|
|
- $this->show_results($q, $page);
|
|
- }
|
|
- common_show_footer();
|
|
- }
|
|
+ common_element_end('p');
|
|
+ common_element_end('form');
|
|
+ if ($q) {
|
|
+ $this->show_results($q, $page);
|
|
+ }
|
|
+ common_show_footer();
|
|
+ }
|
|
hunk ./lib/searchaction.php 94
|
|
- function search_menu() {
|
|
- # action => array('prompt', 'title', $args)
|
|
- $action = $this->trimmed('action');
|
|
- $menu =
|
|
- array('peoplesearch' =>
|
|
- array(
|
|
- _('People'),
|
|
- _('Find people on this site'),
|
|
- ($action != 'peoplesearch' && $this->trimmed('q')) ? array('q' => $this->trimmed('q')) : NULL),
|
|
- 'noticesearch' =>
|
|
- array( _('Text'),
|
|
- _('Find content of notices'),
|
|
- ($action != 'noticesearch' && $this->trimmed('q')) ? array('q' => $this->trimmed('q')) : NULL)
|
|
- );
|
|
- $this->nav_menu($menu);
|
|
- }
|
|
+ function search_menu() {
|
|
+ # action => array('prompt', 'title', $args)
|
|
+ $action = $this->trimmed('action');
|
|
+ $menu =
|
|
+ array('peoplesearch' =>
|
|
+ array(
|
|
+ _('People'),
|
|
+ _('Find people on this site'),
|
|
+ ($action != 'peoplesearch' && $this->trimmed('q')) ? array('q' => $this->trimmed('q')) : NULL),
|
|
+ 'noticesearch' =>
|
|
+ array( _('Text'),
|
|
+ _('Find content of notices'),
|
|
+ ($action != 'noticesearch' && $this->trimmed('q')) ? array('q' => $this->trimmed('q')) : NULL)
|
|
+ );
|
|
+ $this->nav_menu($menu);
|
|
+ }
|
|
hunk ./lib/settingsaction.php 30
|
|
- # Cookie theft means that automatic logins can't
|
|
- # change important settings or see private info, and
|
|
- # _all_ our settings are important
|
|
+ # Cookie theft means that automatic logins can't
|
|
+ # change important settings or see private info, and
|
|
+ # _all_ our settings are important
|
|
hunk ./lib/settingsaction.php 58
|
|
- function form_header($title, $msg=NULL, $success=false) {
|
|
- common_show_header($title,
|
|
- NULL,
|
|
- array($msg, $success),
|
|
- array($this, 'show_top'));
|
|
- }
|
|
+ function form_header($title, $msg=NULL, $success=false) {
|
|
+ common_show_header($title,
|
|
+ NULL,
|
|
+ array($msg, $success),
|
|
+ array($this, 'show_top'));
|
|
+ }
|
|
hunk ./lib/settingsaction.php 65
|
|
- function show_top($arr) {
|
|
- $msg = $arr[0];
|
|
- $success = $arr[1];
|
|
- if ($msg) {
|
|
- $this->message($msg, $success);
|
|
- } else {
|
|
- $inst = $this->get_instructions();
|
|
- $output = common_markup_to_html($inst);
|
|
- common_element_start('div', 'instructions');
|
|
- common_raw($output);
|
|
- common_element_end('div');
|
|
- }
|
|
- $this->settings_menu();
|
|
- }
|
|
+ function show_top($arr) {
|
|
+ $msg = $arr[0];
|
|
+ $success = $arr[1];
|
|
+ if ($msg) {
|
|
+ $this->message($msg, $success);
|
|
+ } else {
|
|
+ $inst = $this->get_instructions();
|
|
+ $output = common_markup_to_html($inst);
|
|
+ common_element_start('div', 'instructions');
|
|
+ common_raw($output);
|
|
+ common_element_end('div');
|
|
+ }
|
|
+ $this->settings_menu();
|
|
+ }
|
|
hunk ./lib/settingsaction.php 82
|
|
- $menu =
|
|
- array('profilesettings' =>
|
|
- array(_('Profile'),
|
|
- _('Change your profile settings')),
|
|
- 'emailsettings' =>
|
|
- array(_('Email'),
|
|
- _('Change email handling')),
|
|
- 'openidsettings' =>
|
|
- array(_('OpenID'),
|
|
- _('Add or remove OpenIDs')),
|
|
- 'smssettings' =>
|
|
- array(_('SMS'),
|
|
- _('Updates by SMS')),
|
|
- 'imsettings' =>
|
|
- array(_('IM'),
|
|
- _('Updates by instant messenger (IM)')),
|
|
- 'twittersettings' =>
|
|
- array(_('Twitter'),
|
|
- _('Twitter integration options')),
|
|
- 'othersettings' =>
|
|
- array(_('Other'),
|
|
- _('Other options')));
|
|
-
|
|
+ $menu =
|
|
+ array('profilesettings' =>
|
|
+ array(_('Profile'),
|
|
+ _('Change your profile settings')),
|
|
+ 'emailsettings' =>
|
|
+ array(_('Email'),
|
|
+ _('Change email handling')),
|
|
+ 'openidsettings' =>
|
|
+ array(_('OpenID'),
|
|
+ _('Add or remove OpenIDs')),
|
|
+ 'smssettings' =>
|
|
+ array(_('SMS'),
|
|
+ _('Updates by SMS')),
|
|
+ 'imsettings' =>
|
|
+ array(_('IM'),
|
|
+ _('Updates by instant messenger (IM)')),
|
|
+ 'twittersettings' =>
|
|
+ array(_('Twitter'),
|
|
+ _('Twitter integration options')),
|
|
+ 'othersettings' =>
|
|
+ array(_('Other'),
|
|
+ _('Other options')));
|
|
+
|
|
hunk ./lib/settingsaction.php 108
|
|
- if ($menuaction == 'imsettings' &&
|
|
- !common_config('xmpp', 'enabled')) {
|
|
- continue;
|
|
- }
|
|
+ if ($menuaction == 'imsettings' &&
|
|
+ !common_config('xmpp', 'enabled')) {
|
|
+ continue;
|
|
+ }
|
|
hunk ./lib/stream.php 13
|
|
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
hunk ./lib/stream.php 17
|
|
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
hunk ./lib/stream.php 27
|
|
- function public_views_menu() {
|
|
+ function public_views_menu() {
|
|
hunk ./lib/stream.php 29
|
|
- $action = $this->trimmed('action');
|
|
+ $action = $this->trimmed('action');
|
|
hunk ./lib/stream.php 31
|
|
- common_element_start('ul', array('id' => 'nav_views'));
|
|
+ common_element_start('ul', array('id' => 'nav_views'));
|
|
hunk ./lib/stream.php 33
|
|
- common_menu_item(common_local_url('public'), _('Public'),
|
|
- _('Public timeline'), $action == 'public');
|
|
+ common_menu_item(common_local_url('public'), _('Public'),
|
|
+ _('Public timeline'), $action == 'public');
|
|
hunk ./lib/stream.php 36
|
|
- common_menu_item(common_local_url('tag'), _('Recent tags'),
|
|
- _('Recent tags'), $action == 'tag');
|
|
+ common_menu_item(common_local_url('tag'), _('Recent tags'),
|
|
+ _('Recent tags'), $action == 'tag');
|
|
hunk ./lib/stream.php 39
|
|
- if (count(common_config('nickname', 'featured')) > 0) {
|
|
- common_menu_item(common_local_url('featured'), _('Featured'),
|
|
- _('Featured users'), $action == 'featured');
|
|
- }
|
|
+ if (count(common_config('nickname', 'featured')) > 0) {
|
|
+ common_menu_item(common_local_url('featured'), _('Featured'),
|
|
+ _('Featured users'), $action == 'featured');
|
|
+ }
|
|
hunk ./lib/stream.php 44
|
|
- common_menu_item(common_local_url('favorited'), _('Popular'),
|
|
- _("Popular notices"), $action == 'favorited');
|
|
+ common_menu_item(common_local_url('favorited'), _('Popular'),
|
|
+ _("Popular notices"), $action == 'favorited');
|
|
hunk ./lib/stream.php 47
|
|
- common_element_end('ul');
|
|
+ common_element_end('ul');
|
|
hunk ./lib/stream.php 49
|
|
- }
|
|
+ }
|
|
hunk ./lib/subs.php 30
|
|
- $other = User::staticGet('nickname', $other_nickname);
|
|
+ $other = User::staticGet('nickname', $other_nickname);
|
|
hunk ./lib/subs.php 32
|
|
- if (!$other) {
|
|
- return _('No such user.');
|
|
- }
|
|
+ if (!$other) {
|
|
+ return _('No such user.');
|
|
+ }
|
|
hunk ./lib/subs.php 36
|
|
- return subs_subscribe_to($user, $other);
|
|
+ return subs_subscribe_to($user, $other);
|
|
hunk ./lib/subs.php 46
|
|
- if ($user->isSubscribed($other)) {
|
|
- return _('Already subscribed!.');
|
|
- }
|
|
+ if ($user->isSubscribed($other)) {
|
|
+ return _('Already subscribed!.');
|
|
+ }
|
|
hunk ./lib/subs.php 51
|
|
- return _('User has blocked you.');
|
|
+ return _('User has blocked you.');
|
|
hunk ./lib/subs.php 54
|
|
- if (!$user->subscribeTo($other)) {
|
|
- return _('Could not subscribe.');
|
|
- return;
|
|
- }
|
|
+ if (!$user->subscribeTo($other)) {
|
|
+ return _('Could not subscribe.');
|
|
+ return;
|
|
+ }
|
|
hunk ./lib/subs.php 61
|
|
- if (common_config('memcached', 'enabled')) {
|
|
- $cache = new Memcache();
|
|
- if ($cache->connect(common_config('memcached', 'server'), common_config('memcached', 'port'))) {
|
|
- $cache->delete(common_cache_key('user:notices_with_friends:' . $user->id));
|
|
- }
|
|
- }
|
|
+ if (common_config('memcached', 'enabled')) {
|
|
+ $cache = new Memcache();
|
|
+ if ($cache->connect(common_config('memcached', 'server'), common_config('memcached', 'port'))) {
|
|
+ $cache->delete(common_cache_key('user:notices_with_friends:' . $user->id));
|
|
+ }
|
|
+ }
|
|
hunk ./lib/subs.php 68
|
|
- if ($other->autosubscribe && !$other->isSubscribed($user) && !$user->hasBlocked($other)) {
|
|
- if (!$other->subscribeTo($user)) {
|
|
- return _('Could not subscribe other to you.');
|
|
- }
|
|
- if (common_config('memcached', 'enabled')) {
|
|
- $cache = new Memcache();
|
|
- if ($cache->connect(common_config('memcached', 'server'), common_config('memcached', 'port'))) {
|
|
- $cache->delete(common_cache_key('user:notices_with_friends:' . $other->id));
|
|
- }
|
|
- }
|
|
+ if ($other->autosubscribe && !$other->isSubscribed($user) && !$user->hasBlocked($other)) {
|
|
+ if (!$other->subscribeTo($user)) {
|
|
+ return _('Could not subscribe other to you.');
|
|
+ }
|
|
+ if (common_config('memcached', 'enabled')) {
|
|
+ $cache = new Memcache();
|
|
+ if ($cache->connect(common_config('memcached', 'server'), common_config('memcached', 'port'))) {
|
|
+ $cache->delete(common_cache_key('user:notices_with_friends:' . $other->id));
|
|
+ }
|
|
+ }
|
|
hunk ./lib/subs.php 79
|
|
- subs_notify($user, $other);
|
|
- }
|
|
+ subs_notify($user, $other);
|
|
+ }
|
|
hunk ./lib/subs.php 82
|
|
- return true;
|
|
+ return true;
|
|
hunk ./lib/subs.php 86
|
|
- # XXX: add other notifications (Jabber, SMS) here
|
|
- # XXX: queue this and handle it offline
|
|
- # XXX: Whatever happens, do it in Twitter-like API, too
|
|
- subs_notify_email($listenee, $listener);
|
|
+ # XXX: add other notifications (Jabber, SMS) here
|
|
+ # XXX: queue this and handle it offline
|
|
+ # XXX: Whatever happens, do it in Twitter-like API, too
|
|
+ subs_notify_email($listenee, $listener);
|
|
hunk ./lib/subs.php 93
|
|
- mail_subscribe_notify($listenee, $listener);
|
|
+ mail_subscribe_notify($listenee, $listener);
|
|
hunk ./lib/subs.php 102
|
|
- $other = User::staticGet('nickname', $other_nickname);
|
|
+ $other = User::staticGet('nickname', $other_nickname);
|
|
hunk ./lib/subs.php 104
|
|
- if (!$other) {
|
|
- return _('No such user.');
|
|
- }
|
|
+ if (!$other) {
|
|
+ return _('No such user.');
|
|
+ }
|
|
hunk ./lib/subs.php 108
|
|
- return subs_unsubscribe_to($user, $other->getProfile());
|
|
+ return subs_unsubscribe_to($user, $other->getProfile());
|
|
hunk ./lib/subs.php 116
|
|
- if (!$user->isSubscribed($other))
|
|
- return _('Not subscribed!.');
|
|
+ if (!$user->isSubscribed($other))
|
|
+ return _('Not subscribed!.');
|
|
hunk ./lib/subs.php 119
|
|
- $sub = DB_DataObject::factory('subscription');
|
|
+ $sub = DB_DataObject::factory('subscription');
|
|
hunk ./lib/subs.php 121
|
|
- $sub->subscriber = $user->id;
|
|
- $sub->subscribed = $other->id;
|
|
+ $sub->subscriber = $user->id;
|
|
+ $sub->subscribed = $other->id;
|
|
hunk ./lib/subs.php 124
|
|
- $sub->find(true);
|
|
+ $sub->find(true);
|
|
hunk ./lib/subs.php 126
|
|
- // note we checked for existence above
|
|
+ // note we checked for existence above
|
|
hunk ./lib/subs.php 128
|
|
- if (!$sub->delete())
|
|
- return _('Couldn\'t delete subscription.');
|
|
+ if (!$sub->delete())
|
|
+ return _('Couldn\'t delete subscription.');
|
|
hunk ./lib/subs.php 131
|
|
- if (common_config('memcached', 'enabled')) {
|
|
- $cache = new Memcache();
|
|
- if ($cache->connect(common_config('memcached', 'server'), common_config('memcached', 'port'))) {
|
|
- $cache->delete(common_cache_key('user:notices_with_friends:' . $user->id));
|
|
- }
|
|
- }
|
|
+ if (common_config('memcached', 'enabled')) {
|
|
+ $cache = new Memcache();
|
|
+ if ($cache->connect(common_config('memcached', 'server'), common_config('memcached', 'port'))) {
|
|
+ $cache->delete(common_cache_key('user:notices_with_friends:' . $user->id));
|
|
+ }
|
|
+ }
|
|
hunk ./lib/subs.php 138
|
|
- return true;
|
|
+ return true;
|
|
hunk ./lib/theme.php 23
|
|
- $theme = common_config('site', 'theme');
|
|
- return INSTALLDIR.'/theme/'.$theme.'/'.$relative;
|
|
+ $theme = common_config('site', 'theme');
|
|
+ return INSTALLDIR.'/theme/'.$theme.'/'.$relative;
|
|
hunk ./lib/theme.php 28
|
|
- $theme = common_config('site', 'theme');
|
|
- $server = common_config('theme', 'server');
|
|
- if ($server) {
|
|
- return 'http://'.$server.'/'.$theme.'/'.$relative;
|
|
- } else {
|
|
- return common_path('theme/'.$theme.'/'.$relative);
|
|
- }
|
|
+ $theme = common_config('site', 'theme');
|
|
+ $server = common_config('theme', 'server');
|
|
+ if ($server) {
|
|
+ return 'http://'.$server.'/'.$theme.'/'.$relative;
|
|
+ } else {
|
|
+ return common_path('theme/'.$theme.'/'.$relative);
|
|
+ }
|
|
hunk ./lib/twitter.php 24
|
|
- $options = array(
|
|
- CURLOPT_USERPWD => sprintf("%s:%s", $screen_name, $password),
|
|
- CURLOPT_RETURNTRANSFER => true,
|
|
- CURLOPT_FAILONERROR => true,
|
|
- CURLOPT_HEADER => false,
|
|
- CURLOPT_FOLLOWLOCATION => true,
|
|
- // CURLOPT_USERAGENT => "identi.ca",
|
|
- CURLOPT_CONNECTTIMEOUT => 120,
|
|
- CURLOPT_TIMEOUT => 120
|
|
- );
|
|
+ $options = array(
|
|
+ CURLOPT_USERPWD => sprintf("%s:%s", $screen_name, $password),
|
|
+ CURLOPT_RETURNTRANSFER => true,
|
|
+ CURLOPT_FAILONERROR => true,
|
|
+ CURLOPT_HEADER => false,
|
|
+ CURLOPT_FOLLOWLOCATION => true,
|
|
+ // CURLOPT_USERAGENT => "identi.ca",
|
|
+ CURLOPT_CONNECTTIMEOUT => 120,
|
|
+ CURLOPT_TIMEOUT => 120
|
|
+ );
|
|
hunk ./lib/twitter.php 36
|
|
- $ch = curl_init($uri);
|
|
+ $ch = curl_init($uri);
|
|
hunk ./lib/twitter.php 41
|
|
- if ($errmsg) {
|
|
- common_debug("Twitter bridge - cURL error: $errmsg - trying to load: $uri with user $twit_user.",
|
|
- __FILE__);
|
|
- }
|
|
+ if ($errmsg) {
|
|
+ common_debug("Twitter bridge - cURL error: $errmsg - trying to load: $uri with user $twit_user.",
|
|
+ __FILE__);
|
|
+ }
|
|
hunk ./lib/twitter.php 46
|
|
- curl_close($ch);
|
|
+ curl_close($ch);
|
|
hunk ./lib/twitter.php 48
|
|
- return $data;
|
|
+ return $data;
|
|
hunk ./lib/twitter.php 53
|
|
- $uri = "http://twitter.com/users/show/$screen_name.json";
|
|
- $data = get_twitter_data($uri, $screen_name, $password);
|
|
+ $uri = "http://twitter.com/users/show/$screen_name.json";
|
|
+ $data = get_twitter_data($uri, $screen_name, $password);
|
|
hunk ./lib/twitter.php 56
|
|
- if (!$data) {
|
|
- return false;
|
|
- }
|
|
+ if (!$data) {
|
|
+ return false;
|
|
+ }
|
|
hunk ./lib/twitter.php 60
|
|
- $twit_user = json_decode($data);
|
|
+ $twit_user = json_decode($data);
|
|
hunk ./lib/twitter.php 62
|
|
- if (!$twit_user) {
|
|
- return false;
|
|
- }
|
|
+ if (!$twit_user) {
|
|
+ return false;
|
|
+ }
|
|
hunk ./lib/twitter.php 66
|
|
- return $twit_user;
|
|
+ return $twit_user;
|
|
hunk ./lib/twitter.php 71
|
|
- $original = clone($fuser);
|
|
- $fuser->nickname = $screen_name;
|
|
- $fuser->uri = 'http://twitter.com/' . $screen_name;
|
|
- $result = $fuser->updateKeys($original);
|
|
+ $original = clone($fuser);
|
|
+ $fuser->nickname = $screen_name;
|
|
+ $fuser->uri = 'http://twitter.com/' . $screen_name;
|
|
+ $result = $fuser->updateKeys($original);
|
|
hunk ./lib/twitter.php 76
|
|
- if (!$result) {
|
|
- common_log_db_error($fuser, 'UPDATE', __FILE__);
|
|
- return false;
|
|
- }
|
|
+ if (!$result) {
|
|
+ common_log_db_error($fuser, 'UPDATE', __FILE__);
|
|
+ return false;
|
|
+ }
|
|
hunk ./lib/twitter.php 81
|
|
- return true;
|
|
+ return true;
|
|
hunk ./lib/twitter.php 86
|
|
- // Otherwise, create a new Twitter user
|
|
- $fuser = DB_DataObject::factory('foreign_user');
|
|
+ // Otherwise, create a new Twitter user
|
|
+ $fuser = DB_DataObject::factory('foreign_user');
|
|
hunk ./lib/twitter.php 89
|
|
- $fuser->nickname = $screen_name;
|
|
- $fuser->uri = 'http://twitter.com/' . $screen_name;
|
|
- $fuser->id = $twitter_id;
|
|
- $fuser->service = 1; // Twitter
|
|
- $fuser->created = common_sql_now();
|
|
- $result = $fuser->insert();
|
|
+ $fuser->nickname = $screen_name;
|
|
+ $fuser->uri = 'http://twitter.com/' . $screen_name;
|
|
+ $fuser->id = $twitter_id;
|
|
+ $fuser->service = 1; // Twitter
|
|
+ $fuser->created = common_sql_now();
|
|
+ $result = $fuser->insert();
|
|
hunk ./lib/twitter.php 96
|
|
- if (!$result) {
|
|
- common_debug("Twitter bridge - failed to add new Twitter user: $twitter_id - $screen_name.");
|
|
- common_log_db_error($fuser, 'INSERT', __FILE__);
|
|
- return false;
|
|
- }
|
|
+ if (!$result) {
|
|
+ common_debug("Twitter bridge - failed to add new Twitter user: $twitter_id - $screen_name.");
|
|
+ common_log_db_error($fuser, 'INSERT', __FILE__);
|
|
+ return false;
|
|
+ }
|
|
hunk ./lib/twitter.php 102
|
|
- common_debug("Twitter bridge - Added new Twitter user: $screen_name ($twitter_id).");
|
|
+ common_debug("Twitter bridge - Added new Twitter user: $screen_name ($twitter_id).");
|
|
hunk ./lib/twitter.php 104
|
|
- return true;
|
|
+ return true;
|
|
hunk ./lib/twitter.php 110
|
|
- // Check to see whether the Twitter user is already in the system,
|
|
- // and update its screen name and uri if so.
|
|
- $fuser = Foreign_user::getForeignUser($twitter_id, 1);
|
|
+ // Check to see whether the Twitter user is already in the system,
|
|
+ // and update its screen name and uri if so.
|
|
+ $fuser = Foreign_user::getForeignUser($twitter_id, 1);
|
|
hunk ./lib/twitter.php 114
|
|
- if ($fuser) {
|
|
+ if ($fuser) {
|
|
hunk ./lib/twitter.php 116
|
|
- // Only update if Twitter screen name has changed
|
|
- if ($fuser->nickname != $screen_name) {
|
|
+ // Only update if Twitter screen name has changed
|
|
+ if ($fuser->nickname != $screen_name) {
|
|
hunk ./lib/twitter.php 119
|
|
- common_debug('Twitter bridge - Updated nickname (and URI) for Twitter user ' .
|
|
- "$fuser->id to $screen_name, was $fuser->nickname");
|
|
+ common_debug('Twitter bridge - Updated nickname (and URI) for Twitter user ' .
|
|
+ "$fuser->id to $screen_name, was $fuser->nickname");
|
|
hunk ./lib/twitter.php 122
|
|
- return update_twitter_user($fuser, $twitter_id, $screen_name);
|
|
- }
|
|
+ return update_twitter_user($fuser, $twitter_id, $screen_name);
|
|
+ }
|
|
hunk ./lib/twitter.php 125
|
|
- } else {
|
|
- return add_twitter_user($twitter_id, $screen_name);
|
|
- }
|
|
+ } else {
|
|
+ return add_twitter_user($twitter_id, $screen_name);
|
|
+ }
|
|
hunk ./lib/twitter.php 129
|
|
- return true;
|
|
+ return true;
|
|
hunk ./lib/twitter.php 134
|
|
- $uri = "http://twitter.com/statuses/friends/$twitter_id.json?page=";
|
|
- $twitter_user = twitter_user_info($screen_name, $password);
|
|
+ $uri = "http://twitter.com/statuses/friends/$twitter_id.json?page=";
|
|
+ $twitter_user = twitter_user_info($screen_name, $password);
|
|
hunk ./lib/twitter.php 137
|
|
- // Calculate how many pages to get...
|
|
- $pages = ceil($twitter_user->friends_count / 100);
|
|
+ // Calculate how many pages to get...
|
|
+ $pages = ceil($twitter_user->friends_count / 100);
|
|
hunk ./lib/twitter.php 140
|
|
- if ($pages == 0) {
|
|
- common_debug("Twitter bridge - Twitter user $screen_name has no friends! Lame.");
|
|
- }
|
|
+ if ($pages == 0) {
|
|
+ common_debug("Twitter bridge - Twitter user $screen_name has no friends! Lame.");
|
|
+ }
|
|
hunk ./lib/twitter.php 144
|
|
- $friends = array();
|
|
+ $friends = array();
|
|
hunk ./lib/twitter.php 146
|
|
- for ($i = 1; $i <= $pages; $i++) {
|
|
+ for ($i = 1; $i <= $pages; $i++) {
|
|
hunk ./lib/twitter.php 148
|
|
- $data = get_twitter_data($uri . $i, $screen_name, $password);
|
|
+ $data = get_twitter_data($uri . $i, $screen_name, $password);
|
|
hunk ./lib/twitter.php 150
|
|
- if (!$data) {
|
|
- return NULL;
|
|
- }
|
|
+ if (!$data) {
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./lib/twitter.php 154
|
|
- $more_friends = json_decode($data);
|
|
+ $more_friends = json_decode($data);
|
|
hunk ./lib/twitter.php 156
|
|
- if (!$more_friends) {
|
|
- return NULL;
|
|
- }
|
|
+ if (!$more_friends) {
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./lib/twitter.php 160
|
|
- $friends = array_merge($friends, $more_friends);
|
|
- }
|
|
+ $friends = array_merge($friends, $more_friends);
|
|
+ }
|
|
hunk ./lib/twitter.php 163
|
|
- return $friends;
|
|
+ return $friends;
|
|
hunk ./lib/twitter.php 168
|
|
- $friends = retreive_twitter_friends($twitter_id, $screen_name, $password);
|
|
+ $friends = retreive_twitter_friends($twitter_id, $screen_name, $password);
|
|
hunk ./lib/twitter.php 170
|
|
- if (is_null($friends)) {
|
|
- common_debug("Twitter bridge - Couldn't get friends data from Twitter.");
|
|
- return false;
|
|
- }
|
|
+ if (is_null($friends)) {
|
|
+ common_debug("Twitter bridge - Couldn't get friends data from Twitter.");
|
|
+ return false;
|
|
+ }
|
|
hunk ./lib/twitter.php 177
|
|
- $friend_name = $friend->screen_name;
|
|
- $friend_id = $friend->id;
|
|
+ $friend_name = $friend->screen_name;
|
|
+ $friend_id = $friend->id;
|
|
hunk ./lib/twitter.php 180
|
|
- // Update or create the Foreign_user record
|
|
- if (!save_twitter_user($friend_id, $friend_name)) {
|
|
- return false;
|
|
- }
|
|
+ // Update or create the Foreign_user record
|
|
+ if (!save_twitter_user($friend_id, $friend_name)) {
|
|
+ return false;
|
|
+ }
|
|
hunk ./lib/twitter.php 185
|
|
- // Check to see if there's a related local user
|
|
- $flink = Foreign_link::getByForeignID($friend_id, 1);
|
|
+ // Check to see if there's a related local user
|
|
+ $flink = Foreign_link::getByForeignID($friend_id, 1);
|
|
hunk ./lib/twitter.php 188
|
|
- if ($flink) {
|
|
+ if ($flink) {
|
|
hunk ./lib/twitter.php 190
|
|
- // Get associated user and subscribe her
|
|
- $friend_user = User::staticGet('id', $flink->user_id);
|
|
- subs_subscribe_to($user, $friend_user);
|
|
- common_debug("Twitter bridge - subscribed $friend_user->nickname to $user->nickname.");
|
|
- }
|
|
- }
|
|
+ // Get associated user and subscribe her
|
|
+ $friend_user = User::staticGet('id', $flink->user_id);
|
|
+ subs_subscribe_to($user, $friend_user);
|
|
+ common_debug("Twitter bridge - subscribed $friend_user->nickname to $user->nickname.");
|
|
+ }
|
|
+ }
|
|
hunk ./lib/twitter.php 197
|
|
- return true;
|
|
+ return true;
|
|
hunk ./lib/twitterapi.php 24
|
|
- var $auth_user;
|
|
+ var $auth_user;
|
|
hunk ./lib/twitterapi.php 26
|
|
- function handle($args) {
|
|
- parent::handle($args);
|
|
- }
|
|
+ function handle($args) {
|
|
+ parent::handle($args);
|
|
+ }
|
|
hunk ./lib/twitterapi.php 30
|
|
- function twitter_user_array($profile, $get_notice=false) {
|
|
+ function twitter_user_array($profile, $get_notice=false) {
|
|
hunk ./lib/twitterapi.php 32
|
|
- $twitter_user = array();
|
|
+ $twitter_user = array();
|
|
hunk ./lib/twitterapi.php 34
|
|
- $twitter_user['name'] = $profile->getBestName();
|
|
- $twitter_user['followers_count'] = $this->count_subscriptions($profile);
|
|
- $twitter_user['screen_name'] = $profile->nickname;
|
|
- $twitter_user['description'] = ($profile->bio) ? $profile->bio : NULL;
|
|
- $twitter_user['location'] = ($profile->location) ? $profile->location : NULL;
|
|
- $twitter_user['id'] = intval($profile->id);
|
|
+ $twitter_user['name'] = $profile->getBestName();
|
|
+ $twitter_user['followers_count'] = $this->count_subscriptions($profile);
|
|
+ $twitter_user['screen_name'] = $profile->nickname;
|
|
+ $twitter_user['description'] = ($profile->bio) ? $profile->bio : NULL;
|
|
+ $twitter_user['location'] = ($profile->location) ? $profile->location : NULL;
|
|
+ $twitter_user['id'] = intval($profile->id);
|
|
hunk ./lib/twitterapi.php 41
|
|
- $avatar = $profile->getAvatar(AVATAR_STREAM_SIZE);
|
|
+ $avatar = $profile->getAvatar(AVATAR_STREAM_SIZE);
|
|
hunk ./lib/twitterapi.php 43
|
|
- $twitter_user['profile_image_url'] = ($avatar) ? common_avatar_display_url($avatar) : common_default_avatar(AVATAR_STREAM_SIZE);
|
|
- $twitter_user['protected'] = 'false'; # not supported by Laconica yet
|
|
- $twitter_user['url'] = ($profile->homepage) ? $profile->homepage : NULL;
|
|
+ $twitter_user['profile_image_url'] = ($avatar) ? common_avatar_display_url($avatar) : common_default_avatar(AVATAR_STREAM_SIZE);
|
|
+ $twitter_user['protected'] = 'false'; # not supported by Laconica yet
|
|
+ $twitter_user['url'] = ($profile->homepage) ? $profile->homepage : NULL;
|
|
hunk ./lib/twitterapi.php 47
|
|
- if ($get_notice) {
|
|
- $notice = $profile->getCurrentNotice();
|
|
- if ($notice) {
|
|
- # don't get user!
|
|
- $twitter_user['status'] = $this->twitter_status_array($notice, false);
|
|
- }
|
|
- }
|
|
+ if ($get_notice) {
|
|
+ $notice = $profile->getCurrentNotice();
|
|
+ if ($notice) {
|
|
+ # don't get user!
|
|
+ $twitter_user['status'] = $this->twitter_status_array($notice, false);
|
|
+ }
|
|
+ }
|
|
hunk ./lib/twitterapi.php 55
|
|
- return $twitter_user;
|
|
- }
|
|
+ return $twitter_user;
|
|
+ }
|
|
hunk ./lib/twitterapi.php 58
|
|
- function twitter_status_array($notice, $include_user=true) {
|
|
+ function twitter_status_array($notice, $include_user=true) {
|
|
hunk ./lib/twitterapi.php 60
|
|
- $profile = $notice->getProfile();
|
|
+ $profile = $notice->getProfile();
|
|
hunk ./lib/twitterapi.php 62
|
|
- $twitter_status = array();
|
|
- $twitter_status['text'] = $notice->content;
|
|
- $twitter_status['truncated'] = 'false'; # Not possible on Laconica
|
|
- $twitter_status['created_at'] = $this->date_twitter($notice->created);
|
|
- $twitter_status['in_reply_to_status_id'] = ($notice->reply_to) ? intval($notice->reply_to) : NULL;
|
|
- $twitter_status['source'] = $this->source_link($notice->source);
|
|
- $twitter_status['id'] = intval($notice->id);
|
|
- $twitter_status['in_reply_to_user_id'] = ($notice->reply_to) ? $this->replier_by_reply(intval($notice->reply_to)) : NULL;
|
|
+ $twitter_status = array();
|
|
+ $twitter_status['text'] = $notice->content;
|
|
+ $twitter_status['truncated'] = 'false'; # Not possible on Laconica
|
|
+ $twitter_status['created_at'] = $this->date_twitter($notice->created);
|
|
+ $twitter_status['in_reply_to_status_id'] = ($notice->reply_to) ? intval($notice->reply_to) : NULL;
|
|
+ $twitter_status['source'] = $this->source_link($notice->source);
|
|
+ $twitter_status['id'] = intval($notice->id);
|
|
+ $twitter_status['in_reply_to_user_id'] = ($notice->reply_to) ? $this->replier_by_reply(intval($notice->reply_to)) : NULL;
|
|
hunk ./lib/twitterapi.php 71
|
|
- if (isset($this->auth_user)) {
|
|
- $twitter_status['favorited'] = ($this->auth_user->hasFave($notice)) ? 'true' : 'false';
|
|
- } else {
|
|
- $twitter_status['favorited'] = 'false';
|
|
- }
|
|
+ if (isset($this->auth_user)) {
|
|
+ $twitter_status['favorited'] = ($this->auth_user->hasFave($notice)) ? 'true' : 'false';
|
|
+ } else {
|
|
+ $twitter_status['favorited'] = 'false';
|
|
+ }
|
|
hunk ./lib/twitterapi.php 77
|
|
- if ($include_user) {
|
|
- # Don't get notice (recursive!)
|
|
- $twitter_user = $this->twitter_user_array($profile, false);
|
|
- $twitter_status['user'] = $twitter_user;
|
|
- }
|
|
+ if ($include_user) {
|
|
+ # Don't get notice (recursive!)
|
|
+ $twitter_user = $this->twitter_user_array($profile, false);
|
|
+ $twitter_status['user'] = $twitter_user;
|
|
+ }
|
|
hunk ./lib/twitterapi.php 83
|
|
- return $twitter_status;
|
|
- }
|
|
+ return $twitter_status;
|
|
+ }
|
|
hunk ./lib/twitterapi.php 86
|
|
- function twitter_rss_entry_array($notice) {
|
|
+ function twitter_rss_entry_array($notice) {
|
|
hunk ./lib/twitterapi.php 88
|
|
- $profile = $notice->getProfile();
|
|
+ $profile = $notice->getProfile();
|
|
hunk ./lib/twitterapi.php 90
|
|
- $server = common_config('site', 'server');
|
|
- $entry = array();
|
|
+ $server = common_config('site', 'server');
|
|
+ $entry = array();
|
|
hunk ./lib/twitterapi.php 95
|
|
- $entry['content'] = common_xml_safe_str(trim($notice->rendered));
|
|
- $entry['title'] = $profile->nickname . ': ' . common_xml_safe_str(trim($notice->content));
|
|
- $entry['link'] = common_local_url('shownotice', array('notice' => $notice->id));
|
|
- $entry['published'] = common_date_iso8601($notice->created);
|
|
- $entry['id'] = "tag:$server,2008:$entry[link]";
|
|
- $entry['updated'] = $entry['published'];
|
|
+ $entry['content'] = common_xml_safe_str(trim($notice->rendered));
|
|
+ $entry['title'] = $profile->nickname . ': ' . common_xml_safe_str(trim($notice->content));
|
|
+ $entry['link'] = common_local_url('shownotice', array('notice' => $notice->id));
|
|
+ $entry['published'] = common_date_iso8601($notice->created);
|
|
+ $entry['id'] = "tag:$server,2008:$entry[link]";
|
|
+ $entry['updated'] = $entry['published'];
|
|
hunk ./lib/twitterapi.php 102
|
|
- # RSS Item specific
|
|
- $entry['description'] = $entry['content'];
|
|
- $entry['pubDate'] = common_date_rfc2822($notice->created);
|
|
- $entry['guid'] = $entry['link'];
|
|
+ # RSS Item specific
|
|
+ $entry['description'] = $entry['content'];
|
|
+ $entry['pubDate'] = common_date_rfc2822($notice->created);
|
|
+ $entry['guid'] = $entry['link'];
|
|
hunk ./lib/twitterapi.php 107
|
|
- return $entry;
|
|
- }
|
|
+ return $entry;
|
|
+ }
|
|
hunk ./lib/twitterapi.php 110
|
|
- function twitter_rss_dmsg_array($message) {
|
|
+ function twitter_rss_dmsg_array($message) {
|
|
hunk ./lib/twitterapi.php 112
|
|
- $server = common_config('site', 'server');
|
|
- $entry = array();
|
|
+ $server = common_config('site', 'server');
|
|
+ $entry = array();
|
|
hunk ./lib/twitterapi.php 115
|
|
- $entry['title'] = sprintf('Message from %s to %s',
|
|
- $message->getFrom()->nickname, $message->getTo()->nickname);
|
|
+ $entry['title'] = sprintf('Message from %s to %s',
|
|
+ $message->getFrom()->nickname, $message->getTo()->nickname);
|
|
hunk ./lib/twitterapi.php 118
|
|
- $entry['content'] = common_xml_safe_str(trim($message->content));
|
|
- $entry['link'] = common_local_url('showmessage', array('message' => $message->id));
|
|
- $entry['published'] = common_date_iso8601($message->created);
|
|
- $entry['id'] = "tag:$server,2008:$entry[link]";
|
|
- $entry['updated'] = $entry['published'];
|
|
+ $entry['content'] = common_xml_safe_str(trim($message->content));
|
|
+ $entry['link'] = common_local_url('showmessage', array('message' => $message->id));
|
|
+ $entry['published'] = common_date_iso8601($message->created);
|
|
+ $entry['id'] = "tag:$server,2008:$entry[link]";
|
|
+ $entry['updated'] = $entry['published'];
|
|
hunk ./lib/twitterapi.php 124
|
|
- # RSS Item specific
|
|
- $entry['description'] = $entry['content'];
|
|
- $entry['pubDate'] = common_date_rfc2822($message->created);
|
|
- $entry['guid'] = $entry['link'];
|
|
+ # RSS Item specific
|
|
+ $entry['description'] = $entry['content'];
|
|
+ $entry['pubDate'] = common_date_rfc2822($message->created);
|
|
+ $entry['guid'] = $entry['link'];
|
|
hunk ./lib/twitterapi.php 129
|
|
- return $entry;
|
|
- }
|
|
+ return $entry;
|
|
+ }
|
|
hunk ./lib/twitterapi.php 132
|
|
- function twitter_dmsg_array($message) {
|
|
+ function twitter_dmsg_array($message) {
|
|
hunk ./lib/twitterapi.php 134
|
|
- $twitter_dm = array();
|
|
+ $twitter_dm = array();
|
|
hunk ./lib/twitterapi.php 136
|
|
- $from_profile = $message->getFrom();
|
|
- $to_profile = $message->getTo();
|
|
+ $from_profile = $message->getFrom();
|
|
+ $to_profile = $message->getTo();
|
|
hunk ./lib/twitterapi.php 139
|
|
- $twitter_dm['id'] = $message->id;
|
|
- $twitter_dm['sender_id'] = $message->from_profile;
|
|
- $twitter_dm['text'] = trim($message->content);
|
|
- $twitter_dm['recipient_id'] = $message->to_profile;
|
|
- $twitter_dm['created_at'] = $this->date_twitter($message->created);
|
|
- $twitter_dm['sender_screen_name'] = $from_profile->nickname;
|
|
- $twitter_dm['recipient_screen_name'] = $to_profile->nickname;
|
|
- $twitter_dm['sender'] = $this->twitter_user_array($from_profile, false);
|
|
- $twitter_dm['recipient'] = $this->twitter_user_array($to_profile, false);
|
|
+ $twitter_dm['id'] = $message->id;
|
|
+ $twitter_dm['sender_id'] = $message->from_profile;
|
|
+ $twitter_dm['text'] = trim($message->content);
|
|
+ $twitter_dm['recipient_id'] = $message->to_profile;
|
|
+ $twitter_dm['created_at'] = $this->date_twitter($message->created);
|
|
+ $twitter_dm['sender_screen_name'] = $from_profile->nickname;
|
|
+ $twitter_dm['recipient_screen_name'] = $to_profile->nickname;
|
|
+ $twitter_dm['sender'] = $this->twitter_user_array($from_profile, false);
|
|
+ $twitter_dm['recipient'] = $this->twitter_user_array($to_profile, false);
|
|
hunk ./lib/twitterapi.php 149
|
|
- return $twitter_dm;
|
|
- }
|
|
+ return $twitter_dm;
|
|
+ }
|
|
hunk ./lib/twitterapi.php 152
|
|
- function show_twitter_xml_status($twitter_status) {
|
|
- common_element_start('status');
|
|
- foreach($twitter_status as $element => $value) {
|
|
- switch ($element) {
|
|
- case 'user':
|
|
- $this->show_twitter_xml_user($twitter_status['user']);
|
|
- break;
|
|
- case 'text':
|
|
- common_element($element, NULL, common_xml_safe_str($value));
|
|
- break;
|
|
- default:
|
|
- common_element($element, NULL, $value);
|
|
- }
|
|
- }
|
|
- common_element_end('status');
|
|
- }
|
|
+ function show_twitter_xml_status($twitter_status) {
|
|
+ common_element_start('status');
|
|
+ foreach($twitter_status as $element => $value) {
|
|
+ switch ($element) {
|
|
+ case 'user':
|
|
+ $this->show_twitter_xml_user($twitter_status['user']);
|
|
+ break;
|
|
+ case 'text':
|
|
+ common_element($element, NULL, common_xml_safe_str($value));
|
|
+ break;
|
|
+ default:
|
|
+ common_element($element, NULL, $value);
|
|
+ }
|
|
+ }
|
|
+ common_element_end('status');
|
|
+ }
|
|
hunk ./lib/twitterapi.php 169
|
|
- function show_twitter_xml_user($twitter_user, $role='user') {
|
|
- common_element_start($role);
|
|
- foreach($twitter_user as $element => $value) {
|
|
- if ($element == 'status') {
|
|
- $this->show_twitter_xml_status($twitter_user['status']);
|
|
- } else {
|
|
- common_element($element, NULL, $value);
|
|
- }
|
|
- }
|
|
- common_element_end($role);
|
|
- }
|
|
+ function show_twitter_xml_user($twitter_user, $role='user') {
|
|
+ common_element_start($role);
|
|
+ foreach($twitter_user as $element => $value) {
|
|
+ if ($element == 'status') {
|
|
+ $this->show_twitter_xml_status($twitter_user['status']);
|
|
+ } else {
|
|
+ common_element($element, NULL, $value);
|
|
+ }
|
|
+ }
|
|
+ common_element_end($role);
|
|
+ }
|
|
hunk ./lib/twitterapi.php 181
|
|
- function show_twitter_rss_item($entry) {
|
|
- common_element_start('item');
|
|
- common_element('title', NULL, $entry['title']);
|
|
- common_element('description', NULL, $entry['description']);
|
|
- common_element('pubDate', NULL, $entry['pubDate']);
|
|
- common_element('guid', NULL, $entry['guid']);
|
|
- common_element('link', NULL, $entry['link']);
|
|
- common_element_end('item');
|
|
- }
|
|
+ function show_twitter_rss_item($entry) {
|
|
+ common_element_start('item');
|
|
+ common_element('title', NULL, $entry['title']);
|
|
+ common_element('description', NULL, $entry['description']);
|
|
+ common_element('pubDate', NULL, $entry['pubDate']);
|
|
+ common_element('guid', NULL, $entry['guid']);
|
|
+ common_element('link', NULL, $entry['link']);
|
|
+ common_element_end('item');
|
|
+ }
|
|
hunk ./lib/twitterapi.php 191
|
|
- function show_twitter_atom_entry($entry) {
|
|
- common_element_start('entry');
|
|
- common_element('title', NULL, $entry['title']);
|
|
- common_element('content', array('type' => 'html'), $entry['content']);
|
|
- common_element('id', NULL, $entry['id']);
|
|
- common_element('published', NULL, $entry['published']);
|
|
- common_element('updated', NULL, $entry['updated']);
|
|
- common_element('link', array('href' => $entry['link'], 'rel' => 'alternate', 'type' => 'text/html'), NULL);
|
|
- common_element_end('entry');
|
|
- }
|
|
+ function show_twitter_atom_entry($entry) {
|
|
+ common_element_start('entry');
|
|
+ common_element('title', NULL, $entry['title']);
|
|
+ common_element('content', array('type' => 'html'), $entry['content']);
|
|
+ common_element('id', NULL, $entry['id']);
|
|
+ common_element('published', NULL, $entry['published']);
|
|
+ common_element('updated', NULL, $entry['updated']);
|
|
+ common_element('link', array('href' => $entry['link'], 'rel' => 'alternate', 'type' => 'text/html'), NULL);
|
|
+ common_element_end('entry');
|
|
+ }
|
|
hunk ./lib/twitterapi.php 202
|
|
- function show_json_objects($objects) {
|
|
- print(json_encode($objects));
|
|
- }
|
|
+ function show_json_objects($objects) {
|
|
+ print(json_encode($objects));
|
|
+ }
|
|
hunk ./lib/twitterapi.php 206
|
|
- function show_single_xml_status($notice) {
|
|
- $this->init_document('xml');
|
|
- $twitter_status = $this->twitter_status_array($notice);
|
|
- $this->show_twitter_xml_status($twitter_status);
|
|
- $this->end_document('xml');
|
|
- }
|
|
+ function show_single_xml_status($notice) {
|
|
+ $this->init_document('xml');
|
|
+ $twitter_status = $this->twitter_status_array($notice);
|
|
+ $this->show_twitter_xml_status($twitter_status);
|
|
+ $this->end_document('xml');
|
|
+ }
|
|
hunk ./lib/twitterapi.php 213
|
|
- function show_single_json_status($notice) {
|
|
- $this->init_document('json');
|
|
- $status = $this->twitter_status_array($notice);
|
|
- $this->show_json_objects($status);
|
|
- $this->end_document('json');
|
|
- }
|
|
+ function show_single_json_status($notice) {
|
|
+ $this->init_document('json');
|
|
+ $status = $this->twitter_status_array($notice);
|
|
+ $this->show_json_objects($status);
|
|
+ $this->end_document('json');
|
|
+ }
|
|
hunk ./lib/twitterapi.php 220
|
|
- function show_single_xml_dmsg($message) {
|
|
- $this->init_document('xml');
|
|
- $dmsg = $this->twitter_dmsg_array($message);
|
|
- $this->show_twitter_xml_dmsg($dmsg);
|
|
- $this->end_document('xml');
|
|
- }
|
|
+ function show_single_xml_dmsg($message) {
|
|
+ $this->init_document('xml');
|
|
+ $dmsg = $this->twitter_dmsg_array($message);
|
|
+ $this->show_twitter_xml_dmsg($dmsg);
|
|
+ $this->end_document('xml');
|
|
+ }
|
|
hunk ./lib/twitterapi.php 227
|
|
- function show_single_json_dmsg($message) {
|
|
- $this->init_document('json');
|
|
- $dmsg = $this->twitter_dmsg_array($message);
|
|
- $this->show_json_objects($dmsg);
|
|
- $this->end_document('json');
|
|
- }
|
|
+ function show_single_json_dmsg($message) {
|
|
+ $this->init_document('json');
|
|
+ $dmsg = $this->twitter_dmsg_array($message);
|
|
+ $this->show_json_objects($dmsg);
|
|
+ $this->end_document('json');
|
|
+ }
|
|
hunk ./lib/twitterapi.php 234
|
|
- function show_twitter_xml_dmsg($twitter_dm) {
|
|
- common_element_start('direct_message');
|
|
- foreach($twitter_dm as $element => $value) {
|
|
- switch ($element) {
|
|
- case 'sender':
|
|
- case 'recipient':
|
|
- $this->show_twitter_xml_user($value, $element);
|
|
- break;
|
|
- case 'text':
|
|
- common_element($element, NULL, common_xml_safe_str($value));
|
|
- break;
|
|
- default:
|
|
- common_element($element, NULL, $value);
|
|
- }
|
|
- }
|
|
- common_element_end('direct_message');
|
|
- }
|
|
+ function show_twitter_xml_dmsg($twitter_dm) {
|
|
+ common_element_start('direct_message');
|
|
+ foreach($twitter_dm as $element => $value) {
|
|
+ switch ($element) {
|
|
+ case 'sender':
|
|
+ case 'recipient':
|
|
+ $this->show_twitter_xml_user($value, $element);
|
|
+ break;
|
|
+ case 'text':
|
|
+ common_element($element, NULL, common_xml_safe_str($value));
|
|
+ break;
|
|
+ default:
|
|
+ common_element($element, NULL, $value);
|
|
+ }
|
|
+ }
|
|
+ common_element_end('direct_message');
|
|
+ }
|
|
hunk ./lib/twitterapi.php 252
|
|
- function show_xml_timeline($notice) {
|
|
+ function show_xml_timeline($notice) {
|
|
hunk ./lib/twitterapi.php 254
|
|
- $this->init_document('xml');
|
|
- common_element_start('statuses', array('type' => 'array'));
|
|
+ $this->init_document('xml');
|
|
+ common_element_start('statuses', array('type' => 'array'));
|
|
hunk ./lib/twitterapi.php 257
|
|
- if (is_array($notice)) {
|
|
- foreach ($notice as $n) {
|
|
- $twitter_status = $this->twitter_status_array($n);
|
|
- $this->show_twitter_xml_status($twitter_status);
|
|
- }
|
|
- } else {
|
|
- while ($notice->fetch()) {
|
|
- $twitter_status = $this->twitter_status_array($notice);
|
|
- $this->show_twitter_xml_status($twitter_status);
|
|
- }
|
|
- }
|
|
+ if (is_array($notice)) {
|
|
+ foreach ($notice as $n) {
|
|
+ $twitter_status = $this->twitter_status_array($n);
|
|
+ $this->show_twitter_xml_status($twitter_status);
|
|
+ }
|
|
+ } else {
|
|
+ while ($notice->fetch()) {
|
|
+ $twitter_status = $this->twitter_status_array($notice);
|
|
+ $this->show_twitter_xml_status($twitter_status);
|
|
+ }
|
|
+ }
|
|
hunk ./lib/twitterapi.php 269
|
|
- common_element_end('statuses');
|
|
- $this->end_document('xml');
|
|
- }
|
|
+ common_element_end('statuses');
|
|
+ $this->end_document('xml');
|
|
+ }
|
|
hunk ./lib/twitterapi.php 273
|
|
- function show_rss_timeline($notice, $title, $link, $subtitle, $suplink=NULL) {
|
|
+ function show_rss_timeline($notice, $title, $link, $subtitle, $suplink=NULL) {
|
|
hunk ./lib/twitterapi.php 275
|
|
- $this->init_document('rss');
|
|
+ $this->init_document('rss');
|
|
hunk ./lib/twitterapi.php 277
|
|
- common_element_start('channel');
|
|
- common_element('title', NULL, $title);
|
|
- common_element('link', NULL, $link);
|
|
- if (!is_null($suplink)) {
|
|
- # For FriendFeed's SUP protocol
|
|
- common_element('link', array('xmlns' => 'http://www.w3.org/2005/Atom',
|
|
- 'rel' => 'http://api.friendfeed.com/2008/03#sup',
|
|
- 'href' => $suplink,
|
|
- 'type' => 'application/json'));
|
|
- }
|
|
- common_element('description', NULL, $subtitle);
|
|
- common_element('language', NULL, 'en-us');
|
|
- common_element('ttl', NULL, '40');
|
|
+ common_element_start('channel');
|
|
+ common_element('title', NULL, $title);
|
|
+ common_element('link', NULL, $link);
|
|
+ if (!is_null($suplink)) {
|
|
+ # For FriendFeed's SUP protocol
|
|
+ common_element('link', array('xmlns' => 'http://www.w3.org/2005/Atom',
|
|
+ 'rel' => 'http://api.friendfeed.com/2008/03#sup',
|
|
+ 'href' => $suplink,
|
|
+ 'type' => 'application/json'));
|
|
+ }
|
|
+ common_element('description', NULL, $subtitle);
|
|
+ common_element('language', NULL, 'en-us');
|
|
+ common_element('ttl', NULL, '40');
|
|
hunk ./lib/twitterapi.php 291
|
|
- if (is_array($notice)) {
|
|
- foreach ($notice as $n) {
|
|
- $entry = $this->twitter_rss_entry_array($n);
|
|
- $this->show_twitter_rss_item($entry);
|
|
- }
|
|
- } else {
|
|
- while ($notice->fetch()) {
|
|
- $entry = $this->twitter_rss_entry_array($notice);
|
|
- $this->show_twitter_rss_item($entry);
|
|
- }
|
|
- }
|
|
+ if (is_array($notice)) {
|
|
+ foreach ($notice as $n) {
|
|
+ $entry = $this->twitter_rss_entry_array($n);
|
|
+ $this->show_twitter_rss_item($entry);
|
|
+ }
|
|
+ } else {
|
|
+ while ($notice->fetch()) {
|
|
+ $entry = $this->twitter_rss_entry_array($notice);
|
|
+ $this->show_twitter_rss_item($entry);
|
|
+ }
|
|
+ }
|
|
hunk ./lib/twitterapi.php 303
|
|
- common_element_end('channel');
|
|
- $this->end_twitter_rss();
|
|
- }
|
|
+ common_element_end('channel');
|
|
+ $this->end_twitter_rss();
|
|
+ }
|
|
hunk ./lib/twitterapi.php 307
|
|
- function show_atom_timeline($notice, $title, $id, $link, $subtitle=NULL, $suplink=NULL) {
|
|
+ function show_atom_timeline($notice, $title, $id, $link, $subtitle=NULL, $suplink=NULL) {
|
|
hunk ./lib/twitterapi.php 309
|
|
- $this->init_document('atom');
|
|
+ $this->init_document('atom');
|
|
hunk ./lib/twitterapi.php 311
|
|
- common_element('title', NULL, $title);
|
|
- common_element('id', NULL, $id);
|
|
- common_element('link', array('href' => $link, 'rel' => 'alternate', 'type' => 'text/html'), NULL);
|
|
- if (!is_null($suplink)) {
|
|
- # For FriendFeed's SUP protocol
|
|
- common_element('link', array('rel' => 'http://api.friendfeed.com/2008/03#sup',
|
|
- 'href' => $suplink,
|
|
- 'type' => 'application/json'));
|
|
- }
|
|
- common_element('subtitle', NULL, $subtitle);
|
|
+ common_element('title', NULL, $title);
|
|
+ common_element('id', NULL, $id);
|
|
+ common_element('link', array('href' => $link, 'rel' => 'alternate', 'type' => 'text/html'), NULL);
|
|
+ if (!is_null($suplink)) {
|
|
+ # For FriendFeed's SUP protocol
|
|
+ common_element('link', array('rel' => 'http://api.friendfeed.com/2008/03#sup',
|
|
+ 'href' => $suplink,
|
|
+ 'type' => 'application/json'));
|
|
+ }
|
|
+ common_element('subtitle', NULL, $subtitle);
|
|
hunk ./lib/twitterapi.php 322
|
|
- if (is_array($notice)) {
|
|
- foreach ($notice as $n) {
|
|
- $entry = $this->twitter_rss_entry_array($n);
|
|
- $this->show_twitter_atom_entry($entry);
|
|
- }
|
|
- } else {
|
|
- while ($notice->fetch()) {
|
|
- $entry = $this->twitter_rss_entry_array($notice);
|
|
- $this->show_twitter_atom_entry($entry);
|
|
- }
|
|
- }
|
|
+ if (is_array($notice)) {
|
|
+ foreach ($notice as $n) {
|
|
+ $entry = $this->twitter_rss_entry_array($n);
|
|
+ $this->show_twitter_atom_entry($entry);
|
|
+ }
|
|
+ } else {
|
|
+ while ($notice->fetch()) {
|
|
+ $entry = $this->twitter_rss_entry_array($notice);
|
|
+ $this->show_twitter_atom_entry($entry);
|
|
+ }
|
|
+ }
|
|
hunk ./lib/twitterapi.php 334
|
|
- $this->end_document('atom');
|
|
+ $this->end_document('atom');
|
|
hunk ./lib/twitterapi.php 336
|
|
- }
|
|
+ }
|
|
hunk ./lib/twitterapi.php 338
|
|
- function show_json_timeline($notice) {
|
|
+ function show_json_timeline($notice) {
|
|
hunk ./lib/twitterapi.php 340
|
|
- $this->init_document('json');
|
|
+ $this->init_document('json');
|
|
hunk ./lib/twitterapi.php 342
|
|
- $statuses = array();
|
|
+ $statuses = array();
|
|
hunk ./lib/twitterapi.php 344
|
|
- if (is_array($notice)) {
|
|
- foreach ($notice as $n) {
|
|
- $twitter_status = $this->twitter_status_array($n);
|
|
- array_push($statuses, $twitter_status);
|
|
- }
|
|
- } else {
|
|
- while ($notice->fetch()) {
|
|
- $twitter_status = $this->twitter_status_array($notice);
|
|
- array_push($statuses, $twitter_status);
|
|
- }
|
|
- }
|
|
+ if (is_array($notice)) {
|
|
+ foreach ($notice as $n) {
|
|
+ $twitter_status = $this->twitter_status_array($n);
|
|
+ array_push($statuses, $twitter_status);
|
|
+ }
|
|
+ } else {
|
|
+ while ($notice->fetch()) {
|
|
+ $twitter_status = $this->twitter_status_array($notice);
|
|
+ array_push($statuses, $twitter_status);
|
|
+ }
|
|
+ }
|
|
hunk ./lib/twitterapi.php 356
|
|
- $this->show_json_objects($statuses);
|
|
+ $this->show_json_objects($statuses);
|
|
hunk ./lib/twitterapi.php 358
|
|
- $this->end_document('json');
|
|
- }
|
|
+ $this->end_document('json');
|
|
+ }
|
|
hunk ./lib/twitterapi.php 361
|
|
- // Anyone know what date format this is?
|
|
- // Twitter's dates look like this: "Mon Jul 14 23:52:38 +0000 2008" -- Zach
|
|
- function date_twitter($dt) {
|
|
- $t = strtotime($dt);
|
|
- return date("D M d G:i:s O Y", $t);
|
|
- }
|
|
+ // Anyone know what date format this is?
|
|
+ // Twitter's dates look like this: "Mon Jul 14 23:52:38 +0000 2008" -- Zach
|
|
+ function date_twitter($dt) {
|
|
+ $t = strtotime($dt);
|
|
+ return date("D M d G:i:s O Y", $t);
|
|
+ }
|
|
hunk ./lib/twitterapi.php 368
|
|
- function replier_by_reply($reply_id) {
|
|
- $notice = Notice::staticGet($reply_id);
|
|
- if ($notice) {
|
|
- $profile = $notice->getProfile();
|
|
- if ($profile) {
|
|
- return intval($profile->id);
|
|
- } else {
|
|
- common_debug('Can\'t find a profile for notice: ' . $notice->id, __FILE__);
|
|
- }
|
|
- } else {
|
|
- common_debug("Can't get notice: $reply_id", __FILE__);
|
|
- }
|
|
- return NULL;
|
|
- }
|
|
+ function replier_by_reply($reply_id) {
|
|
+ $notice = Notice::staticGet($reply_id);
|
|
+ if ($notice) {
|
|
+ $profile = $notice->getProfile();
|
|
+ if ($profile) {
|
|
+ return intval($profile->id);
|
|
+ } else {
|
|
+ common_debug('Can\'t find a profile for notice: ' . $notice->id, __FILE__);
|
|
+ }
|
|
+ } else {
|
|
+ common_debug("Can't get notice: $reply_id", __FILE__);
|
|
+ }
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./lib/twitterapi.php 383
|
|
- // XXX: Candidate for a general utility method somewhere?
|
|
- function count_subscriptions($profile) {
|
|
+ // XXX: Candidate for a general utility method somewhere?
|
|
+ function count_subscriptions($profile) {
|
|
hunk ./lib/twitterapi.php 386
|
|
- $count = 0;
|
|
- $sub = new Subscription();
|
|
- $sub->subscribed = $profile->id;
|
|
+ $count = 0;
|
|
+ $sub = new Subscription();
|
|
+ $sub->subscribed = $profile->id;
|
|
hunk ./lib/twitterapi.php 390
|
|
- $count = $sub->find();
|
|
+ $count = $sub->find();
|
|
hunk ./lib/twitterapi.php 392
|
|
- if ($count > 0) {
|
|
- return $count - 1;
|
|
- } else {
|
|
- return 0;
|
|
- }
|
|
- }
|
|
+ if ($count > 0) {
|
|
+ return $count - 1;
|
|
+ } else {
|
|
+ return 0;
|
|
+ }
|
|
+ }
|
|
hunk ./lib/twitterapi.php 399
|
|
- function init_document($type='xml') {
|
|
- switch ($type) {
|
|
- case 'xml':
|
|
- header('Content-Type: application/xml; charset=utf-8');
|
|
- common_start_xml();
|
|
- break;
|
|
- case 'json':
|
|
- header('Content-Type: application/json; charset=utf-8');
|
|
+ function init_document($type='xml') {
|
|
+ switch ($type) {
|
|
+ case 'xml':
|
|
+ header('Content-Type: application/xml; charset=utf-8');
|
|
+ common_start_xml();
|
|
+ break;
|
|
+ case 'json':
|
|
+ header('Content-Type: application/json; charset=utf-8');
|
|
hunk ./lib/twitterapi.php 408
|
|
- // Check for JSONP callback
|
|
- $callback = $this->arg('callback');
|
|
- if ($callback) {
|
|
- print $callback . '(';
|
|
- }
|
|
- break;
|
|
- case 'rss':
|
|
- header("Content-Type: application/rss+xml; charset=utf-8");
|
|
- $this->init_twitter_rss();
|
|
- break;
|
|
- case 'atom':
|
|
- header('Content-Type: application/atom+xml; charset=utf-8');
|
|
- $this->init_twitter_atom();
|
|
- break;
|
|
- default:
|
|
- $this->client_error(_('Not a supported data format.'));
|
|
- break;
|
|
- }
|
|
+ // Check for JSONP callback
|
|
+ $callback = $this->arg('callback');
|
|
+ if ($callback) {
|
|
+ print $callback . '(';
|
|
+ }
|
|
+ break;
|
|
+ case 'rss':
|
|
+ header("Content-Type: application/rss+xml; charset=utf-8");
|
|
+ $this->init_twitter_rss();
|
|
+ break;
|
|
+ case 'atom':
|
|
+ header('Content-Type: application/atom+xml; charset=utf-8');
|
|
+ $this->init_twitter_atom();
|
|
+ break;
|
|
+ default:
|
|
+ $this->client_error(_('Not a supported data format.'));
|
|
+ break;
|
|
+ }
|
|
hunk ./lib/twitterapi.php 427
|
|
- return;
|
|
- }
|
|
+ return;
|
|
+ }
|
|
hunk ./lib/twitterapi.php 430
|
|
- function end_document($type='xml') {
|
|
- switch ($type) {
|
|
- case 'xml':
|
|
- common_end_xml();
|
|
- break;
|
|
- case 'json':
|
|
+ function end_document($type='xml') {
|
|
+ switch ($type) {
|
|
+ case 'xml':
|
|
+ common_end_xml();
|
|
+ break;
|
|
+ case 'json':
|
|
hunk ./lib/twitterapi.php 437
|
|
- // Check for JSONP callback
|
|
- $callback = $this->arg('callback');
|
|
- if ($callback) {
|
|
- print ')';
|
|
- }
|
|
- break;
|
|
- case 'rss':
|
|
- $this->end_twitter_rss();
|
|
- break;
|
|
- case 'atom':
|
|
- $this->end_twitter_rss();
|
|
- break;
|
|
- default:
|
|
- $this->client_error(_('Not a supported data format.'));
|
|
- break;
|
|
- }
|
|
- return;
|
|
- }
|
|
+ // Check for JSONP callback
|
|
+ $callback = $this->arg('callback');
|
|
+ if ($callback) {
|
|
+ print ')';
|
|
+ }
|
|
+ break;
|
|
+ case 'rss':
|
|
+ $this->end_twitter_rss();
|
|
+ break;
|
|
+ case 'atom':
|
|
+ $this->end_twitter_rss();
|
|
+ break;
|
|
+ default:
|
|
+ $this->client_error(_('Not a supported data format.'));
|
|
+ break;
|
|
+ }
|
|
+ return;
|
|
+ }
|
|
hunk ./lib/twitterapi.php 456
|
|
- function client_error($msg, $code = 400, $content_type = 'json') {
|
|
+ function client_error($msg, $code = 400, $content_type = 'json') {
|
|
hunk ./lib/twitterapi.php 458
|
|
- static $status = array(400 => 'Bad Request',
|
|
- 401 => 'Unauthorized',
|
|
- 402 => 'Payment Required',
|
|
- 403 => 'Forbidden',
|
|
- 404 => 'Not Found',
|
|
- 405 => 'Method Not Allowed',
|
|
- 406 => 'Not Acceptable',
|
|
- 407 => 'Proxy Authentication Required',
|
|
- 408 => 'Request Timeout',
|
|
- 409 => 'Conflict',
|
|
- 410 => 'Gone',
|
|
- 411 => 'Length Required',
|
|
- 412 => 'Precondition Failed',
|
|
- 413 => 'Request Entity Too Large',
|
|
- 414 => 'Request-URI Too Long',
|
|
- 415 => 'Unsupported Media Type',
|
|
- 416 => 'Requested Range Not Satisfiable',
|
|
- 417 => 'Expectation Failed');
|
|
+ static $status = array(400 => 'Bad Request',
|
|
+ 401 => 'Unauthorized',
|
|
+ 402 => 'Payment Required',
|
|
+ 403 => 'Forbidden',
|
|
+ 404 => 'Not Found',
|
|
+ 405 => 'Method Not Allowed',
|
|
+ 406 => 'Not Acceptable',
|
|
+ 407 => 'Proxy Authentication Required',
|
|
+ 408 => 'Request Timeout',
|
|
+ 409 => 'Conflict',
|
|
+ 410 => 'Gone',
|
|
+ 411 => 'Length Required',
|
|
+ 412 => 'Precondition Failed',
|
|
+ 413 => 'Request Entity Too Large',
|
|
+ 414 => 'Request-URI Too Long',
|
|
+ 415 => 'Unsupported Media Type',
|
|
+ 416 => 'Requested Range Not Satisfiable',
|
|
+ 417 => 'Expectation Failed');
|
|
hunk ./lib/twitterapi.php 477
|
|
- $action = $this->trimmed('action');
|
|
+ $action = $this->trimmed('action');
|
|
hunk ./lib/twitterapi.php 479
|
|
- common_debug("User error '$code' on '$action': $msg", __FILE__);
|
|
+ common_debug("User error '$code' on '$action': $msg", __FILE__);
|
|
hunk ./lib/twitterapi.php 481
|
|
- if (!array_key_exists($code, $status)) {
|
|
- $code = 400;
|
|
- }
|
|
+ if (!array_key_exists($code, $status)) {
|
|
+ $code = 400;
|
|
+ }
|
|
hunk ./lib/twitterapi.php 485
|
|
- $status_string = $status[$code];
|
|
- header('HTTP/1.1 '.$code.' '.$status_string);
|
|
+ $status_string = $status[$code];
|
|
+ header('HTTP/1.1 '.$code.' '.$status_string);
|
|
hunk ./lib/twitterapi.php 488
|
|
- if ($content_type == 'xml') {
|
|
- $this->init_document('xml');
|
|
- common_element_start('hash');
|
|
- common_element('error', NULL, $msg);
|
|
- common_element('request', NULL, $_SERVER['REQUEST_URI']);
|
|
- common_element_end('hash');
|
|
- $this->end_document('xml');
|
|
- } else {
|
|
- $this->init_document('json');
|
|
- $error_array = array('error' => $msg, 'request' => $_SERVER['REQUEST_URI']);
|
|
- print(json_encode($error_array));
|
|
- $this->end_document('json');
|
|
- }
|
|
+ if ($content_type == 'xml') {
|
|
+ $this->init_document('xml');
|
|
+ common_element_start('hash');
|
|
+ common_element('error', NULL, $msg);
|
|
+ common_element('request', NULL, $_SERVER['REQUEST_URI']);
|
|
+ common_element_end('hash');
|
|
+ $this->end_document('xml');
|
|
+ } else {
|
|
+ $this->init_document('json');
|
|
+ $error_array = array('error' => $msg, 'request' => $_SERVER['REQUEST_URI']);
|
|
+ print(json_encode($error_array));
|
|
+ $this->end_document('json');
|
|
+ }
|
|
hunk ./lib/twitterapi.php 502
|
|
- }
|
|
+ }
|
|
hunk ./lib/twitterapi.php 504
|
|
- function init_twitter_rss() {
|
|
- common_start_xml();
|
|
- common_element_start('rss', array('version' => '2.0'));
|
|
- }
|
|
+ function init_twitter_rss() {
|
|
+ common_start_xml();
|
|
+ common_element_start('rss', array('version' => '2.0'));
|
|
+ }
|
|
hunk ./lib/twitterapi.php 509
|
|
- function end_twitter_rss() {
|
|
- common_element_end('rss');
|
|
- common_end_xml();
|
|
- }
|
|
+ function end_twitter_rss() {
|
|
+ common_element_end('rss');
|
|
+ common_end_xml();
|
|
+ }
|
|
hunk ./lib/twitterapi.php 514
|
|
- function init_twitter_atom() {
|
|
- common_start_xml();
|
|
- common_element_start('feed', array('xmlns' => 'http://www.w3.org/2005/Atom', 'xml:lang' => 'en-US'));
|
|
- }
|
|
+ function init_twitter_atom() {
|
|
+ common_start_xml();
|
|
+ common_element_start('feed', array('xmlns' => 'http://www.w3.org/2005/Atom', 'xml:lang' => 'en-US'));
|
|
+ }
|
|
hunk ./lib/twitterapi.php 519
|
|
- function end_twitter_atom() {
|
|
- common_end_xml();
|
|
- common_element_end('feed');
|
|
- }
|
|
+ function end_twitter_atom() {
|
|
+ common_end_xml();
|
|
+ common_element_end('feed');
|
|
+ }
|
|
hunk ./lib/twitterapi.php 524
|
|
- function show_profile($profile, $content_type='xml', $notice=NULL) {
|
|
- $profile_array = $this->twitter_user_array($profile, true);
|
|
- switch ($content_type) {
|
|
- case 'xml':
|
|
- $this->show_twitter_xml_user($profile_array);
|
|
- break;
|
|
- case 'json':
|
|
- $this->show_json_objects($profile_array);
|
|
- break;
|
|
- default:
|
|
- $this->client_error(_('Not a supported data format.'));
|
|
- return;
|
|
- }
|
|
- return;
|
|
- }
|
|
+ function show_profile($profile, $content_type='xml', $notice=NULL) {
|
|
+ $profile_array = $this->twitter_user_array($profile, true);
|
|
+ switch ($content_type) {
|
|
+ case 'xml':
|
|
+ $this->show_twitter_xml_user($profile_array);
|
|
+ break;
|
|
+ case 'json':
|
|
+ $this->show_json_objects($profile_array);
|
|
+ break;
|
|
+ default:
|
|
+ $this->client_error(_('Not a supported data format.'));
|
|
+ return;
|
|
+ }
|
|
+ return;
|
|
+ }
|
|
hunk ./lib/twitterapi.php 540
|
|
- function get_user($id, $apidata=NULL) {
|
|
- if (!$id) {
|
|
- return $apidata['user'];
|
|
- } else if (is_numeric($id)) {
|
|
- return User::staticGet($id);
|
|
- } else {
|
|
- $nickname = common_canonical_nickname($id);
|
|
- return User::staticGet('nickname', $nickname);
|
|
- }
|
|
- }
|
|
+ function get_user($id, $apidata=NULL) {
|
|
+ if (!$id) {
|
|
+ return $apidata['user'];
|
|
+ } else if (is_numeric($id)) {
|
|
+ return User::staticGet($id);
|
|
+ } else {
|
|
+ $nickname = common_canonical_nickname($id);
|
|
+ return User::staticGet('nickname', $nickname);
|
|
+ }
|
|
+ }
|
|
hunk ./lib/twitterapi.php 551
|
|
- function get_profile($id) {
|
|
- if (is_numeric($id)) {
|
|
- return Profile::staticGet($id);
|
|
- } else {
|
|
- $user = User::staticGet('nickname', $id);
|
|
- if ($user) {
|
|
- return $user->getProfile();
|
|
- } else {
|
|
- return NULL;
|
|
- }
|
|
- }
|
|
- }
|
|
+ function get_profile($id) {
|
|
+ if (is_numeric($id)) {
|
|
+ return Profile::staticGet($id);
|
|
+ } else {
|
|
+ $user = User::staticGet('nickname', $id);
|
|
+ if ($user) {
|
|
+ return $user->getProfile();
|
|
+ } else {
|
|
+ return NULL;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
hunk ./lib/twitterapi.php 564
|
|
- function source_link($source) {
|
|
- $source_name = _($source);
|
|
- switch ($source) {
|
|
- case 'web':
|
|
- case 'xmpp':
|
|
- case 'mail':
|
|
- case 'omb':
|
|
- case 'api':
|
|
- break;
|
|
- default:
|
|
- $ns = Notice_source::staticGet($source);
|
|
- if ($ns) {
|
|
- $source_name = '<a href="' . $ns->url . '">' . $ns->name . '</a>';
|
|
- }
|
|
- break;
|
|
- }
|
|
- return $source_name;
|
|
- }
|
|
+ function source_link($source) {
|
|
+ $source_name = _($source);
|
|
+ switch ($source) {
|
|
+ case 'web':
|
|
+ case 'xmpp':
|
|
+ case 'mail':
|
|
+ case 'omb':
|
|
+ case 'api':
|
|
+ break;
|
|
+ default:
|
|
+ $ns = Notice_source::staticGet($source);
|
|
+ if ($ns) {
|
|
+ $source_name = '<a href="' . $ns->url . '">' . $ns->name . '</a>';
|
|
+ }
|
|
+ break;
|
|
+ }
|
|
+ return $source_name;
|
|
+ }
|
|
hunk ./lib/twitterapi.php 583
|
|
- function show_extended_profile($user, $apidata) {
|
|
+ function show_extended_profile($user, $apidata) {
|
|
hunk ./lib/twitterapi.php 585
|
|
- $this->auth_user = $apidata['user'];
|
|
+ $this->auth_user = $apidata['user'];
|
|
hunk ./lib/twitterapi.php 587
|
|
- $profile = $user->getProfile();
|
|
+ $profile = $user->getProfile();
|
|
hunk ./lib/twitterapi.php 589
|
|
- if (!$profile) {
|
|
- common_server_error(_('User has no profile.'));
|
|
- return;
|
|
- }
|
|
+ if (!$profile) {
|
|
+ common_server_error(_('User has no profile.'));
|
|
+ return;
|
|
+ }
|
|
hunk ./lib/twitterapi.php 594
|
|
- $twitter_user = $this->twitter_user_array($profile, true);
|
|
+ $twitter_user = $this->twitter_user_array($profile, true);
|
|
hunk ./lib/twitterapi.php 596
|
|
- // Add in extended user fields offered up by this method
|
|
- $twitter_user['created_at'] = $this->date_twitter($profile->created);
|
|
+ // Add in extended user fields offered up by this method
|
|
+ $twitter_user['created_at'] = $this->date_twitter($profile->created);
|
|
hunk ./lib/twitterapi.php 599
|
|
- $subbed = DB_DataObject::factory('subscription');
|
|
- $subbed->subscriber = $profile->id;
|
|
- $subbed_count = (int) $subbed->count() - 1;
|
|
+ $subbed = DB_DataObject::factory('subscription');
|
|
+ $subbed->subscriber = $profile->id;
|
|
+ $subbed_count = (int) $subbed->count() - 1;
|
|
hunk ./lib/twitterapi.php 603
|
|
- $notices = DB_DataObject::factory('notice');
|
|
- $notices->profile_id = $profile->id;
|
|
- $notice_count = (int) $notices->count();
|
|
+ $notices = DB_DataObject::factory('notice');
|
|
+ $notices->profile_id = $profile->id;
|
|
+ $notice_count = (int) $notices->count();
|
|
hunk ./lib/twitterapi.php 607
|
|
- $twitter_user['friends_count'] = (is_int($subbed_count)) ? $subbed_count : 0;
|
|
- $twitter_user['statuses_count'] = (is_int($notice_count)) ? $notice_count : 0;
|
|
+ $twitter_user['friends_count'] = (is_int($subbed_count)) ? $subbed_count : 0;
|
|
+ $twitter_user['statuses_count'] = (is_int($notice_count)) ? $notice_count : 0;
|
|
hunk ./lib/twitterapi.php 610
|
|
- // Other fields Twitter sends...
|
|
- $twitter_user['profile_background_color'] = '';
|
|
- $twitter_user['profile_text_color'] = '';
|
|
- $twitter_user['profile_link_color'] = '';
|
|
- $twitter_user['profile_sidebar_fill_color'] = '';
|
|
+ // Other fields Twitter sends...
|
|
+ $twitter_user['profile_background_color'] = '';
|
|
+ $twitter_user['profile_text_color'] = '';
|
|
+ $twitter_user['profile_link_color'] = '';
|
|
+ $twitter_user['profile_sidebar_fill_color'] = '';
|
|
hunk ./lib/twitterapi.php 616
|
|
- $faves = DB_DataObject::factory('fave');
|
|
- $faves->user_id = $user->id;
|
|
- $faves_count = (int) $faves->count();
|
|
- $twitter_user['favourites_count'] = $faves_count;
|
|
+ $faves = DB_DataObject::factory('fave');
|
|
+ $faves->user_id = $user->id;
|
|
+ $faves_count = (int) $faves->count();
|
|
+ $twitter_user['favourites_count'] = $faves_count;
|
|
hunk ./lib/twitterapi.php 621
|
|
- $timezone = 'UTC';
|
|
+ $timezone = 'UTC';
|
|
hunk ./lib/twitterapi.php 623
|
|
- if ($user->timezone) {
|
|
- $timezone = $user->timezone;
|
|
- }
|
|
+ if ($user->timezone) {
|
|
+ $timezone = $user->timezone;
|
|
+ }
|
|
hunk ./lib/twitterapi.php 627
|
|
- $t = new DateTime;
|
|
- $t->setTimezone(new DateTimeZone($timezone));
|
|
- $twitter_user['utc_offset'] = $t->format('Z');
|
|
- $twitter_user['time_zone'] = $timezone;
|
|
+ $t = new DateTime;
|
|
+ $t->setTimezone(new DateTimeZone($timezone));
|
|
+ $twitter_user['utc_offset'] = $t->format('Z');
|
|
+ $twitter_user['time_zone'] = $timezone;
|
|
hunk ./lib/twitterapi.php 632
|
|
- $following = 'false';
|
|
+ $following = 'false';
|
|
hunk ./lib/twitterapi.php 634
|
|
- if (isset($this->auth_user)) {
|
|
- if ($this->auth_user->isSubscribed($profile)) {
|
|
- $following = 'true';
|
|
- }
|
|
+ if (isset($this->auth_user)) {
|
|
+ if ($this->auth_user->isSubscribed($profile)) {
|
|
+ $following = 'true';
|
|
+ }
|
|
hunk ./lib/twitterapi.php 639
|
|
- // Not implemented yet
|
|
- $twitter_user['notifications'] = 'false';
|
|
- }
|
|
+ // Not implemented yet
|
|
+ $twitter_user['notifications'] = 'false';
|
|
+ }
|
|
hunk ./lib/twitterapi.php 643
|
|
- $twitter_user['following'] = $following;
|
|
+ $twitter_user['following'] = $following;
|
|
hunk ./lib/twitterapi.php 645
|
|
- if ($apidata['content-type'] == 'xml') {
|
|
- $this->init_document('xml');
|
|
- $this->show_twitter_xml_user($twitter_user);
|
|
- $this->end_document('xml');
|
|
- } elseif ($apidata['content-type'] == 'json') {
|
|
- $this->init_document('json');
|
|
- $this->show_json_objects($twitter_user);
|
|
- $this->end_document('json');
|
|
- }
|
|
+ if ($apidata['content-type'] == 'xml') {
|
|
+ $this->init_document('xml');
|
|
+ $this->show_twitter_xml_user($twitter_user);
|
|
+ $this->end_document('xml');
|
|
+ } elseif ($apidata['content-type'] == 'json') {
|
|
+ $this->init_document('json');
|
|
+ $this->show_json_objects($twitter_user);
|
|
+ $this->end_document('json');
|
|
+ }
|
|
hunk ./lib/twitterapi.php 655
|
|
- }
|
|
+ }
|
|
hunk ./lib/xmppqueuehandler.php 32
|
|
-
|
|
- function start() {
|
|
- # Low priority; we don't want to receive messages
|
|
- $this->log(LOG_INFO, "INITIALIZE");
|
|
- $this->conn = jabber_connect($this->_id);
|
|
- if ($this->conn) {
|
|
- $this->conn->addEventHandler('message', 'forward_message', $this);
|
|
- $this->conn->addEventHandler('reconnect', 'handle_reconnect', $this);
|
|
- $this->conn->setReconnectTimeout(600);
|
|
- jabber_send_presence("Send me a message to post a notice", 'available', NULL, 'available', -1);
|
|
- }
|
|
- return !is_null($this->conn);
|
|
- }
|
|
-
|
|
- function handle_reconnect(&$pl) {
|
|
- $this->conn->processUntil('session_start');
|
|
- $this->conn->presence(NULL, 'available', NULL, 'available', -1);
|
|
- }
|
|
+
|
|
+ function start() {
|
|
+ # Low priority; we don't want to receive messages
|
|
+ $this->log(LOG_INFO, "INITIALIZE");
|
|
+ $this->conn = jabber_connect($this->_id);
|
|
+ if ($this->conn) {
|
|
+ $this->conn->addEventHandler('message', 'forward_message', $this);
|
|
+ $this->conn->addEventHandler('reconnect', 'handle_reconnect', $this);
|
|
+ $this->conn->setReconnectTimeout(600);
|
|
+ jabber_send_presence("Send me a message to post a notice", 'available', NULL, 'available', -1);
|
|
+ }
|
|
+ return !is_null($this->conn);
|
|
+ }
|
|
+
|
|
+ function handle_reconnect(&$pl) {
|
|
+ $this->conn->processUntil('session_start');
|
|
+ $this->conn->presence(NULL, 'available', NULL, 'available', -1);
|
|
+ }
|
|
hunk ./lib/xmppqueuehandler.php 51
|
|
- function idle($timeout=0) {
|
|
- # Process the queue for as long as needed
|
|
- try {
|
|
- if ($this->conn) {
|
|
- $this->conn->processTime($timeout);
|
|
- }
|
|
- } catch (XMPPHP_Exception $e) {
|
|
- $this->log(LOG_ERR, "Got an XMPPHP_Exception: " . $e->getMessage());
|
|
- die($e->getMessage());
|
|
- }
|
|
- }
|
|
-
|
|
- function forward_message(&$pl) {
|
|
- if ($pl['type'] != 'chat') {
|
|
- $this->log(LOG_DEBUG, 'Ignoring message of type ' . $pl['type'] . ' from ' . $pl['from']);
|
|
- return;
|
|
- }
|
|
- $listener = $this->listener();
|
|
- if (strtolower($listener) == strtolower($pl['from'])) {
|
|
- $this->log(LOG_WARNING, 'Ignoring loop message.');
|
|
- return;
|
|
- }
|
|
- $this->log(LOG_INFO, 'Forwarding message from ' . $pl['from'] . ' to ' . $listener);
|
|
- $this->conn->message($this->listener(), $pl['body'], 'chat', NULL, $this->ofrom($pl['from']));
|
|
- }
|
|
+ function idle($timeout=0) {
|
|
+ # Process the queue for as long as needed
|
|
+ try {
|
|
+ if ($this->conn) {
|
|
+ $this->conn->processTime($timeout);
|
|
+ }
|
|
+ } catch (XMPPHP_Exception $e) {
|
|
+ $this->log(LOG_ERR, "Got an XMPPHP_Exception: " . $e->getMessage());
|
|
+ die($e->getMessage());
|
|
+ }
|
|
+ }
|
|
+
|
|
+ function forward_message(&$pl) {
|
|
+ if ($pl['type'] != 'chat') {
|
|
+ $this->log(LOG_DEBUG, 'Ignoring message of type ' . $pl['type'] . ' from ' . $pl['from']);
|
|
+ return;
|
|
+ }
|
|
+ $listener = $this->listener();
|
|
+ if (strtolower($listener) == strtolower($pl['from'])) {
|
|
+ $this->log(LOG_WARNING, 'Ignoring loop message.');
|
|
+ return;
|
|
+ }
|
|
+ $this->log(LOG_INFO, 'Forwarding message from ' . $pl['from'] . ' to ' . $listener);
|
|
+ $this->conn->message($this->listener(), $pl['body'], 'chat', NULL, $this->ofrom($pl['from']));
|
|
+ }
|
|
hunk ./lib/xmppqueuehandler.php 77
|
|
- function ofrom($from) {
|
|
- $address = "<addresses xmlns='http://jabber.org/protocol/address'>\n";
|
|
- $address .= "<address type='ofrom' jid='$from' />\n";
|
|
- $address .= "</addresses>\n";
|
|
- return $address;
|
|
- }
|
|
+ function ofrom($from) {
|
|
+ $address = "<addresses xmlns='http://jabber.org/protocol/address'>\n";
|
|
+ $address .= "<address type='ofrom' jid='$from' />\n";
|
|
+ $address .= "</addresses>\n";
|
|
+ return $address;
|
|
+ }
|
|
hunk ./lib/xmppqueuehandler.php 84
|
|
- function listener() {
|
|
- if (common_config('xmpp', 'listener')) {
|
|
- return common_config('xmpp', 'listener');
|
|
- } else {
|
|
- return jabber_daemon_address() . '/' . common_config('xmpp','resource') . '-listener';
|
|
- }
|
|
- }
|
|
+ function listener() {
|
|
+ if (common_config('xmpp', 'listener')) {
|
|
+ return common_config('xmpp', 'listener');
|
|
+ } else {
|
|
+ return jabber_daemon_address() . '/' . common_config('xmpp','resource') . '-listener';
|
|
+ }
|
|
+ }
|
|
hunk ./scripts/enjitqueuehandler.php 23
|
|
- print "This script must be run from the command line\n";
|
|
- exit();
|
|
+ print "This script must be run from the command line\n";
|
|
+ exit();
|
|
hunk ./scripts/enjitqueuehandler.php 37
|
|
-
|
|
- function transport() {
|
|
- return 'enjit';
|
|
- }
|
|
+
|
|
+ function transport() {
|
|
+ return 'enjit';
|
|
+ }
|
|
hunk ./scripts/enjitqueuehandler.php 42
|
|
- function start() {
|
|
+ function start() {
|
|
hunk ./scripts/enjitqueuehandler.php 45
|
|
- return true;
|
|
- }
|
|
+ return true;
|
|
+ }
|
|
hunk ./scripts/enjitqueuehandler.php 48
|
|
- function handle_notice($notice) {
|
|
+ function handle_notice($notice) {
|
|
hunk ./scripts/enjitqueuehandler.php 50
|
|
- $profile = Profile::staticGet($notice->profile_id);
|
|
+ $profile = Profile::staticGet($notice->profile_id);
|
|
hunk ./scripts/enjitqueuehandler.php 63
|
|
- $noticeurl = common_local_url('shownotice', array('notice' => $notice->id));
|
|
- $msg = $profile->nickname . ': ' . $notice->content;
|
|
+ $noticeurl = common_local_url('shownotice', array('notice' => $notice->id));
|
|
+ $msg = $profile->nickname . ': ' . $notice->content;
|
|
hunk ./scripts/enjitqueuehandler.php 66
|
|
- $atom = "<entry xmlns='http://www.w3.org/2005/Atom'>\n";
|
|
- $atom .= "<apisource>".common_config('enjit','source')."</apisource>\n";
|
|
- $atom .= "<source>\n";
|
|
- $atom .= "<title>" . $profile->nickname . " - " . common_config('site', 'name') . "</title>\n";
|
|
- $atom .= "<link href='" . $profile->profileurl . "'/>\n";
|
|
- $atom .= "<link rel='self' type='application/rss+xml' href='" . common_local_url('userrss', array('nickname' => $profile->nickname)) . "'/>\n";
|
|
- $atom .= "<author><name>" . $profile->nickname . "</name></author>\n";
|
|
- $atom .= "<icon>" . common_profile_avatar_url($profile, AVATAR_PROFILE_SIZE) . "</icon>\n";
|
|
- $atom .= "</source>\n";
|
|
- $atom .= "<title>" . htmlspecialchars($msg) . "</title>\n";
|
|
- $atom .= "<summary>" . htmlspecialchars($msg) . "</summary>\n";
|
|
- $atom .= "<link rel='alternate' href='" . $noticeurl . "' />\n";
|
|
- $atom .= "<id>". $notice->uri . "</id>\n";
|
|
- $atom .= "<published>".common_date_w3dtf($notice->created)."</published>\n";
|
|
- $atom .= "<updated>".common_date_w3dtf($notice->modified)."</updated>\n";
|
|
- $atom .= "</entry>\n";
|
|
+ $atom = "<entry xmlns='http://www.w3.org/2005/Atom'>\n";
|
|
+ $atom .= "<apisource>".common_config('enjit','source')."</apisource>\n";
|
|
+ $atom .= "<source>\n";
|
|
+ $atom .= "<title>" . $profile->nickname . " - " . common_config('site', 'name') . "</title>\n";
|
|
+ $atom .= "<link href='" . $profile->profileurl . "'/>\n";
|
|
+ $atom .= "<link rel='self' type='application/rss+xml' href='" . common_local_url('userrss', array('nickname' => $profile->nickname)) . "'/>\n";
|
|
+ $atom .= "<author><name>" . $profile->nickname . "</name></author>\n";
|
|
+ $atom .= "<icon>" . common_profile_avatar_url($profile, AVATAR_PROFILE_SIZE) . "</icon>\n";
|
|
+ $atom .= "</source>\n";
|
|
+ $atom .= "<title>" . htmlspecialchars($msg) . "</title>\n";
|
|
+ $atom .= "<summary>" . htmlspecialchars($msg) . "</summary>\n";
|
|
+ $atom .= "<link rel='alternate' href='" . $noticeurl . "' />\n";
|
|
+ $atom .= "<id>". $notice->uri . "</id>\n";
|
|
+ $atom .= "<published>".common_date_w3dtf($notice->created)."</published>\n";
|
|
+ $atom .= "<updated>".common_date_w3dtf($notice->modified)."</updated>\n";
|
|
+ $atom .= "</entry>\n";
|
|
hunk ./scripts/enjitqueuehandler.php 89
|
|
- $ch = curl_init();
|
|
+ $ch = curl_init();
|
|
hunk ./scripts/enjitqueuehandler.php 91
|
|
- curl_setopt($ch, CURLOPT_URL, $url);
|
|
+ curl_setopt($ch, CURLOPT_URL, $url);
|
|
hunk ./scripts/enjitqueuehandler.php 94
|
|
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
|
- curl_setopt($ch, CURLOPT_POST, 1) ;
|
|
- curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
|
|
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
|
+ curl_setopt($ch, CURLOPT_POST, 1) ;
|
|
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
|
|
hunk ./scripts/enjitqueuehandler.php 100
|
|
- # curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
|
|
- # curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
|
|
+ # curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
|
|
+ # curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
|
|
hunk ./scripts/enjitqueuehandler.php 104
|
|
- $result = curl_exec($ch);
|
|
+ $result = curl_exec($ch);
|
|
hunk ./scripts/enjitqueuehandler.php 106
|
|
- $code = curl_getinfo($ch, CURLINFO_HTTP_CODE );
|
|
+ $code = curl_getinfo($ch, CURLINFO_HTTP_CODE );
|
|
hunk ./scripts/enjitqueuehandler.php 110
|
|
- curl_close($ch);
|
|
+ curl_close($ch);
|
|
hunk ./scripts/enjitqueuehandler.php 113
|
|
- }
|
|
-
|
|
+ }
|
|
+
|
|
hunk ./scripts/enjitqueuehandler.php 125
|
|
- $handler->handle_queue();
|
|
+ $handler->handle_queue();
|
|
hunk ./scripts/fixup_hashtags.php 40
|
|
- $original = clone($notice);
|
|
- $notice->rendered = common_render_content($notice->content, $notice);
|
|
- $result = $notice->update($original);
|
|
- if (!$result) {
|
|
- common_log_db_error($notice, 'UPDATE', __FILE__);
|
|
- }
|
|
+ $original = clone($notice);
|
|
+ $notice->rendered = common_render_content($notice->content, $notice);
|
|
+ $result = $notice->update($original);
|
|
+ if (!$result) {
|
|
+ common_log_db_error($notice, 'UPDATE', __FILE__);
|
|
+ }
|
|
hunk ./scripts/fixup_inboxes.php 44
|
|
- $user->whereAdd('id >= ' . $start_at);
|
|
+ $user->whereAdd('id >= ' . $start_at);
|
|
hunk ./scripts/fixup_inboxes.php 52
|
|
- $user->query('BEGIN');
|
|
- $inbox = new Notice_inbox();
|
|
- $result = $inbox->query('INSERT LOW_PRIORITY INTO notice_inbox (user_id, notice_id, created) ' .
|
|
- 'SELECT ' . $user->id . ', notice.id, notice.created ' .
|
|
- 'FROM subscription JOIN notice ON subscription.subscribed = notice.profile_id ' .
|
|
- 'WHERE subscription.subscriber = ' . $user->id . ' ' .
|
|
- 'AND notice.created >= subscription.created ' .
|
|
- 'AND NOT EXISTS (SELECT user_id, notice_id ' .
|
|
- 'FROM notice_inbox ' .
|
|
- 'WHERE user_id = ' . $user->id . ' ' .
|
|
- 'AND notice_id = notice.id)');
|
|
- if (is_null($result) || $result === false) {
|
|
- common_log_db_error($inbox, 'INSERT', __FILE__);
|
|
- continue;
|
|
- }
|
|
- $orig = clone($user);
|
|
- $user->inboxed = 1;
|
|
- $result = $user->update($orig);
|
|
- if (!$result) {
|
|
- common_log_db_error($user, 'UPDATE', __FILE__);
|
|
- continue;
|
|
- }
|
|
- $user->query('COMMIT');
|
|
- $inbox->free();
|
|
- unset($inbox);
|
|
- if ($cache) {
|
|
- $cache->delete(common_cache_key('user:notices_with_friends:' . $user->id));
|
|
- }
|
|
+ $user->query('BEGIN');
|
|
+ $inbox = new Notice_inbox();
|
|
+ $result = $inbox->query('INSERT LOW_PRIORITY INTO notice_inbox (user_id, notice_id, created) ' .
|
|
+ 'SELECT ' . $user->id . ', notice.id, notice.created ' .
|
|
+ 'FROM subscription JOIN notice ON subscription.subscribed = notice.profile_id ' .
|
|
+ 'WHERE subscription.subscriber = ' . $user->id . ' ' .
|
|
+ 'AND notice.created >= subscription.created ' .
|
|
+ 'AND NOT EXISTS (SELECT user_id, notice_id ' .
|
|
+ 'FROM notice_inbox ' .
|
|
+ 'WHERE user_id = ' . $user->id . ' ' .
|
|
+ 'AND notice_id = notice.id)');
|
|
+ if (is_null($result) || $result === false) {
|
|
+ common_log_db_error($inbox, 'INSERT', __FILE__);
|
|
+ continue;
|
|
+ }
|
|
+ $orig = clone($user);
|
|
+ $user->inboxed = 1;
|
|
+ $result = $user->update($orig);
|
|
+ if (!$result) {
|
|
+ common_log_db_error($user, 'UPDATE', __FILE__);
|
|
+ continue;
|
|
+ }
|
|
+ $user->query('COMMIT');
|
|
+ $inbox->free();
|
|
+ unset($inbox);
|
|
+ if ($cache) {
|
|
+ $cache->delete(common_cache_key('user:notices_with_friends:' . $user->id));
|
|
+ }
|
|
hunk ./scripts/fixup_notices_rendered.php 23
|
|
- print "This script must be run from the command line\n";
|
|
- exit();
|
|
+ print "This script must be run from the command line\n";
|
|
+ exit();
|
|
hunk ./scripts/fixup_notices_rendered.php 38
|
|
- $notice->whereAdd('id >= ' . $start_at);
|
|
+ $notice->whereAdd('id >= ' . $start_at);
|
|
hunk ./scripts/fixup_notices_rendered.php 43
|
|
- common_log(LOG_INFO, 'Pre-rendering notice #' . $notice->id);
|
|
- $original = clone($notice);
|
|
- $notice->rendered = common_render_content($notice->content, $notice);
|
|
- $result = $notice->update($original);
|
|
- if (!$result) {
|
|
- common_log_db_error($notice, 'UPDATE', __FILE__);
|
|
- }
|
|
+ common_log(LOG_INFO, 'Pre-rendering notice #' . $notice->id);
|
|
+ $original = clone($notice);
|
|
+ $notice->rendered = common_render_content($notice->content, $notice);
|
|
+ $result = $notice->update($original);
|
|
+ if (!$result) {
|
|
+ common_log_db_error($notice, 'UPDATE', __FILE__);
|
|
+ }
|
|
hunk ./scripts/getpiddir.php 23
|
|
- print "This script must be run from the command line\n";
|
|
- exit();
|
|
+ print "This script must be run from the command line\n";
|
|
+ exit();
|
|
hunk ./scripts/inbox_users.php 45
|
|
-
|
|
- $user = User::staticGet('id', $id);
|
|
+
|
|
+ $user = User::staticGet('id', $id);
|
|
hunk ./scripts/inbox_users.php 48
|
|
- if (!$user) {
|
|
- common_log(LOG_WARNING, 'No such user: ' . $id);
|
|
- continue;
|
|
- }
|
|
-
|
|
- if ($user->inboxed) {
|
|
- common_log(LOG_WARNING, 'Already inboxed: ' . $id);
|
|
- continue;
|
|
- }
|
|
-
|
|
+ if (!$user) {
|
|
+ common_log(LOG_WARNING, 'No such user: ' . $id);
|
|
+ continue;
|
|
+ }
|
|
+
|
|
+ if ($user->inboxed) {
|
|
+ common_log(LOG_WARNING, 'Already inboxed: ' . $id);
|
|
+ continue;
|
|
+ }
|
|
+
|
|
hunk ./scripts/inbox_users.php 59
|
|
-
|
|
- $user->query('BEGIN');
|
|
-
|
|
- $old_inbox = new Notice_inbox();
|
|
- $old_inbox->user_id = $user->id;
|
|
-
|
|
- $result = $old_inbox->delete();
|
|
-
|
|
- if (is_null($result) || $result === false) {
|
|
- common_log_db_error($old_inbox, 'DELETE', __FILE__);
|
|
- continue;
|
|
- }
|
|
+
|
|
+ $user->query('BEGIN');
|
|
+
|
|
+ $old_inbox = new Notice_inbox();
|
|
+ $old_inbox->user_id = $user->id;
|
|
+
|
|
+ $result = $old_inbox->delete();
|
|
+
|
|
+ if (is_null($result) || $result === false) {
|
|
+ common_log_db_error($old_inbox, 'DELETE', __FILE__);
|
|
+ continue;
|
|
+ }
|
|
hunk ./scripts/inbox_users.php 72
|
|
- $old_inbox->free();
|
|
-
|
|
- $inbox = new Notice_inbox();
|
|
-
|
|
- $result = $inbox->query('INSERT INTO notice_inbox (user_id, notice_id, created) ' .
|
|
- 'SELECT ' . $user->id . ', notice.id, notice.created ' .
|
|
- 'FROM subscription JOIN notice ON subscription.subscribed = notice.profile_id ' .
|
|
- 'WHERE subscription.subscriber = ' . $user->id . ' ' .
|
|
- 'AND notice.created >= subscription.created ' .
|
|
- 'AND now() - notice.created < ' . (7 * 24 * 3600) . ' ' .
|
|
- 'AND NOT EXISTS (SELECT user_id, notice_id ' .
|
|
- 'FROM notice_inbox ' .
|
|
- 'WHERE user_id = ' . $user->id . ' ' .
|
|
- 'AND notice_id = notice.id)');
|
|
-
|
|
- if (is_null($result) || $result === false) {
|
|
- common_log_db_error($inbox, 'INSERT', __FILE__);
|
|
- continue;
|
|
- }
|
|
-
|
|
- $orig = clone($user);
|
|
- $user->inboxed = 1;
|
|
- $result = $user->update($orig);
|
|
-
|
|
- if (!$result) {
|
|
- common_log_db_error($user, 'UPDATE', __FILE__);
|
|
- continue;
|
|
- }
|
|
-
|
|
- $user->query('COMMIT');
|
|
-
|
|
- $inbox->free();
|
|
- unset($inbox);
|
|
-
|
|
- if ($cache) {
|
|
- $cache->delete(common_cache_key('user:notices_with_friends:' . $user->id));
|
|
- }
|
|
+ $old_inbox->free();
|
|
+
|
|
+ $inbox = new Notice_inbox();
|
|
+
|
|
+ $result = $inbox->query('INSERT INTO notice_inbox (user_id, notice_id, created) ' .
|
|
+ 'SELECT ' . $user->id . ', notice.id, notice.created ' .
|
|
+ 'FROM subscription JOIN notice ON subscription.subscribed = notice.profile_id ' .
|
|
+ 'WHERE subscription.subscriber = ' . $user->id . ' ' .
|
|
+ 'AND notice.created >= subscription.created ' .
|
|
+ 'AND now() - notice.created < ' . (7 * 24 * 3600) . ' ' .
|
|
+ 'AND NOT EXISTS (SELECT user_id, notice_id ' .
|
|
+ 'FROM notice_inbox ' .
|
|
+ 'WHERE user_id = ' . $user->id . ' ' .
|
|
+ 'AND notice_id = notice.id)');
|
|
+
|
|
+ if (is_null($result) || $result === false) {
|
|
+ common_log_db_error($inbox, 'INSERT', __FILE__);
|
|
+ continue;
|
|
+ }
|
|
+
|
|
+ $orig = clone($user);
|
|
+ $user->inboxed = 1;
|
|
+ $result = $user->update($orig);
|
|
+
|
|
+ if (!$result) {
|
|
+ common_log_db_error($user, 'UPDATE', __FILE__);
|
|
+ continue;
|
|
+ }
|
|
+
|
|
+ $user->query('COMMIT');
|
|
+
|
|
+ $inbox->free();
|
|
+ unset($inbox);
|
|
+
|
|
+ if ($cache) {
|
|
+ $cache->delete(common_cache_key('user:notices_with_friends:' . $user->id));
|
|
+ }
|
|
hunk ./scripts/jabberqueuehandler.php 23
|
|
- print "This script must be run from the command line\n";
|
|
- exit();
|
|
+ print "This script must be run from the command line\n";
|
|
+ exit();
|
|
hunk ./scripts/jabberqueuehandler.php 38
|
|
- var $conn = NULL;
|
|
+ var $conn = NULL;
|
|
hunk ./scripts/jabberqueuehandler.php 40
|
|
- function transport() {
|
|
- return 'jabber';
|
|
- }
|
|
+ function transport() {
|
|
+ return 'jabber';
|
|
+ }
|
|
hunk ./scripts/jabberqueuehandler.php 44
|
|
- function handle_notice($notice) {
|
|
- try {
|
|
- return jabber_broadcast_notice($notice);
|
|
- } catch (XMPPHP_Exception $e) {
|
|
- $this->log(LOG_ERR, "Got an XMPPHP_Exception: " . $e->getMessage());
|
|
- exit(1);
|
|
- }
|
|
- }
|
|
+ function handle_notice($notice) {
|
|
+ try {
|
|
+ return jabber_broadcast_notice($notice);
|
|
+ } catch (XMPPHP_Exception $e) {
|
|
+ $this->log(LOG_ERR, "Got an XMPPHP_Exception: " . $e->getMessage());
|
|
+ exit(1);
|
|
+ }
|
|
+ }
|
|
hunk ./scripts/maildaemon.php 23
|
|
- print "This script must be run from the command line\n";
|
|
- exit();
|
|
+ print "This script must be run from the command line\n";
|
|
+ exit();
|
|
hunk ./scripts/maildaemon.php 39
|
|
- function __construct() {
|
|
- }
|
|
+ function __construct() {
|
|
+ }
|
|
hunk ./scripts/maildaemon.php 42
|
|
- function handle_message($fname='php://stdin') {
|
|
- list($from, $to, $msg) = $this->parse_message($fname);
|
|
- if (!$from || !$to || !$msg) {
|
|
- $this->error(NULL, _('Could not parse message.'));
|
|
- }
|
|
- common_log(LOG_INFO, "Mail from $from to $to: " .substr($msg, 0, 20));
|
|
- $user = $this->user_from($from);
|
|
- if (!$user) {
|
|
- $this->error($from, _('Not a registered user.'));
|
|
- return false;
|
|
- }
|
|
- if (!$this->user_match_to($user, $to)) {
|
|
- $this->error($from, _('Sorry, that is not your incoming email address.'));
|
|
- return false;
|
|
- }
|
|
- if (!$user->emailpost) {
|
|
- $this->error($from, _('Sorry, no incoming email allowed.'));
|
|
- return false;
|
|
- }
|
|
- $response = $this->handle_command($user, $from, $msg);
|
|
- if ($response) {
|
|
- return true;
|
|
- }
|
|
- $msg = $this->cleanup_msg($msg);
|
|
- $this->add_notice($user, $msg);
|
|
- }
|
|
+ function handle_message($fname='php://stdin') {
|
|
+ list($from, $to, $msg) = $this->parse_message($fname);
|
|
+ if (!$from || !$to || !$msg) {
|
|
+ $this->error(NULL, _('Could not parse message.'));
|
|
+ }
|
|
+ common_log(LOG_INFO, "Mail from $from to $to: " .substr($msg, 0, 20));
|
|
+ $user = $this->user_from($from);
|
|
+ if (!$user) {
|
|
+ $this->error($from, _('Not a registered user.'));
|
|
+ return false;
|
|
+ }
|
|
+ if (!$this->user_match_to($user, $to)) {
|
|
+ $this->error($from, _('Sorry, that is not your incoming email address.'));
|
|
+ return false;
|
|
+ }
|
|
+ if (!$user->emailpost) {
|
|
+ $this->error($from, _('Sorry, no incoming email allowed.'));
|
|
+ return false;
|
|
+ }
|
|
+ $response = $this->handle_command($user, $from, $msg);
|
|
+ if ($response) {
|
|
+ return true;
|
|
+ }
|
|
+ $msg = $this->cleanup_msg($msg);
|
|
+ $this->add_notice($user, $msg);
|
|
+ }
|
|
hunk ./scripts/maildaemon.php 69
|
|
- function error($from, $msg) {
|
|
- file_put_contents("php://stderr", $msg . "\n");
|
|
- exit(1);
|
|
- }
|
|
+ function error($from, $msg) {
|
|
+ file_put_contents("php://stderr", $msg . "\n");
|
|
+ exit(1);
|
|
+ }
|
|
hunk ./scripts/maildaemon.php 74
|
|
- function user_from($from_hdr) {
|
|
- $froms = mailparse_rfc822_parse_addresses($from_hdr);
|
|
- if (!$froms) {
|
|
- return NULL;
|
|
- }
|
|
- $from = $froms[0];
|
|
- $addr = common_canonical_email($from['address']);
|
|
- $user = User::staticGet('email', $addr);
|
|
- if (!$user) {
|
|
- $user = User::staticGet('smsemail', $addr);
|
|
- }
|
|
- return $user;
|
|
- }
|
|
+ function user_from($from_hdr) {
|
|
+ $froms = mailparse_rfc822_parse_addresses($from_hdr);
|
|
+ if (!$froms) {
|
|
+ return NULL;
|
|
+ }
|
|
+ $from = $froms[0];
|
|
+ $addr = common_canonical_email($from['address']);
|
|
+ $user = User::staticGet('email', $addr);
|
|
+ if (!$user) {
|
|
+ $user = User::staticGet('smsemail', $addr);
|
|
+ }
|
|
+ return $user;
|
|
+ }
|
|
hunk ./scripts/maildaemon.php 88
|
|
- function user_match_to($user, $to_hdr) {
|
|
- $incoming = $user->incomingemail;
|
|
- $tos = mailparse_rfc822_parse_addresses($to_hdr);
|
|
- foreach ($tos as $to) {
|
|
- if (strcasecmp($incoming, $to['address']) == 0) {
|
|
- return true;
|
|
- }
|
|
- }
|
|
- return false;
|
|
- }
|
|
+ function user_match_to($user, $to_hdr) {
|
|
+ $incoming = $user->incomingemail;
|
|
+ $tos = mailparse_rfc822_parse_addresses($to_hdr);
|
|
+ foreach ($tos as $to) {
|
|
+ if (strcasecmp($incoming, $to['address']) == 0) {
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
+ return false;
|
|
+ }
|
|
hunk ./scripts/maildaemon.php 99
|
|
- function handle_command($user, $from, $msg) {
|
|
- $inter = new CommandInterpreter();
|
|
- $cmd = $inter->handle_command($user, $msg);
|
|
- if ($cmd) {
|
|
- $cmd->execute(new MailChannel($from));
|
|
- return true;
|
|
- }
|
|
- return false;
|
|
- }
|
|
+ function handle_command($user, $from, $msg) {
|
|
+ $inter = new CommandInterpreter();
|
|
+ $cmd = $inter->handle_command($user, $msg);
|
|
+ if ($cmd) {
|
|
+ $cmd->execute(new MailChannel($from));
|
|
+ return true;
|
|
+ }
|
|
+ return false;
|
|
+ }
|
|
hunk ./scripts/maildaemon.php 109
|
|
- function respond($from, $to, $response) {
|
|
+ function respond($from, $to, $response) {
|
|
hunk ./scripts/maildaemon.php 111
|
|
- $headers['From'] = $to;
|
|
- $headers['To'] = $from;
|
|
- $headers['Subject'] = "Command complete";
|
|
+ $headers['From'] = $to;
|
|
+ $headers['To'] = $from;
|
|
+ $headers['Subject'] = "Command complete";
|
|
hunk ./scripts/maildaemon.php 115
|
|
- return mail_send(array($from), $headers, $response);
|
|
- }
|
|
+ return mail_send(array($from), $headers, $response);
|
|
+ }
|
|
hunk ./scripts/maildaemon.php 118
|
|
- function log($level, $msg) {
|
|
- common_log($level, 'MailDaemon: '.$msg);
|
|
- }
|
|
+ function log($level, $msg) {
|
|
+ common_log($level, 'MailDaemon: '.$msg);
|
|
+ }
|
|
hunk ./scripts/maildaemon.php 122
|
|
- function add_notice($user, $msg) {
|
|
+ function add_notice($user, $msg) {
|
|
hunk ./scripts/maildaemon.php 126
|
|
- $notice = Notice::saveNew($user->id, $msg, 'mail');
|
|
- if (is_string($notice)) {
|
|
- $this->log(LOG_ERR, $notice);
|
|
- return;
|
|
- }
|
|
- common_broadcast_notice($notice);
|
|
- $this->log(LOG_INFO,
|
|
- 'Added notice ' . $notice->id . ' from user ' . $user->nickname);
|
|
- }
|
|
+ $notice = Notice::saveNew($user->id, $msg, 'mail');
|
|
+ if (is_string($notice)) {
|
|
+ $this->log(LOG_ERR, $notice);
|
|
+ return;
|
|
+ }
|
|
+ common_broadcast_notice($notice);
|
|
+ $this->log(LOG_INFO,
|
|
+ 'Added notice ' . $notice->id . ' from user ' . $user->nickname);
|
|
+ }
|
|
hunk ./scripts/maildaemon.php 136
|
|
- function parse_message($fname) {
|
|
- $contents = file_get_contents($fname);
|
|
- $parsed = Mail_mimeDecode::decode(array('input' => $contents,
|
|
- 'include_bodies' => true,
|
|
- 'decode_headers' => true,
|
|
- 'decode_bodies' => true));
|
|
- if (!$parsed) {
|
|
- return NULL;
|
|
- }
|
|
+ function parse_message($fname) {
|
|
+ $contents = file_get_contents($fname);
|
|
+ $parsed = Mail_mimeDecode::decode(array('input' => $contents,
|
|
+ 'include_bodies' => true,
|
|
+ 'decode_headers' => true,
|
|
+ 'decode_bodies' => true));
|
|
+ if (!$parsed) {
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./scripts/maildaemon.php 146
|
|
- $from = $parsed->headers['from'];
|
|
+ $from = $parsed->headers['from'];
|
|
hunk ./scripts/maildaemon.php 148
|
|
- $to = $parsed->headers['to'];
|
|
+ $to = $parsed->headers['to'];
|
|
hunk ./scripts/maildaemon.php 150
|
|
- $type = $parsed->ctype_primary . '/' . $parsed->ctype_secondary;
|
|
+ $type = $parsed->ctype_primary . '/' . $parsed->ctype_secondary;
|
|
hunk ./scripts/maildaemon.php 152
|
|
- if ($parsed->ctype_primary == 'multipart') {
|
|
- foreach ($parsed->parts as $part) {
|
|
- if ($part->ctype_primary == 'text' &&
|
|
- $part->ctype_secondary == 'plain') {
|
|
- $msg = $part->body;
|
|
- break;
|
|
- }
|
|
- }
|
|
- } else if ($type == 'text/plain') {
|
|
- $msg = $parsed->body;
|
|
- } else {
|
|
- $this->unsupported_type($type);
|
|
- }
|
|
+ if ($parsed->ctype_primary == 'multipart') {
|
|
+ foreach ($parsed->parts as $part) {
|
|
+ if ($part->ctype_primary == 'text' &&
|
|
+ $part->ctype_secondary == 'plain') {
|
|
+ $msg = $part->body;
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
+ } else if ($type == 'text/plain') {
|
|
+ $msg = $parsed->body;
|
|
+ } else {
|
|
+ $this->unsupported_type($type);
|
|
+ }
|
|
hunk ./scripts/maildaemon.php 166
|
|
- return array($from, $to, $msg);
|
|
- }
|
|
+ return array($from, $to, $msg);
|
|
+ }
|
|
hunk ./scripts/maildaemon.php 169
|
|
- function unsupported_type($type) {
|
|
- $this->error(NULL, "Unsupported message type: " . $type);
|
|
- }
|
|
+ function unsupported_type($type) {
|
|
+ $this->error(NULL, "Unsupported message type: " . $type);
|
|
+ }
|
|
hunk ./scripts/maildaemon.php 173
|
|
- function cleanup_msg($msg) {
|
|
- $lines = explode("\n", $msg);
|
|
+ function cleanup_msg($msg) {
|
|
+ $lines = explode("\n", $msg);
|
|
hunk ./scripts/maildaemon.php 176
|
|
- $output = '';
|
|
+ $output = '';
|
|
hunk ./scripts/maildaemon.php 178
|
|
- foreach ($lines as $line) {
|
|
- // skip quotes
|
|
- if (preg_match('/^\s*>.*$/', $line)) {
|
|
- continue;
|
|
- }
|
|
- // skip start of quote
|
|
- if (preg_match('/^\s*On.*wrote:\s*$/', $line)) {
|
|
- continue;
|
|
- }
|
|
- // probably interesting to someone, not us
|
|
- if (preg_match('/^\s*Sent via/', $line)) {
|
|
- continue;
|
|
- }
|
|
- // skip everything after a sig
|
|
- if (preg_match('/^\s*--+\s*$/', $line) ||
|
|
- preg_match('/^\s*__+\s*$/', $line))
|
|
- {
|
|
- break;
|
|
- }
|
|
- // skip everything after Outlook quote
|
|
- if (preg_match('/^\s*-+\s*Original Message\s*-+\s*$/', $line)) {
|
|
- break;
|
|
- }
|
|
- // skip everything after weird forward
|
|
- if (preg_match('/^\s*Begin\s+forward/', $line)) {
|
|
- break;
|
|
- }
|
|
+ foreach ($lines as $line) {
|
|
+ // skip quotes
|
|
+ if (preg_match('/^\s*>.*$/', $line)) {
|
|
+ continue;
|
|
+ }
|
|
+ // skip start of quote
|
|
+ if (preg_match('/^\s*On.*wrote:\s*$/', $line)) {
|
|
+ continue;
|
|
+ }
|
|
+ // probably interesting to someone, not us
|
|
+ if (preg_match('/^\s*Sent via/', $line)) {
|
|
+ continue;
|
|
+ }
|
|
+ // skip everything after a sig
|
|
+ if (preg_match('/^\s*--+\s*$/', $line) ||
|
|
+ preg_match('/^\s*__+\s*$/', $line))
|
|
+ {
|
|
+ break;
|
|
+ }
|
|
+ // skip everything after Outlook quote
|
|
+ if (preg_match('/^\s*-+\s*Original Message\s*-+\s*$/', $line)) {
|
|
+ break;
|
|
+ }
|
|
+ // skip everything after weird forward
|
|
+ if (preg_match('/^\s*Begin\s+forward/', $line)) {
|
|
+ break;
|
|
+ }
|
|
hunk ./scripts/maildaemon.php 206
|
|
- $output .= ' ' . $line;
|
|
- }
|
|
+ $output .= ' ' . $line;
|
|
+ }
|
|
hunk ./scripts/maildaemon.php 209
|
|
- preg_replace('/\s+/', ' ', $output);
|
|
- return trim($output);
|
|
- }
|
|
+ preg_replace('/\s+/', ' ', $output);
|
|
+ return trim($output);
|
|
+ }
|
|
hunk ./scripts/ombqueuehandler.php 23
|
|
- print "This script must be run from the command line\n";
|
|
- exit();
|
|
+ print "This script must be run from the command line\n";
|
|
+ exit();
|
|
hunk ./scripts/ombqueuehandler.php 37
|
|
-
|
|
- function transport() {
|
|
- return 'omb';
|
|
- }
|
|
-
|
|
- function start() {
|
|
- $this->log(LOG_INFO, "INITIALIZE");
|
|
- return true;
|
|
- }
|
|
+
|
|
+ function transport() {
|
|
+ return 'omb';
|
|
+ }
|
|
+
|
|
+ function start() {
|
|
+ $this->log(LOG_INFO, "INITIALIZE");
|
|
+ return true;
|
|
+ }
|
|
hunk ./scripts/ombqueuehandler.php 47
|
|
- function handle_notice($notice) {
|
|
- if ($this->is_remote($notice)) {
|
|
- $this->log(LOG_DEBUG, 'Ignoring remote notice ' . $notice->id);
|
|
- return true;
|
|
- } else {
|
|
- return omb_broadcast_remote_subscribers($notice);
|
|
- }
|
|
- }
|
|
-
|
|
- function finish() {
|
|
- }
|
|
+ function handle_notice($notice) {
|
|
+ if ($this->is_remote($notice)) {
|
|
+ $this->log(LOG_DEBUG, 'Ignoring remote notice ' . $notice->id);
|
|
+ return true;
|
|
+ } else {
|
|
+ return omb_broadcast_remote_subscribers($notice);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ function finish() {
|
|
+ }
|
|
hunk ./scripts/ombqueuehandler.php 59
|
|
- function is_remote($notice) {
|
|
- $user = User::staticGet($notice->profile_id);
|
|
- return is_null($user);
|
|
- }
|
|
+ function is_remote($notice) {
|
|
+ $user = User::staticGet($notice->profile_id);
|
|
+ return is_null($user);
|
|
+ }
|
|
hunk ./scripts/publicqueuehandler.php 23
|
|
- print "This script must be run from the command line\n";
|
|
- exit();
|
|
+ print "This script must be run from the command line\n";
|
|
+ exit();
|
|
hunk ./scripts/publicqueuehandler.php 37
|
|
-
|
|
- function transport() {
|
|
- return 'public';
|
|
- }
|
|
-
|
|
- function handle_notice($notice) {
|
|
- try {
|
|
- return jabber_public_notice($notice);
|
|
- } catch (XMPPHP_Exception $e) {
|
|
- $this->log(LOG_ERR, "Got an XMPPHP_Exception: " . $e->getMessage());
|
|
- die($e->getMessage());
|
|
- }
|
|
- }
|
|
+
|
|
+ function transport() {
|
|
+ return 'public';
|
|
+ }
|
|
+
|
|
+ function handle_notice($notice) {
|
|
+ try {
|
|
+ return jabber_public_notice($notice);
|
|
+ } catch (XMPPHP_Exception $e) {
|
|
+ $this->log(LOG_ERR, "Got an XMPPHP_Exception: " . $e->getMessage());
|
|
+ die($e->getMessage());
|
|
+ }
|
|
+ }
|
|
hunk ./scripts/sitemap.php 22
|
|
- global $output_paths;
|
|
- $output_dir = $output_paths['output_dir'];
|
|
- $output_url = $output_paths['output_url'];
|
|
+ global $output_paths;
|
|
+ $output_dir = $output_paths['output_dir'];
|
|
+ $output_url = $output_paths['output_url'];
|
|
hunk ./scripts/sitemap.php 26
|
|
- foreach (glob("$output_dir*.xml") as $file_name) {
|
|
+ foreach (glob("$output_dir*.xml") as $file_name) {
|
|
hunk ./scripts/sitemap.php 28
|
|
- # Just the file name please.
|
|
- $file_name = preg_replace("|$output_dir|", '', $file_name);
|
|
+ # Just the file name please.
|
|
+ $file_name = preg_replace("|$output_dir|", '', $file_name);
|
|
hunk ./scripts/sitemap.php 31
|
|
- $index_urls .= sitemap(
|
|
- array(
|
|
- 'url' => $output_url . $file_name,
|
|
- 'changefreq' => 'daily'
|
|
- )
|
|
- );
|
|
- }
|
|
+ $index_urls .= sitemap(
|
|
+ array(
|
|
+ 'url' => $output_url . $file_name,
|
|
+ 'changefreq' => 'daily'
|
|
+ )
|
|
+ );
|
|
+ }
|
|
hunk ./scripts/sitemap.php 39
|
|
- write_file($output_paths['index_file'], sitemapindex($index_urls));
|
|
+ write_file($output_paths['index_file'], sitemapindex($index_urls));
|
|
hunk ./scripts/sitemap.php 44
|
|
- global $output_paths;
|
|
+ global $output_paths;
|
|
hunk ./scripts/sitemap.php 46
|
|
- $standard_map_urls .= url(
|
|
- array(
|
|
- 'url' => common_local_url('public'),
|
|
- 'changefreq' => 'daily',
|
|
- 'priority' => '1',
|
|
- )
|
|
- );
|
|
+ $standard_map_urls .= url(
|
|
+ array(
|
|
+ 'url' => common_local_url('public'),
|
|
+ 'changefreq' => 'daily',
|
|
+ 'priority' => '1',
|
|
+ )
|
|
+ );
|
|
hunk ./scripts/sitemap.php 54
|
|
- $standard_map_urls .= url(
|
|
- array(
|
|
- 'url' => common_local_url('publicrss'),
|
|
- 'changefreq' => 'daily',
|
|
- 'priority' => '0.3',
|
|
- )
|
|
- );
|
|
+ $standard_map_urls .= url(
|
|
+ array(
|
|
+ 'url' => common_local_url('publicrss'),
|
|
+ 'changefreq' => 'daily',
|
|
+ 'priority' => '0.3',
|
|
+ )
|
|
+ );
|
|
hunk ./scripts/sitemap.php 62
|
|
- $docs = array('about', 'faq', 'contact', 'im', 'openid', 'openmublog', 'privacy', 'source');
|
|
+ $docs = array('about', 'faq', 'contact', 'im', 'openid', 'openmublog', 'privacy', 'source');
|
|
hunk ./scripts/sitemap.php 64
|
|
- foreach($docs as $title) {
|
|
- $standard_map_urls .= url(
|
|
- array(
|
|
- 'url' => common_local_url('doc', array('title' => $title)),
|
|
- 'changefreq' => 'monthly',
|
|
- 'priority' => '0.2',
|
|
- )
|
|
- );
|
|
- }
|
|
+ foreach($docs as $title) {
|
|
+ $standard_map_urls .= url(
|
|
+ array(
|
|
+ 'url' => common_local_url('doc', array('title' => $title)),
|
|
+ 'changefreq' => 'monthly',
|
|
+ 'priority' => '0.2',
|
|
+ )
|
|
+ );
|
|
+ }
|
|
hunk ./scripts/sitemap.php 74
|
|
- $urlset_path = $output_paths['output_dir'] . 'standard.xml';
|
|
+ $urlset_path = $output_paths['output_dir'] . 'standard.xml';
|
|
hunk ./scripts/sitemap.php 76
|
|
- write_file($urlset_path, urlset($standard_map_urls));
|
|
+ write_file($urlset_path, urlset($standard_map_urls));
|
|
hunk ./scripts/sitemap.php 81
|
|
- global $output_paths;
|
|
+ global $output_paths;
|
|
hunk ./scripts/sitemap.php 83
|
|
- $notices = DB_DataObject::factory('notice');
|
|
+ $notices = DB_DataObject::factory('notice');
|
|
hunk ./scripts/sitemap.php 85
|
|
- $notices->query('SELECT id, uri, url, modified FROM notice where is_local = 1');
|
|
+ $notices->query('SELECT id, uri, url, modified FROM notice where is_local = 1');
|
|
hunk ./scripts/sitemap.php 87
|
|
- $notice_count = 0;
|
|
- $map_count = 1;
|
|
+ $notice_count = 0;
|
|
+ $map_count = 1;
|
|
hunk ./scripts/sitemap.php 90
|
|
- while ($notices->fetch()) {
|
|
+ while ($notices->fetch()) {
|
|
hunk ./scripts/sitemap.php 92
|
|
- # Maximum 50,000 URLs per sitemap file.
|
|
- if ($notice_count == 50000) {
|
|
- $notice_count = 0;
|
|
- $map_count++;
|
|
- }
|
|
+ # Maximum 50,000 URLs per sitemap file.
|
|
+ if ($notice_count == 50000) {
|
|
+ $notice_count = 0;
|
|
+ $map_count++;
|
|
+ }
|
|
hunk ./scripts/sitemap.php 98
|
|
- # remote notices have an URL
|
|
-
|
|
- if (!$notices->url && $notices->uri) {
|
|
- $notice = array(
|
|
- 'url' => ($notices->uri) ? $notices->uri : common_local_url('shownotice', array('notice' => $notices->id)),
|
|
- 'lastmod' => common_date_w3dtf($notices->modified),
|
|
- 'changefreq' => 'never',
|
|
- 'priority' => '1',
|
|
- );
|
|
+ # remote notices have an URL
|
|
+
|
|
+ if (!$notices->url && $notices->uri) {
|
|
+ $notice = array(
|
|
+ 'url' => ($notices->uri) ? $notices->uri : common_local_url('shownotice', array('notice' => $notices->id)),
|
|
+ 'lastmod' => common_date_w3dtf($notices->modified),
|
|
+ 'changefreq' => 'never',
|
|
+ 'priority' => '1',
|
|
+ );
|
|
hunk ./scripts/sitemap.php 108
|
|
- $notice_list[$map_count] .= url($notice);
|
|
- $notice_count++;
|
|
- }
|
|
- }
|
|
+ $notice_list[$map_count] .= url($notice);
|
|
+ $notice_count++;
|
|
+ }
|
|
+ }
|
|
hunk ./scripts/sitemap.php 113
|
|
- # Make full sitemaps from the lists and save them.
|
|
- array_to_map($notice_list, 'notice');
|
|
+ # Make full sitemaps from the lists and save them.
|
|
+ array_to_map($notice_list, 'notice');
|
|
hunk ./scripts/sitemap.php 119
|
|
- global $output_paths;
|
|
+ global $output_paths;
|
|
hunk ./scripts/sitemap.php 121
|
|
- $users = DB_DataObject::factory('user');
|
|
+ $users = DB_DataObject::factory('user');
|
|
hunk ./scripts/sitemap.php 123
|
|
- $users->query('SELECT id, nickname FROM user');
|
|
+ $users->query('SELECT id, nickname FROM user');
|
|
hunk ./scripts/sitemap.php 125
|
|
- $user_count = 0;
|
|
- $map_count = 1;
|
|
+ $user_count = 0;
|
|
+ $map_count = 1;
|
|
hunk ./scripts/sitemap.php 128
|
|
- while ($users->fetch()) {
|
|
+ while ($users->fetch()) {
|
|
hunk ./scripts/sitemap.php 130
|
|
- # Maximum 50,000 URLs per sitemap file.
|
|
- if ($user_count == 50000) {
|
|
- $user_count = 0;
|
|
- $map_count++;
|
|
- }
|
|
+ # Maximum 50,000 URLs per sitemap file.
|
|
+ if ($user_count == 50000) {
|
|
+ $user_count = 0;
|
|
+ $map_count++;
|
|
+ }
|
|
hunk ./scripts/sitemap.php 136
|
|
- $user_args = array('nickname' => $users->nickname);
|
|
+ $user_args = array('nickname' => $users->nickname);
|
|
hunk ./scripts/sitemap.php 138
|
|
- # Define parameters for generating <url></url> elements.
|
|
- $user = array(
|
|
- 'url' => common_local_url('showstream', $user_args),
|
|
- 'changefreq' => 'daily',
|
|
- 'priority' => '1',
|
|
- );
|
|
+ # Define parameters for generating <url></url> elements.
|
|
+ $user = array(
|
|
+ 'url' => common_local_url('showstream', $user_args),
|
|
+ 'changefreq' => 'daily',
|
|
+ 'priority' => '1',
|
|
+ );
|
|
hunk ./scripts/sitemap.php 145
|
|
- $user_rss = array(
|
|
- 'url' => common_local_url('userrss', $user_args),
|
|
- 'changefreq' => 'daily',
|
|
- 'priority' => '0.3',
|
|
- );
|
|
+ $user_rss = array(
|
|
+ 'url' => common_local_url('userrss', $user_args),
|
|
+ 'changefreq' => 'daily',
|
|
+ 'priority' => '0.3',
|
|
+ );
|
|
hunk ./scripts/sitemap.php 151
|
|
- $all = array(
|
|
- 'url' => common_local_url('all', $user_args),
|
|
- 'changefreq' => 'daily',
|
|
- 'priority' => '1',
|
|
- );
|
|
+ $all = array(
|
|
+ 'url' => common_local_url('all', $user_args),
|
|
+ 'changefreq' => 'daily',
|
|
+ 'priority' => '1',
|
|
+ );
|
|
hunk ./scripts/sitemap.php 157
|
|
- $all_rss = array(
|
|
- 'url' => common_local_url('allrss', $user_args),
|
|
- 'changefreq' => 'daily',
|
|
- 'priority' => '0.3',
|
|
- );
|
|
+ $all_rss = array(
|
|
+ 'url' => common_local_url('allrss', $user_args),
|
|
+ 'changefreq' => 'daily',
|
|
+ 'priority' => '0.3',
|
|
+ );
|
|
hunk ./scripts/sitemap.php 163
|
|
- $replies = array(
|
|
- 'url' => common_local_url('replies', $user_args),
|
|
- 'changefreq' => 'daily',
|
|
- 'priority' => '1',
|
|
- );
|
|
+ $replies = array(
|
|
+ 'url' => common_local_url('replies', $user_args),
|
|
+ 'changefreq' => 'daily',
|
|
+ 'priority' => '1',
|
|
+ );
|
|
hunk ./scripts/sitemap.php 169
|
|
- $replies_rss = array(
|
|
- 'url' => common_local_url('repliesrss', $user_args),
|
|
- 'changefreq' => 'daily',
|
|
- 'priority' => '0.3',
|
|
- );
|
|
+ $replies_rss = array(
|
|
+ 'url' => common_local_url('repliesrss', $user_args),
|
|
+ 'changefreq' => 'daily',
|
|
+ 'priority' => '0.3',
|
|
+ );
|
|
hunk ./scripts/sitemap.php 175
|
|
- $foaf = array(
|
|
- 'url' => common_local_url('foaf', $user_args),
|
|
- 'changefreq' => 'weekly',
|
|
- 'priority' => '0.5',
|
|
- );
|
|
+ $foaf = array(
|
|
+ 'url' => common_local_url('foaf', $user_args),
|
|
+ 'changefreq' => 'weekly',
|
|
+ 'priority' => '0.5',
|
|
+ );
|
|
hunk ./scripts/sitemap.php 181
|
|
- # Construct a <url></url> element for each user facet and add it
|
|
- # to our existing list of those.
|
|
- $user_list[$map_count] .= url($user);
|
|
- $user_rss_list[$map_count] .= url($user_rss);
|
|
- $all_list[$map_count] .= url($all);
|
|
- $all_rss_list[$map_count] .= url($all_rss);
|
|
- $replies_list[$map_count] .= url($replies);
|
|
- $replies_rss_list[$map_count] .= url($replies_rss);
|
|
- $foaf_list[$map_count] .= url($foaf);
|
|
+ # Construct a <url></url> element for each user facet and add it
|
|
+ # to our existing list of those.
|
|
+ $user_list[$map_count] .= url($user);
|
|
+ $user_rss_list[$map_count] .= url($user_rss);
|
|
+ $all_list[$map_count] .= url($all);
|
|
+ $all_rss_list[$map_count] .= url($all_rss);
|
|
+ $replies_list[$map_count] .= url($replies);
|
|
+ $replies_rss_list[$map_count] .= url($replies_rss);
|
|
+ $foaf_list[$map_count] .= url($foaf);
|
|
hunk ./scripts/sitemap.php 191
|
|
- $user_count++;
|
|
- }
|
|
+ $user_count++;
|
|
+ }
|
|
hunk ./scripts/sitemap.php 194
|
|
- # Make full sitemaps from the lists and save them.
|
|
- # Possible factoring: put all the lists into a master array, thus allowing
|
|
- # calling with single argument (i.e., array_to_map('user')).
|
|
- array_to_map($user_list, 'user');
|
|
- array_to_map($user_rss_list, 'user_rss');
|
|
- array_to_map($all_list, 'all');
|
|
- array_to_map($all_rss_list, 'all_rss');
|
|
- array_to_map($replies_list, 'replies');
|
|
- array_to_map($replies_rss_list, 'replies_rss');
|
|
- array_to_map($foaf_list, 'foaf');
|
|
+ # Make full sitemaps from the lists and save them.
|
|
+ # Possible factoring: put all the lists into a master array, thus allowing
|
|
+ # calling with single argument (i.e., array_to_map('user')).
|
|
+ array_to_map($user_list, 'user');
|
|
+ array_to_map($user_rss_list, 'user_rss');
|
|
+ array_to_map($all_list, 'all');
|
|
+ array_to_map($all_rss_list, 'all_rss');
|
|
+ array_to_map($replies_list, 'replies');
|
|
+ array_to_map($replies_rss_list, 'replies_rss');
|
|
+ array_to_map($foaf_list, 'foaf');
|
|
hunk ./scripts/sitemap.php 212
|
|
- $url = preg_replace('/&/', '&', $url_args['url']); # escape ampersands for XML
|
|
- $lastmod = $url_args['lastmod'];
|
|
- $changefreq = $url_args['changefreq'];
|
|
- $priority = $url_args['priority'];
|
|
+ $url = preg_replace('/&/', '&', $url_args['url']); # escape ampersands for XML
|
|
+ $lastmod = $url_args['lastmod'];
|
|
+ $changefreq = $url_args['changefreq'];
|
|
+ $priority = $url_args['priority'];
|
|
hunk ./scripts/sitemap.php 217
|
|
- if (is_null($url)) {
|
|
- error("url() arguments require 'url' value.");
|
|
- }
|
|
+ if (is_null($url)) {
|
|
+ error("url() arguments require 'url' value.");
|
|
+ }
|
|
hunk ./scripts/sitemap.php 221
|
|
- $url_out = "\t<url>\n";
|
|
- $url_out .= "\t\t<loc>$url</loc>\n";
|
|
+ $url_out = "\t<url>\n";
|
|
+ $url_out .= "\t\t<loc>$url</loc>\n";
|
|
hunk ./scripts/sitemap.php 224
|
|
- if ($changefreq) {
|
|
- $url_out .= "\t\t<changefreq>$changefreq</changefreq>\n";
|
|
- }
|
|
+ if ($changefreq) {
|
|
+ $url_out .= "\t\t<changefreq>$changefreq</changefreq>\n";
|
|
+ }
|
|
hunk ./scripts/sitemap.php 228
|
|
- if ($lastmod) {
|
|
- $url_out .= "\t\t<lastmod>$lastmod</lastmod>\n";
|
|
- }
|
|
+ if ($lastmod) {
|
|
+ $url_out .= "\t\t<lastmod>$lastmod</lastmod>\n";
|
|
+ }
|
|
hunk ./scripts/sitemap.php 232
|
|
- if ($priority) {
|
|
- $url_out .= "\t\t<priority>$priority</priority>\n";
|
|
- }
|
|
+ if ($priority) {
|
|
+ $url_out .= "\t\t<priority>$priority</priority>\n";
|
|
+ }
|
|
hunk ./scripts/sitemap.php 236
|
|
- $url_out .= "\t</url>\n";
|
|
+ $url_out .= "\t</url>\n";
|
|
hunk ./scripts/sitemap.php 238
|
|
- return $url_out;
|
|
+ return $url_out;
|
|
hunk ./scripts/sitemap.php 242
|
|
- $url = preg_replace('/&/', '&', $sitemap_args['url']); # escape ampersands for XML
|
|
- $lastmod = $sitemap_args['lastmod'];
|
|
+ $url = preg_replace('/&/', '&', $sitemap_args['url']); # escape ampersands for XML
|
|
+ $lastmod = $sitemap_args['lastmod'];
|
|
hunk ./scripts/sitemap.php 245
|
|
- if (is_null($url)) {
|
|
- error("url() arguments require 'url' value.");
|
|
- }
|
|
+ if (is_null($url)) {
|
|
+ error("url() arguments require 'url' value.");
|
|
+ }
|
|
hunk ./scripts/sitemap.php 249
|
|
- $sitemap_out = "\t<sitemap>\n";
|
|
- $sitemap_out .= "\t\t<loc>$url</loc>\n";
|
|
+ $sitemap_out = "\t<sitemap>\n";
|
|
+ $sitemap_out .= "\t\t<loc>$url</loc>\n";
|
|
hunk ./scripts/sitemap.php 252
|
|
- if ($lastmod) {
|
|
- $sitemap_out .= "\t\t<lastmod>$lastmod</lastmod>\n";
|
|
- }
|
|
+ if ($lastmod) {
|
|
+ $sitemap_out .= "\t\t<lastmod>$lastmod</lastmod>\n";
|
|
+ }
|
|
hunk ./scripts/sitemap.php 256
|
|
- $sitemap_out .= "\t</sitemap>\n";
|
|
+ $sitemap_out .= "\t</sitemap>\n";
|
|
hunk ./scripts/sitemap.php 258
|
|
- return $sitemap_out;
|
|
+ return $sitemap_out;
|
|
hunk ./scripts/sitemap.php 263
|
|
- $urlset = '<?xml version="1.0" encoding="UTF-8"?>' . "\n" .
|
|
- '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n" .
|
|
- $urlset_text .
|
|
- '</urlset>';
|
|
+ $urlset = '<?xml version="1.0" encoding="UTF-8"?>' . "\n" .
|
|
+ '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n" .
|
|
+ $urlset_text .
|
|
+ '</urlset>';
|
|
hunk ./scripts/sitemap.php 268
|
|
- return $urlset;
|
|
+ return $urlset;
|
|
hunk ./scripts/sitemap.php 273
|
|
- $sitemapindex = '<?xml version="1.0" encoding="UTF-8"?>' . "\n" .
|
|
- '<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n" .
|
|
- $sitemapindex_text .
|
|
- '</sitemapindex>';
|
|
+ $sitemapindex = '<?xml version="1.0" encoding="UTF-8"?>' . "\n" .
|
|
+ '<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n" .
|
|
+ $sitemapindex_text .
|
|
+ '</sitemapindex>';
|
|
hunk ./scripts/sitemap.php 278
|
|
- return $sitemapindex;
|
|
+ return $sitemapindex;
|
|
hunk ./scripts/sitemap.php 283
|
|
- global $output_paths;
|
|
+ global $output_paths;
|
|
hunk ./scripts/sitemap.php 285
|
|
- if ($url_list) {
|
|
- # $map_urls is a long string containing concatenated <url></url> elements.
|
|
- while (list($map_idx, $map_urls) = each($url_list)) {
|
|
- $urlset_path = $output_paths['output_dir'] . "$filename_prefix-$map_idx.xml";
|
|
-
|
|
- write_file($urlset_path, urlset($map_urls));
|
|
- }
|
|
- }
|
|
+ if ($url_list) {
|
|
+ # $map_urls is a long string containing concatenated <url></url> elements.
|
|
+ while (list($map_idx, $map_urls) = each($url_list)) {
|
|
+ $urlset_path = $output_paths['output_dir'] . "$filename_prefix-$map_idx.xml";
|
|
+
|
|
+ write_file($urlset_path, urlset($map_urls));
|
|
+ }
|
|
+ }
|
|
hunk ./scripts/sitemap.php 301
|
|
- $args = getopt('f:d:u:');
|
|
+ $args = getopt('f:d:u:');
|
|
hunk ./scripts/sitemap.php 303
|
|
- if (is_null($args[f]) && is_null($args[d]) && is_null($args[u])) {
|
|
- error('Mandatory arguments: -f <index file path> -d <output directory path> -u <URL of sitemaps directory>');
|
|
- }
|
|
+ if (is_null($args[f]) && is_null($args[d]) && is_null($args[u])) {
|
|
+ error('Mandatory arguments: -f <index file path> -d <output directory path> -u <URL of sitemaps directory>');
|
|
+ }
|
|
hunk ./scripts/sitemap.php 307
|
|
- if (is_null($args[f])) {
|
|
- error('You must specify an index file name with the -f option.');
|
|
- }
|
|
+ if (is_null($args[f])) {
|
|
+ error('You must specify an index file name with the -f option.');
|
|
+ }
|
|
hunk ./scripts/sitemap.php 311
|
|
- if (is_null($args[d])) {
|
|
- error('You must specify a directory for the output file with the -d option.');
|
|
- }
|
|
+ if (is_null($args[d])) {
|
|
+ error('You must specify a directory for the output file with the -d option.');
|
|
+ }
|
|
hunk ./scripts/sitemap.php 315
|
|
- if (is_null($args[u])) {
|
|
- error('You must specify a URL for the directory where the sitemaps will be kept with the -u option.');
|
|
- }
|
|
+ if (is_null($args[u])) {
|
|
+ error('You must specify a URL for the directory where the sitemaps will be kept with the -u option.');
|
|
+ }
|
|
hunk ./scripts/sitemap.php 319
|
|
- $index_file = $args[f];
|
|
- $output_dir = $args[d];
|
|
- $output_url = $args[u];
|
|
+ $index_file = $args[f];
|
|
+ $output_dir = $args[d];
|
|
+ $output_url = $args[u];
|
|
hunk ./scripts/sitemap.php 323
|
|
- if (file_exists($output_dir)) {
|
|
- if (is_writable($output_dir) === FALSE) {
|
|
- error("$output_dir is not writable.");
|
|
- }
|
|
- } else {
|
|
- error("output directory $output_dir does not exist.");
|
|
- }
|
|
+ if (file_exists($output_dir)) {
|
|
+ if (is_writable($output_dir) === FALSE) {
|
|
+ error("$output_dir is not writable.");
|
|
+ }
|
|
+ } else {
|
|
+ error("output directory $output_dir does not exist.");
|
|
+ }
|
|
hunk ./scripts/sitemap.php 331
|
|
- $paths = array(
|
|
- 'index_file' => $index_file,
|
|
- 'output_dir' => trailing_slash($output_dir),
|
|
- 'output_url' => trailing_slash($output_url),
|
|
- );
|
|
+ $paths = array(
|
|
+ 'index_file' => $index_file,
|
|
+ 'output_dir' => trailing_slash($output_dir),
|
|
+ 'output_url' => trailing_slash($output_url),
|
|
+ );
|
|
hunk ./scripts/sitemap.php 337
|
|
- return $paths;
|
|
+ return $paths;
|
|
hunk ./scripts/sitemap.php 342
|
|
- if (preg_match('/\/$/', $path) == 0) {
|
|
- $path .= '/';
|
|
- }
|
|
+ if (preg_match('/\/$/', $path) == 0) {
|
|
+ $path .= '/';
|
|
+ }
|
|
hunk ./scripts/sitemap.php 346
|
|
- return $path;
|
|
+ return $path;
|
|
hunk ./scripts/sitemap.php 351
|
|
- if (is_null($path)) {
|
|
- error('No path specified for writing to.');
|
|
- } elseif (is_null($data)) {
|
|
- error('No data specified for writing.');
|
|
- }
|
|
+ if (is_null($path)) {
|
|
+ error('No path specified for writing to.');
|
|
+ } elseif (is_null($data)) {
|
|
+ error('No data specified for writing.');
|
|
+ }
|
|
hunk ./scripts/sitemap.php 357
|
|
- if (($fh_out = fopen($path,'w')) === FALSE) {
|
|
- error("couldn't open $path for writing.");
|
|
- }
|
|
+ if (($fh_out = fopen($path,'w')) === FALSE) {
|
|
+ error("couldn't open $path for writing.");
|
|
+ }
|
|
hunk ./scripts/sitemap.php 361
|
|
- if (fwrite($fh_out, $data) === FALSE) {
|
|
- error("couldn't write to $path.");
|
|
- }
|
|
+ if (fwrite($fh_out, $data) === FALSE) {
|
|
+ error("couldn't write to $path.");
|
|
+ }
|
|
hunk ./scripts/sitemap.php 368
|
|
- if (is_null($error_msg)) {
|
|
- $error_msg = 'error() was called without any explanation!';
|
|
- }
|
|
+ if (is_null($error_msg)) {
|
|
+ $error_msg = 'error() was called without any explanation!';
|
|
+ }
|
|
hunk ./scripts/sitemap.php 372
|
|
- echo "Error: $error_msg\n";
|
|
- exit(1);
|
|
+ echo "Error: $error_msg\n";
|
|
+ exit(1);
|
|
hunk ./scripts/smsqueuehandler.php 23
|
|
- print "This script must be run from the command line\n";
|
|
- exit();
|
|
+ print "This script must be run from the command line\n";
|
|
+ exit();
|
|
hunk ./scripts/smsqueuehandler.php 37
|
|
-
|
|
- function transport() {
|
|
- return 'sms';
|
|
- }
|
|
+
|
|
+ function transport() {
|
|
+ return 'sms';
|
|
+ }
|
|
hunk ./scripts/smsqueuehandler.php 42
|
|
- function start() {
|
|
- $this->log(LOG_INFO, "INITIALIZE");
|
|
- return true;
|
|
- }
|
|
+ function start() {
|
|
+ $this->log(LOG_INFO, "INITIALIZE");
|
|
+ return true;
|
|
+ }
|
|
hunk ./scripts/smsqueuehandler.php 47
|
|
- function handle_notice($notice) {
|
|
- return mail_broadcast_notice_sms($notice);
|
|
- }
|
|
-
|
|
- function finish() {
|
|
- }
|
|
+ function handle_notice($notice) {
|
|
+ return mail_broadcast_notice_sms($notice);
|
|
+ }
|
|
+
|
|
+ function finish() {
|
|
+ }
|
|
hunk ./scripts/synctwitterfriends.php 14
|
|
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
hunk ./scripts/synctwitterfriends.php 18
|
|
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
hunk ./scripts/synctwitterfriends.php 23
|
|
- print "This script must be run from the command line\n";
|
|
- exit();
|
|
+ print "This script must be run from the command line\n";
|
|
+ exit();
|
|
hunk ./scripts/synctwitterfriends.php 38
|
|
- if (($flink->friendsync & FOREIGN_FRIEND_RECV) == FOREIGN_FRIEND_RECV) {
|
|
+ if (($flink->friendsync & FOREIGN_FRIEND_RECV) == FOREIGN_FRIEND_RECV) {
|
|
hunk ./scripts/synctwitterfriends.php 40
|
|
- $user = User::staticGet($flink->user_id);
|
|
+ $user = User::staticGet($flink->user_id);
|
|
hunk ./scripts/synctwitterfriends.php 42
|
|
- print "Updating Twitter friends for user $user->nickname ($user->id)\n";
|
|
+ print "Updating Twitter friends for user $user->nickname ($user->id)\n";
|
|
hunk ./scripts/synctwitterfriends.php 44
|
|
- $fuser = $flink->getForeignUser();
|
|
+ $fuser = $flink->getForeignUser();
|
|
hunk ./scripts/synctwitterfriends.php 46
|
|
- $result = save_twitter_friends($user, $fuser->id, $fuser->nickname, $flink->credentials);
|
|
+ $result = save_twitter_friends($user, $fuser->id, $fuser->nickname, $flink->credentials);
|
|
hunk ./scripts/synctwitterfriends.php 48
|
|
- if ($result == false) {
|
|
- print "Problems updating Twitter friends! Check the log.\n";
|
|
- exit(1);
|
|
- }
|
|
- }
|
|
+ if ($result == false) {
|
|
+ print "Problems updating Twitter friends! Check the log.\n";
|
|
+ exit(1);
|
|
+ }
|
|
+ }
|
|
hunk ./scripts/update_translations.php 8
|
|
- 'da_DK' => 'http://laconi.ca/translate/download.php?file_id=23',
|
|
- 'nl_NL' => 'http://laconi.ca/translate/download.php?file_id=39',
|
|
- 'en_NZ' => 'http://laconi.ca/translate/download.php?file_id=15',
|
|
- 'eo' => 'http://laconi.ca/translate/download.php?file_id=10',
|
|
- 'fr_FR' => 'http://laconi.ca/translate/download.php?file_id=19',
|
|
- 'de_DE' => 'http://laconi.ca/translate/download.php?file_id=18',
|
|
- 'it_IT' => 'http://laconi.ca/translate/download.php?file_id=21',
|
|
- 'ko' => 'http://laconi.ca/translate/download.php?file_id=33',
|
|
- 'no_NB' => 'http://laconi.ca/translate/download.php?file_id=31',
|
|
- 'pt' => 'http://laconi.ca/translate/download.php?file_id=8',
|
|
- 'pt_BR' => 'http://laconi.ca/translate/download.php?file_id=72',
|
|
- 'ru_RU' => 'http://laconi.ca/translate/download.php?file_id=26',
|
|
- 'es' => 'http://laconi.ca/translate/download.php?file_id=9',
|
|
- 'tr_TR' => 'http://laconi.ca/translate/download.php?file_id=37',
|
|
- 'uk_UA' => 'http://laconi.ca/translate/download.php?file_id=44',
|
|
- 'he_IL' => 'http://laconi.ca/translate/download.php?file_id=71',
|
|
- 'mk_MK' => 'http://laconi.ca/translate/download.php?file_id=67',
|
|
- 'ja_JP' => 'http://laconi.ca/translate/download.php?file_id=43',
|
|
- 'cs_CZ' => 'http://laconi.ca/translate/download.php?file_id=63',
|
|
- 'ca_ES' => 'http://laconi.ca/translate/download.php?file_id=49',
|
|
- 'pl_PL' => 'http://laconi.ca/translate/download.php?file_id=51',
|
|
- 'sv_SE' => 'http://laconi.ca/translate/download.php?file_id=55'
|
|
+ 'da_DK' => 'http://laconi.ca/translate/download.php?file_id=23',
|
|
+ 'nl_NL' => 'http://laconi.ca/translate/download.php?file_id=39',
|
|
+ 'en_NZ' => 'http://laconi.ca/translate/download.php?file_id=15',
|
|
+ 'eo' => 'http://laconi.ca/translate/download.php?file_id=10',
|
|
+ 'fr_FR' => 'http://laconi.ca/translate/download.php?file_id=19',
|
|
+ 'de_DE' => 'http://laconi.ca/translate/download.php?file_id=18',
|
|
+ 'it_IT' => 'http://laconi.ca/translate/download.php?file_id=21',
|
|
+ 'ko' => 'http://laconi.ca/translate/download.php?file_id=33',
|
|
+ 'no_NB' => 'http://laconi.ca/translate/download.php?file_id=31',
|
|
+ 'pt' => 'http://laconi.ca/translate/download.php?file_id=8',
|
|
+ 'pt_BR' => 'http://laconi.ca/translate/download.php?file_id=72',
|
|
+ 'ru_RU' => 'http://laconi.ca/translate/download.php?file_id=26',
|
|
+ 'es' => 'http://laconi.ca/translate/download.php?file_id=9',
|
|
+ 'tr_TR' => 'http://laconi.ca/translate/download.php?file_id=37',
|
|
+ 'uk_UA' => 'http://laconi.ca/translate/download.php?file_id=44',
|
|
+ 'he_IL' => 'http://laconi.ca/translate/download.php?file_id=71',
|
|
+ 'mk_MK' => 'http://laconi.ca/translate/download.php?file_id=67',
|
|
+ 'ja_JP' => 'http://laconi.ca/translate/download.php?file_id=43',
|
|
+ 'cs_CZ' => 'http://laconi.ca/translate/download.php?file_id=63',
|
|
+ 'ca_ES' => 'http://laconi.ca/translate/download.php?file_id=49',
|
|
+ 'pl_PL' => 'http://laconi.ca/translate/download.php?file_id=51',
|
|
+ 'sv_SE' => 'http://laconi.ca/translate/download.php?file_id=55'
|
|
hunk ./scripts/update_translations.php 35
|
|
- $lcdir='locale/'.$code;
|
|
- $msgdir=$lcdir.'/LC_MESSAGES';
|
|
- $pofile=$msgdir.'/laconica.po';
|
|
- $mofile=$msgdir.'/laconica.mo';
|
|
+ $lcdir='locale/'.$code;
|
|
+ $msgdir=$lcdir.'/LC_MESSAGES';
|
|
+ $pofile=$msgdir.'/laconica.po';
|
|
+ $mofile=$msgdir.'/laconica.mo';
|
|
hunk ./scripts/update_translations.php 40
|
|
- /* Check for an existing */
|
|
- if (!is_dir($msgdir)) {
|
|
- mkdir($lcdir);
|
|
- mkdir($msgdir);
|
|
- $existingSHA1 = '';
|
|
- } else {
|
|
- $existingSHA1 = file_exists($pofile) ? sha1_file($pofile) : '';
|
|
- }
|
|
+ /* Check for an existing */
|
|
+ if (!is_dir($msgdir)) {
|
|
+ mkdir($lcdir);
|
|
+ mkdir($msgdir);
|
|
+ $existingSHA1 = '';
|
|
+ } else {
|
|
+ $existingSHA1 = file_exists($pofile) ? sha1_file($pofile) : '';
|
|
+ }
|
|
hunk ./scripts/update_translations.php 49
|
|
- /* Get the remote one */
|
|
- $newFile = file_get_contents($file);
|
|
+ /* Get the remote one */
|
|
+ $newFile = file_get_contents($file);
|
|
hunk ./scripts/update_translations.php 52
|
|
- // Update if the local .po file is different to the one downloaded, or
|
|
- // if the .mo file is not present.
|
|
- if(sha1($newFile)!=$existingSHA1 || !file_exists($mofile)) {
|
|
- echo "Updating ".$code."\n";
|
|
- file_put_contents($pofile, $newFile);
|
|
- $prevdir = getcwd();
|
|
- chdir($msgdir);
|
|
- system('msgmerge -U laconica.po ../../laconica.pot');
|
|
- system('msgfmt -f -o laconica.mo laconica.po');
|
|
- chdir($prevdir);
|
|
- } else {
|
|
- echo "Unchanged - ".$code."\n";
|
|
- }
|
|
+ // Update if the local .po file is different to the one downloaded, or
|
|
+ // if the .mo file is not present.
|
|
+ if(sha1($newFile)!=$existingSHA1 || !file_exists($mofile)) {
|
|
+ echo "Updating ".$code."\n";
|
|
+ file_put_contents($pofile, $newFile);
|
|
+ $prevdir = getcwd();
|
|
+ chdir($msgdir);
|
|
+ system('msgmerge -U laconica.po ../../laconica.pot');
|
|
+ system('msgfmt -f -o laconica.mo laconica.po');
|
|
+ chdir($prevdir);
|
|
+ } else {
|
|
+ echo "Unchanged - ".$code."\n";
|
|
+ }
|
|
hunk ./scripts/xmppconfirmhandler.php 23
|
|
- print "This script must be run from the command line\n";
|
|
- exit();
|
|
+ print "This script must be run from the command line\n";
|
|
+ exit();
|
|
hunk ./scripts/xmppconfirmhandler.php 40
|
|
- var $_id = 'confirm';
|
|
-
|
|
- function class_name() {
|
|
- return 'XmppConfirmHandler';
|
|
- }
|
|
-
|
|
- function run() {
|
|
- if (!$this->start()) {
|
|
- return false;
|
|
- }
|
|
- $this->log(LOG_INFO, 'checking for queued confirmations');
|
|
- do {
|
|
- $confirm = $this->next_confirm();
|
|
- if ($confirm) {
|
|
- $this->log(LOG_INFO, 'Sending confirmation for ' . $confirm->address);
|
|
- $user = User::staticGet($confirm->user_id);
|
|
- if (!$user) {
|
|
- $this->log(LOG_WARNING, 'Confirmation for unknown user ' . $confirm->user_id);
|
|
- continue;
|
|
- }
|
|
- $success = jabber_confirm_address($confirm->code,
|
|
- $user->nickname,
|
|
- $confirm->address);
|
|
- if (!$success) {
|
|
- $this->log(LOG_ERR, 'Confirmation failed for ' . $confirm->address);
|
|
- # Just let the claim age out; hopefully things work then
|
|
- continue;
|
|
- } else {
|
|
- $this->log(LOG_INFO, 'Confirmation sent for ' . $confirm->address);
|
|
- # Mark confirmation sent; need a dupe so we don't have the WHERE clause
|
|
- $dupe = Confirm_address::staticGet('code', $confirm->code);
|
|
- if (!$dupe) {
|
|
- common_log(LOG_WARNING, 'Could not refetch confirm', __FILE__);
|
|
- continue;
|
|
- }
|
|
- $orig = clone($dupe);
|
|
- $dupe->sent = $dupe->claimed;
|
|
- $result = $dupe->update($orig);
|
|
- if (!$result) {
|
|
- common_log_db_error($dupe, 'UPDATE', __FILE__);
|
|
- # Just let the claim age out; hopefully things work then
|
|
- continue;
|
|
- }
|
|
- $dupe->free();
|
|
- unset($dupe);
|
|
- }
|
|
- $user->free();
|
|
- unset($user);
|
|
- $confirm->free();
|
|
- unset($confirm);
|
|
- $this->idle(0);
|
|
- } else {
|
|
-# $this->clear_old_confirm_claims();
|
|
- $this->idle(10);
|
|
- }
|
|
- } while (true);
|
|
- if (!$this->finish()) {
|
|
- return false;
|
|
- }
|
|
- return true;
|
|
- }
|
|
+ var $_id = 'confirm';
|
|
+
|
|
+ function class_name() {
|
|
+ return 'XmppConfirmHandler';
|
|
+ }
|
|
+
|
|
+ function run() {
|
|
+ if (!$this->start()) {
|
|
+ return false;
|
|
+ }
|
|
+ $this->log(LOG_INFO, 'checking for queued confirmations');
|
|
+ do {
|
|
+ $confirm = $this->next_confirm();
|
|
+ if ($confirm) {
|
|
+ $this->log(LOG_INFO, 'Sending confirmation for ' . $confirm->address);
|
|
+ $user = User::staticGet($confirm->user_id);
|
|
+ if (!$user) {
|
|
+ $this->log(LOG_WARNING, 'Confirmation for unknown user ' . $confirm->user_id);
|
|
+ continue;
|
|
+ }
|
|
+ $success = jabber_confirm_address($confirm->code,
|
|
+ $user->nickname,
|
|
+ $confirm->address);
|
|
+ if (!$success) {
|
|
+ $this->log(LOG_ERR, 'Confirmation failed for ' . $confirm->address);
|
|
+ # Just let the claim age out; hopefully things work then
|
|
+ continue;
|
|
+ } else {
|
|
+ $this->log(LOG_INFO, 'Confirmation sent for ' . $confirm->address);
|
|
+ # Mark confirmation sent; need a dupe so we don't have the WHERE clause
|
|
+ $dupe = Confirm_address::staticGet('code', $confirm->code);
|
|
+ if (!$dupe) {
|
|
+ common_log(LOG_WARNING, 'Could not refetch confirm', __FILE__);
|
|
+ continue;
|
|
+ }
|
|
+ $orig = clone($dupe);
|
|
+ $dupe->sent = $dupe->claimed;
|
|
+ $result = $dupe->update($orig);
|
|
+ if (!$result) {
|
|
+ common_log_db_error($dupe, 'UPDATE', __FILE__);
|
|
+ # Just let the claim age out; hopefully things work then
|
|
+ continue;
|
|
+ }
|
|
+ $dupe->free();
|
|
+ unset($dupe);
|
|
+ }
|
|
+ $user->free();
|
|
+ unset($user);
|
|
+ $confirm->free();
|
|
+ unset($confirm);
|
|
+ $this->idle(0);
|
|
+ } else {
|
|
+# $this->clear_old_confirm_claims();
|
|
+ $this->idle(10);
|
|
+ }
|
|
+ } while (true);
|
|
+ if (!$this->finish()) {
|
|
+ return false;
|
|
+ }
|
|
+ return true;
|
|
+ }
|
|
hunk ./scripts/xmppconfirmhandler.php 102
|
|
- function next_confirm() {
|
|
- $confirm = new Confirm_address();
|
|
- $confirm->whereAdd('claimed IS NULL');
|
|
- $confirm->whereAdd('sent IS NULL');
|
|
- # XXX: eventually we could do other confirmations in the queue, too
|
|
- $confirm->address_type = 'jabber';
|
|
- $confirm->orderBy('modified DESC');
|
|
- $confirm->limit(1);
|
|
- if ($confirm->find(TRUE)) {
|
|
- $this->log(LOG_INFO, 'Claiming confirmation for ' . $confirm->address);
|
|
- # working around some weird DB_DataObject behaviour
|
|
- $confirm->whereAdd(''); # clears where stuff
|
|
- $original = clone($confirm);
|
|
- $confirm->claimed = common_sql_now();
|
|
- $result = $confirm->update($original);
|
|
- if ($result) {
|
|
- $this->log(LOG_INFO, 'Succeeded in claim! '. $result);
|
|
- return $confirm;
|
|
- } else {
|
|
- $this->log(LOG_INFO, 'Failed in claim!');
|
|
- return false;
|
|
- }
|
|
- }
|
|
- return NULL;
|
|
- }
|
|
+ function next_confirm() {
|
|
+ $confirm = new Confirm_address();
|
|
+ $confirm->whereAdd('claimed IS NULL');
|
|
+ $confirm->whereAdd('sent IS NULL');
|
|
+ # XXX: eventually we could do other confirmations in the queue, too
|
|
+ $confirm->address_type = 'jabber';
|
|
+ $confirm->orderBy('modified DESC');
|
|
+ $confirm->limit(1);
|
|
+ if ($confirm->find(TRUE)) {
|
|
+ $this->log(LOG_INFO, 'Claiming confirmation for ' . $confirm->address);
|
|
+ # working around some weird DB_DataObject behaviour
|
|
+ $confirm->whereAdd(''); # clears where stuff
|
|
+ $original = clone($confirm);
|
|
+ $confirm->claimed = common_sql_now();
|
|
+ $result = $confirm->update($original);
|
|
+ if ($result) {
|
|
+ $this->log(LOG_INFO, 'Succeeded in claim! '. $result);
|
|
+ return $confirm;
|
|
+ } else {
|
|
+ $this->log(LOG_INFO, 'Failed in claim!');
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+ return NULL;
|
|
+ }
|
|
hunk ./scripts/xmppconfirmhandler.php 128
|
|
- function clear_old_confirm_claims() {
|
|
- $confirm = new Confirm();
|
|
- $confirm->claimed = NULL;
|
|
- $confirm->whereAdd('now() - claimed > '.CLAIM_TIMEOUT);
|
|
- $confirm->update(DB_DATAOBJECT_WHEREADD_ONLY);
|
|
- $confirm->free();
|
|
- unset($confirm);
|
|
- }
|
|
+ function clear_old_confirm_claims() {
|
|
+ $confirm = new Confirm();
|
|
+ $confirm->claimed = NULL;
|
|
+ $confirm->whereAdd('now() - claimed > '.CLAIM_TIMEOUT);
|
|
+ $confirm->update(DB_DATAOBJECT_WHEREADD_ONLY);
|
|
+ $confirm->free();
|
|
+ unset($confirm);
|
|
+ }
|
|
hunk ./scripts/xmppdaemon.php 23
|
|
- print "This script must be run from the command line\n";
|
|
- exit();
|
|
+ print "This script must be run from the command line\n";
|
|
+ exit();
|
|
hunk ./scripts/xmppdaemon.php 42
|
|
- function XMPPDaemon($resource=NULL) {
|
|
- static $attrs = array('server', 'port', 'user', 'password', 'host');
|
|
+ function XMPPDaemon($resource=NULL) {
|
|
+ static $attrs = array('server', 'port', 'user', 'password', 'host');
|
|
hunk ./scripts/xmppdaemon.php 45
|
|
- foreach ($attrs as $attr)
|
|
- {
|
|
- $this->$attr = common_config('xmpp', $attr);
|
|
- }
|
|
+ foreach ($attrs as $attr)
|
|
+ {
|
|
+ $this->$attr = common_config('xmpp', $attr);
|
|
+ }
|
|
hunk ./scripts/xmppdaemon.php 50
|
|
- if ($resource) {
|
|
- $this->resource = $resource;
|
|
- } else {
|
|
- $this->resource = common_config('xmpp', 'resource') . 'daemon';
|
|
- }
|
|
+ if ($resource) {
|
|
+ $this->resource = $resource;
|
|
+ } else {
|
|
+ $this->resource = common_config('xmpp', 'resource') . 'daemon';
|
|
+ }
|
|
hunk ./scripts/xmppdaemon.php 56
|
|
- $this->log(LOG_INFO, "INITIALIZE XMPPDaemon {$this->user}@{$this->server}/{$this->resource}");
|
|
- }
|
|
+ $this->log(LOG_INFO, "INITIALIZE XMPPDaemon {$this->user}@{$this->server}/{$this->resource}");
|
|
+ }
|
|
hunk ./scripts/xmppdaemon.php 59
|
|
- function connect() {
|
|
+ function connect() {
|
|
hunk ./scripts/xmppdaemon.php 61
|
|
- $connect_to = ($this->host) ? $this->host : $this->server;
|
|
+ $connect_to = ($this->host) ? $this->host : $this->server;
|
|
hunk ./scripts/xmppdaemon.php 63
|
|
- $this->log(LOG_INFO, "Connecting to $connect_to on port $this->port");
|
|
+ $this->log(LOG_INFO, "Connecting to $connect_to on port $this->port");
|
|
hunk ./scripts/xmppdaemon.php 65
|
|
- $this->conn = jabber_connect($this->resource);
|
|
+ $this->conn = jabber_connect($this->resource);
|
|
hunk ./scripts/xmppdaemon.php 67
|
|
- if (!$this->conn) {
|
|
- return false;
|
|
- }
|
|
+ if (!$this->conn) {
|
|
+ return false;
|
|
+ }
|
|
hunk ./scripts/xmppdaemon.php 71
|
|
- $this->conn->setReconnectTimeout(600);
|
|
+ $this->conn->setReconnectTimeout(600);
|
|
hunk ./scripts/xmppdaemon.php 73
|
|
- jabber_send_presence("Send me a message to post a notice", 'available',
|
|
- NULL, 'available', 100);
|
|
- return !$this->conn->isDisconnected();
|
|
- }
|
|
+ jabber_send_presence("Send me a message to post a notice", 'available',
|
|
+ NULL, 'available', 100);
|
|
+ return !$this->conn->isDisconnected();
|
|
+ }
|
|
hunk ./scripts/xmppdaemon.php 78
|
|
- function name() {
|
|
- return strtolower('xmppdaemon.'.$this->resource);
|
|
- }
|
|
+ function name() {
|
|
+ return strtolower('xmppdaemon.'.$this->resource);
|
|
+ }
|
|
hunk ./scripts/xmppdaemon.php 82
|
|
- function run() {
|
|
- if ($this->connect()) {
|
|
+ function run() {
|
|
+ if ($this->connect()) {
|
|
hunk ./scripts/xmppdaemon.php 85
|
|
- $this->conn->addEventHandler('message', 'handle_message', $this);
|
|
- $this->conn->addEventHandler('presence', 'handle_presence', $this);
|
|
- $this->conn->addEventHandler('reconnect', 'handle_reconnect', $this);
|
|
+ $this->conn->addEventHandler('message', 'handle_message', $this);
|
|
+ $this->conn->addEventHandler('presence', 'handle_presence', $this);
|
|
+ $this->conn->addEventHandler('reconnect', 'handle_reconnect', $this);
|
|
hunk ./scripts/xmppdaemon.php 89
|
|
- $this->conn->process();
|
|
- }
|
|
- }
|
|
+ $this->conn->process();
|
|
+ }
|
|
+ }
|
|
hunk ./scripts/xmppdaemon.php 93
|
|
- function handle_reconnect(&$pl) {
|
|
- $this->conn->processUntil('session_start');
|
|
- $this->conn->presence('Send me a message to post a notice', 'available', NULL, 'available', 100);
|
|
- }
|
|
+ function handle_reconnect(&$pl) {
|
|
+ $this->conn->processUntil('session_start');
|
|
+ $this->conn->presence('Send me a message to post a notice', 'available', NULL, 'available', 100);
|
|
+ }
|
|
hunk ./scripts/xmppdaemon.php 98
|
|
- function get_user($from) {
|
|
- $user = User::staticGet('jabber', jabber_normalize_jid($from));
|
|
- return $user;
|
|
- }
|
|
+ function get_user($from) {
|
|
+ $user = User::staticGet('jabber', jabber_normalize_jid($from));
|
|
+ return $user;
|
|
+ }
|
|
hunk ./scripts/xmppdaemon.php 103
|
|
- function handle_message(&$pl) {
|
|
- if ($pl['type'] != 'chat') {
|
|
- return;
|
|
- }
|
|
- if (mb_strlen($pl['body']) == 0) {
|
|
- return;
|
|
- }
|
|
+ function handle_message(&$pl) {
|
|
+ if ($pl['type'] != 'chat') {
|
|
+ return;
|
|
+ }
|
|
+ if (mb_strlen($pl['body']) == 0) {
|
|
+ return;
|
|
+ }
|
|
hunk ./scripts/xmppdaemon.php 111
|
|
- $from = jabber_normalize_jid($pl['from']);
|
|
+ $from = jabber_normalize_jid($pl['from']);
|
|
hunk ./scripts/xmppdaemon.php 113
|
|
- # Forwarded from another daemon (probably a broadcaster) for
|
|
- # us to handle
|
|
+ # Forwarded from another daemon (probably a broadcaster) for
|
|
+ # us to handle
|
|
hunk ./scripts/xmppdaemon.php 116
|
|
- if ($this->is_self($from)) {
|
|
- $from = $this->get_ofrom($pl);
|
|
- if (is_null($from) || $this->is_self($from)) {
|
|
- return;
|
|
- }
|
|
- }
|
|
+ if ($this->is_self($from)) {
|
|
+ $from = $this->get_ofrom($pl);
|
|
+ if (is_null($from) || $this->is_self($from)) {
|
|
+ return;
|
|
+ }
|
|
+ }
|
|
hunk ./scripts/xmppdaemon.php 123
|
|
- $user = $this->get_user($from);
|
|
+ $user = $this->get_user($from);
|
|
hunk ./scripts/xmppdaemon.php 125
|
|
- if (!$user) {
|
|
- $this->from_site($from, 'Unknown user; go to ' .
|
|
- common_local_url('imsettings') .
|
|
- ' to add your address to your account');
|
|
- $this->log(LOG_WARNING, 'Message from unknown user ' . $from);
|
|
- return;
|
|
- }
|
|
- if ($this->handle_command($user, $pl['body'])) {
|
|
- return;
|
|
- } else if ($this->is_autoreply($pl['body'])) {
|
|
- $this->log(LOG_INFO, 'Ignoring auto reply from ' . $from);
|
|
- return;
|
|
- } else if ($this->is_otr($pl['body'])) {
|
|
- $this->log(LOG_INFO, 'Ignoring OTR from ' . $from);
|
|
- return;
|
|
- } else if ($this->is_direct($pl['body'])) {
|
|
- preg_match_all('/d[\ ]*([a-z0-9]{1,64})/', $pl['body'], $to);
|
|
+ if (!$user) {
|
|
+ $this->from_site($from, 'Unknown user; go to ' .
|
|
+ common_local_url('imsettings') .
|
|
+ ' to add your address to your account');
|
|
+ $this->log(LOG_WARNING, 'Message from unknown user ' . $from);
|
|
+ return;
|
|
+ }
|
|
+ if ($this->handle_command($user, $pl['body'])) {
|
|
+ return;
|
|
+ } else if ($this->is_autoreply($pl['body'])) {
|
|
+ $this->log(LOG_INFO, 'Ignoring auto reply from ' . $from);
|
|
+ return;
|
|
+ } else if ($this->is_otr($pl['body'])) {
|
|
+ $this->log(LOG_INFO, 'Ignoring OTR from ' . $from);
|
|
+ return;
|
|
+ } else if ($this->is_direct($pl['body'])) {
|
|
+ preg_match_all('/d[\ ]*([a-z0-9]{1,64})/', $pl['body'], $to);
|
|
hunk ./scripts/xmppdaemon.php 143
|
|
- $to = preg_replace('/^d([\ ])*/', '', $to[0][0]);
|
|
- $body = preg_replace('/d[\ ]*('. $to .')[\ ]*/', '', $pl['body']);
|
|
- $this->add_direct($user, $body, $to, $from);
|
|
- } else {
|
|
- $len = mb_strlen($pl['body']);
|
|
- if($len > 140) {
|
|
- $this->from_site($from, 'Message too long - maximum is 140 characters, you sent ' . $len);
|
|
- return;
|
|
- }
|
|
- $this->add_notice($user, $pl);
|
|
- }
|
|
+ $to = preg_replace('/^d([\ ])*/', '', $to[0][0]);
|
|
+ $body = preg_replace('/d[\ ]*('. $to .')[\ ]*/', '', $pl['body']);
|
|
+ $this->add_direct($user, $body, $to, $from);
|
|
+ } else {
|
|
+ $len = mb_strlen($pl['body']);
|
|
+ if($len > 140) {
|
|
+ $this->from_site($from, 'Message too long - maximum is 140 characters, you sent ' . $len);
|
|
+ return;
|
|
+ }
|
|
+ $this->add_notice($user, $pl);
|
|
+ }
|
|
hunk ./scripts/xmppdaemon.php 155
|
|
- $user->free();
|
|
- unset($user);
|
|
- }
|
|
+ $user->free();
|
|
+ unset($user);
|
|
+ }
|
|
hunk ./scripts/xmppdaemon.php 159
|
|
- function is_self($from) {
|
|
- return preg_match('/^'.strtolower(jabber_daemon_address()).'/', strtolower($from));
|
|
- }
|
|
+ function is_self($from) {
|
|
+ return preg_match('/^'.strtolower(jabber_daemon_address()).'/', strtolower($from));
|
|
+ }
|
|
hunk ./scripts/xmppdaemon.php 163
|
|
- function get_ofrom($pl) {
|
|
- $xml = $pl['xml'];
|
|
- $addresses = $xml->sub('addresses');
|
|
- if (!$addresses) {
|
|
- $this->log(LOG_WARNING, 'Forwarded message without addresses');
|
|
- return NULL;
|
|
- }
|
|
- $address = $addresses->sub('address');
|
|
- if (!$address) {
|
|
- $this->log(LOG_WARNING, 'Forwarded message without address');
|
|
- return NULL;
|
|
- }
|
|
- if (!array_key_exists('type', $address->attrs)) {
|
|
- $this->log(LOG_WARNING, 'No type for forwarded message');
|
|
- return NULL;
|
|
- }
|
|
- $type = $address->attrs['type'];
|
|
- if ($type != 'ofrom') {
|
|
- $this->log(LOG_WARNING, 'Type of forwarded message is not ofrom');
|
|
- return NULL;
|
|
- }
|
|
- if (!array_key_exists('jid', $address->attrs)) {
|
|
- $this->log(LOG_WARNING, 'No jid for forwarded message');
|
|
- return NULL;
|
|
- }
|
|
- $jid = $address->attrs['jid'];
|
|
- if (!$jid) {
|
|
- $this->log(LOG_WARNING, 'Could not get jid from address');
|
|
- return NULL;
|
|
- }
|
|
- $this->log(LOG_DEBUG, 'Got message forwarded from jid ' . $jid);
|
|
- return $jid;
|
|
- }
|
|
+ function get_ofrom($pl) {
|
|
+ $xml = $pl['xml'];
|
|
+ $addresses = $xml->sub('addresses');
|
|
+ if (!$addresses) {
|
|
+ $this->log(LOG_WARNING, 'Forwarded message without addresses');
|
|
+ return NULL;
|
|
+ }
|
|
+ $address = $addresses->sub('address');
|
|
+ if (!$address) {
|
|
+ $this->log(LOG_WARNING, 'Forwarded message without address');
|
|
+ return NULL;
|
|
+ }
|
|
+ if (!array_key_exists('type', $address->attrs)) {
|
|
+ $this->log(LOG_WARNING, 'No type for forwarded message');
|
|
+ return NULL;
|
|
+ }
|
|
+ $type = $address->attrs['type'];
|
|
+ if ($type != 'ofrom') {
|
|
+ $this->log(LOG_WARNING, 'Type of forwarded message is not ofrom');
|
|
+ return NULL;
|
|
+ }
|
|
+ if (!array_key_exists('jid', $address->attrs)) {
|
|
+ $this->log(LOG_WARNING, 'No jid for forwarded message');
|
|
+ return NULL;
|
|
+ }
|
|
+ $jid = $address->attrs['jid'];
|
|
+ if (!$jid) {
|
|
+ $this->log(LOG_WARNING, 'Could not get jid from address');
|
|
+ return NULL;
|
|
+ }
|
|
+ $this->log(LOG_DEBUG, 'Got message forwarded from jid ' . $jid);
|
|
+ return $jid;
|
|
+ }
|
|
hunk ./scripts/xmppdaemon.php 197
|
|
- function is_autoreply($txt) {
|
|
- if (preg_match('/[\[\(]?[Aa]uto[-\s]?[Rr]e(ply|sponse)[\]\)]/', $txt)) {
|
|
- return true;
|
|
- } else {
|
|
- return false;
|
|
- }
|
|
- }
|
|
+ function is_autoreply($txt) {
|
|
+ if (preg_match('/[\[\(]?[Aa]uto[-\s]?[Rr]e(ply|sponse)[\]\)]/', $txt)) {
|
|
+ return true;
|
|
+ } else {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
hunk ./scripts/xmppdaemon.php 205
|
|
- function is_otr($txt) {
|
|
- if (preg_match('/^\?OTR/', $txt)) {
|
|
- return true;
|
|
- } else {
|
|
- return false;
|
|
- }
|
|
- }
|
|
+ function is_otr($txt) {
|
|
+ if (preg_match('/^\?OTR/', $txt)) {
|
|
+ return true;
|
|
+ } else {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
hunk ./scripts/xmppdaemon.php 213
|
|
- function is_direct($txt) {
|
|
- if (strtolower(substr($txt, 0, 2))=='d ') {
|
|
- return true;
|
|
- } else {
|
|
- return false;
|
|
- }
|
|
- }
|
|
+ function is_direct($txt) {
|
|
+ if (strtolower(substr($txt, 0, 2))=='d ') {
|
|
+ return true;
|
|
+ } else {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
hunk ./scripts/xmppdaemon.php 221
|
|
- function from_site($address, $msg) {
|
|
- $text = '['.common_config('site', 'name') . '] ' . $msg;
|
|
- jabber_send_message($address, $text);
|
|
- }
|
|
+ function from_site($address, $msg) {
|
|
+ $text = '['.common_config('site', 'name') . '] ' . $msg;
|
|
+ jabber_send_message($address, $text);
|
|
+ }
|
|
hunk ./scripts/xmppdaemon.php 226
|
|
- function handle_command($user, $body) {
|
|
- $inter = new CommandInterpreter();
|
|
- $cmd = $inter->handle_command($user, $body);
|
|
- if ($cmd) {
|
|
- $chan = new XMPPChannel($this->conn);
|
|
- $cmd->execute($chan);
|
|
- return true;
|
|
- } else {
|
|
- return false;
|
|
- }
|
|
- }
|
|
+ function handle_command($user, $body) {
|
|
+ $inter = new CommandInterpreter();
|
|
+ $cmd = $inter->handle_command($user, $body);
|
|
+ if ($cmd) {
|
|
+ $chan = new XMPPChannel($this->conn);
|
|
+ $cmd->execute($chan);
|
|
+ return true;
|
|
+ } else {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
hunk ./scripts/xmppdaemon.php 238
|
|
- function add_notice(&$user, &$pl) {
|
|
+ function add_notice(&$user, &$pl) {
|
|
hunk ./scripts/xmppdaemon.php 248
|
|
- $notice = Notice::saveNew($user->id, $content, 'xmpp');
|
|
- if (is_string($notice)) {
|
|
- $this->log(LOG_ERR, $notice);
|
|
- return;
|
|
- }
|
|
- common_broadcast_notice($notice);
|
|
- $this->log(LOG_INFO,
|
|
- 'Added notice ' . $notice->id . ' from user ' . $user->nickname);
|
|
- $notice->free();
|
|
- unset($notice);
|
|
- }
|
|
+ $notice = Notice::saveNew($user->id, $content, 'xmpp');
|
|
+ if (is_string($notice)) {
|
|
+ $this->log(LOG_ERR, $notice);
|
|
+ return;
|
|
+ }
|
|
+ common_broadcast_notice($notice);
|
|
+ $this->log(LOG_INFO,
|
|
+ 'Added notice ' . $notice->id . ' from user ' . $user->nickname);
|
|
+ $notice->free();
|
|
+ unset($notice);
|
|
+ }
|
|
hunk ./scripts/xmppdaemon.php 260
|
|
- function handle_presence(&$pl) {
|
|
- $from = jabber_normalize_jid($pl['from']);
|
|
- switch ($pl['type']) {
|
|
- case 'subscribe':
|
|
- # We let anyone subscribe
|
|
- $this->subscribed($from);
|
|
- $this->log(LOG_INFO,
|
|
- 'Accepted subscription from ' . $from);
|
|
- break;
|
|
- case 'subscribed':
|
|
- case 'unsubscribed':
|
|
- case 'unsubscribe':
|
|
- $this->log(LOG_INFO,
|
|
- 'Ignoring "' . $pl['type'] . '" from ' . $from);
|
|
- break;
|
|
- default:
|
|
- if (!$pl['type']) {
|
|
- $user = User::staticGet('jabber', $from);
|
|
- if (!$user) {
|
|
- $this->log(LOG_WARNING, 'Presence from unknown user ' . $from);
|
|
- return;
|
|
- }
|
|
- if ($user->updatefrompresence) {
|
|
- $this->log(LOG_INFO, 'Updating ' . $user->nickname .
|
|
- ' status from presence.');
|
|
- $this->add_notice($user, $pl);
|
|
- }
|
|
- $user->free();
|
|
- unset($user);
|
|
- }
|
|
- break;
|
|
- }
|
|
- }
|
|
+ function handle_presence(&$pl) {
|
|
+ $from = jabber_normalize_jid($pl['from']);
|
|
+ switch ($pl['type']) {
|
|
+ case 'subscribe':
|
|
+ # We let anyone subscribe
|
|
+ $this->subscribed($from);
|
|
+ $this->log(LOG_INFO,
|
|
+ 'Accepted subscription from ' . $from);
|
|
+ break;
|
|
+ case 'subscribed':
|
|
+ case 'unsubscribed':
|
|
+ case 'unsubscribe':
|
|
+ $this->log(LOG_INFO,
|
|
+ 'Ignoring "' . $pl['type'] . '" from ' . $from);
|
|
+ break;
|
|
+ default:
|
|
+ if (!$pl['type']) {
|
|
+ $user = User::staticGet('jabber', $from);
|
|
+ if (!$user) {
|
|
+ $this->log(LOG_WARNING, 'Presence from unknown user ' . $from);
|
|
+ return;
|
|
+ }
|
|
+ if ($user->updatefrompresence) {
|
|
+ $this->log(LOG_INFO, 'Updating ' . $user->nickname .
|
|
+ ' status from presence.');
|
|
+ $this->add_notice($user, $pl);
|
|
+ }
|
|
+ $user->free();
|
|
+ unset($user);
|
|
+ }
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
hunk ./scripts/xmppdaemon.php 294
|
|
- function log($level, $msg) {
|
|
- common_log($level, 'XMPPDaemon('.$this->resource.'): '.$msg);
|
|
- }
|
|
+ function log($level, $msg) {
|
|
+ common_log($level, 'XMPPDaemon('.$this->resource.'): '.$msg);
|
|
+ }
|
|
hunk ./scripts/xmppdaemon.php 298
|
|
- function subscribed($to) {
|
|
- jabber_special_presence('subscribed', $to);
|
|
- }
|
|
+ function subscribed($to) {
|
|
+ jabber_special_presence('subscribed', $to);
|
|
+ }
|