From b8b227b32882fb511c8481a41c53637e7ce7707a Mon Sep 17 00:00:00 2001 From: Mike Macgirvin Date: Sat, 23 Oct 2010 01:20:26 -0700 Subject: [PATCH] add nicknames to contact records (going forward and retroactive) --- boot.php | 2 +- database.sql | 1 + include/Scrape.php | 5 +++++ mod/dfrn_request.php | 10 ++++++---- mod/profile.php | 2 +- mod/register.php | 5 +++-- update.php | 13 +++++++++++++ 7 files changed, 30 insertions(+), 8 deletions(-) diff --git a/boot.php b/boot.php index c8649f2d6d..7885bb4ea4 100644 --- a/boot.php +++ b/boot.php @@ -2,7 +2,7 @@ set_time_limit(0); -define ( 'BUILD_ID', 1011 ); +define ( 'BUILD_ID', 1012 ); define ( 'DFRN_PROTOCOL_VERSION', '2.0' ); define ( 'EOL', "
\r\n" ); diff --git a/database.sql b/database.sql index a3d78d79a3..36c578961a 100644 --- a/database.sql +++ b/database.sql @@ -56,6 +56,7 @@ CREATE TABLE IF NOT EXISTS `contact` ( `duplex` tinyint(1) NOT NULL DEFAULT '0', `network` char(255) NOT NULL, `name` char(255) NOT NULL, + `nick` char(255) NOT NULL, `photo` text NOT NULL, `thumb` text NOT NULL, `site-pubkey` text NOT NULL, diff --git a/include/Scrape.php b/include/Scrape.php index b4a5dd8496..0272dde129 100644 --- a/include/Scrape.php +++ b/include/Scrape.php @@ -33,6 +33,11 @@ function scrape_dfrn($url) { $x = $item->getAttribute('rel'); if(substr($x,0,5) == "dfrn-") $ret[$x] = $item->getAttribute('href'); + if($x === 'lrdd') { + $decoded = urldecode($item->getAttribute('href')); + if(preg_match('/acct:([^@]*)@/',$decoded,$matches)) + $ret['nick'] = $matches[1]; + } } // Pull out hCard profile elements diff --git a/mod/dfrn_request.php b/mod/dfrn_request.php index 6e8171d50a..ddf495986d 100644 --- a/mod/dfrn_request.php +++ b/mod/dfrn_request.php @@ -96,13 +96,14 @@ function dfrn_request_post(&$a) { dbesc_array($parms); - $r = q("INSERT INTO `contact` ( `uid`, `created`,`url`, `name`, `photo`, `site-pubkey`, + $r = q("INSERT INTO `contact` ( `uid`, `created`,`url`, `name`, `nick`, `photo`, `site-pubkey`, `request`, `confirm`, `notify`, `poll`, `aes_allow`) - VALUES ( %d, '%s', '%s', '%s' , '%s', '%s', '%s', '%s', '%s', '%s', %d)", + VALUES ( %d, '%s', '%s', '%s' , '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d)", intval(local_user()), datetime_convert(), dbesc($dfrn_url), $parms['fn'], + $parms['nick'], $parms['photo'], $parms['key'], $parms['dfrn-request'], @@ -271,13 +272,14 @@ function dfrn_request_post(&$a) { dbesc_array($parms); - $r = q("INSERT INTO `contact` ( `uid`, `created`, `url`, `name`, `issued-id`, `photo`, `site-pubkey`, + $r = q("INSERT INTO `contact` ( `uid`, `created`, `url`, `name`, `nick`, `issued-id`, `photo`, `site-pubkey`, `request`, `confirm`, `notify`, `poll` ) - VALUES ( %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' )", + VALUES ( %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' )", intval($uid), datetime_convert(), $parms['url'], $parms['fn'], + $parms['nick'], $parms['issued-id'], $parms['photo'], $parms['key'], diff --git a/mod/profile.php b/mod/profile.php index f99a3c4f2a..6c60ea8ac1 100644 --- a/mod/profile.php +++ b/mod/profile.php @@ -65,7 +65,7 @@ function profile_init(&$a) { $a->page['htmlhead'] .= '' . "\r\n" ; $a->page['htmlhead'] .= '' . "\r\n" ; - $uri = urlencode('acct:' . $a->user['nickname'] . '@' . $a->get_hostname() . (($a->path) ? '/' . $a->path : '')); + $uri = urlencode('acct:' . $a->profile['nickname'] . '@' . $a->get_hostname() . (($a->path) ? '/' . $a->path : '')); $a->page['htmlhead'] .= '' . "\r\n"; header('Link: <' . $a->get_baseurl() . '/xrd/?uri=' . $uri . '>; rel="lrdd"; type="application/xrd+xml"'); diff --git a/mod/register.php b/mod/register.php index 6f0469db8e..52c3863ebd 100644 --- a/mod/register.php +++ b/mod/register.php @@ -161,12 +161,13 @@ function register_post(&$a) { intval($newuid)); return; } - $r = q("INSERT INTO `contact` ( `uid`, `created`, `self`, `name`, `photo`, `thumb`, `blocked`, `pending`, `url`, + $r = q("INSERT INTO `contact` ( `uid`, `created`, `self`, `name`, `nick`, `photo`, `thumb`, `blocked`, `pending`, `url`, `request`, `notify`, `poll`, `confirm`, `name-date`, `uri-date`, `avatar-date` ) - VALUES ( %d, '%s', 1, '%s', '%s', '%s', 0, 0, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ", + VALUES ( %d, '%s', 1, '%s', '%s', '%s', '%s', 0, 0, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ", intval($newuid), datetime_convert(), dbesc($username), + dbesc($nickname), dbesc($a->get_baseurl() . "/photo/profile/{$newuid}.jpg"), dbesc($a->get_baseurl() . "/photo/avatar/{$newuid}.jpg"), dbesc($a->get_baseurl() . "/profile/$nickname"), diff --git a/update.php b/update.php index 65713583b3..f0d72ef167 100644 --- a/update.php +++ b/update.php @@ -80,3 +80,16 @@ function update_1009() { function update_1010() { q("ALTER TABLE `contact` ADD `lrdd` CHAR( 255 ) NOT NULL AFTER `url` "); } + +function update_1011() { + q("ALTER TABLE `contact` ADD `nick` CHAR( 255 ) NOT NULL AFTER `name` "); + $r = q("SELECT * FROM `contact` WHERE 1"); + if(count($r)) { + foreach($r as $rr) { + q("UPDATE `contact` SET `nick` = '%s' WHERE `id` = %d LIMIT 1", + dbesc(basename($rr['url'])), + intval($rr['id']) + ); + } + } +} \ No newline at end of file