aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/api.php16
-rw-r--r--include/hubloc.php8
-rw-r--r--mod/item.php27
-rw-r--r--mod/ping.php6
-rw-r--r--version.inc2
5 files changed, 44 insertions, 15 deletions
diff --git a/include/api.php b/include/api.php
index 8c0e32ecc..3ac8ddbda 100644
--- a/include/api.php
+++ b/include/api.php
@@ -622,10 +622,14 @@ require_once('include/items.php');
function api_red_xchan(&$a,$type) {
+ logger('api_xchan');
+
if(api_user() === false)
return false;
+ logger('api_xchan');
require_once('include/hubloc.php');
- if($_SERVER['request_method'] === 'POST') {
+
+ if($_SERVER['REQUEST_METHOD'] === 'POST') {
$r = xchan_store($_REQUEST);
}
$r = xchan_fetch($_REQUEST);
@@ -727,6 +731,16 @@ require_once('include/items.php');
else
$_REQUEST['parent_mid'] = $parent;
+ if($_REQUEST['namespace'] && $parent) {
+ $x = q("select iid from item_id where service = '%s' and sid = '%s' limit 1",
+ dbesc($_REQUEST['namespace']),
+ dbesc($parent)
+ );
+ if($x) {
+ $_REQUEST['parent'] = $x[0]['iid'];
+ }
+ }
+
if(requestdata('lat') && requestdata('long'))
$_REQUEST['coord'] = sprintf("%s %s",requestdata('lat'),requestdata('long'));
diff --git a/include/hubloc.php b/include/hubloc.php
index 98c1a21f3..a4efe1c75 100644
--- a/include/hubloc.php
+++ b/include/hubloc.php
@@ -184,6 +184,8 @@ function hubloc_mark_as_down($posturl) {
function xchan_store($arr) {
+ logger('xchan_store: ' . print_r($arr,true));
+
if(! $arr['hash'])
$arr['hash'] = $arr['guid'];
if(! $arr['hash'])
@@ -202,7 +204,7 @@ function xchan_store($arr) {
if(! $arr['url'])
$arr['url'] = z_root();
if(! $arr['photo'])
- $arr['photo'] = get_default_profile_photo();
+ $arr['photo'] = z_root() . '/' . get_default_profile_photo();
$r = q("insert into xchan ( xchan_hash, xchan_guid, xchan_guid_sig, xchan_pubkey, xchan_addr, xchan_url, xchan_connurl, xchan_follow, xchan_connpage, xchan_name, xchan_network, xchan_instance_url, xchan_flags, xchan_name_date ) values ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s','%s','%s','%s',%d,'%s') ",
dbesc($arr['hash']),
@@ -256,12 +258,12 @@ function xchan_fetch($arr) {
if(! $key)
return false;
- $r = q("select * from xchan where $key = '$v'");
+ $r = q("select * from xchan where $key = '$v' limit 1");
if(! $r)
return false;
$ret = array();
- foreach($r as $k => $v) {
+ foreach($r[0] as $k => $v) {
if($k === 'xchan_addr')
$ret['address'] = $v;
else
diff --git a/mod/item.php b/mod/item.php
index dad883f50..6644be291 100644
--- a/mod/item.php
+++ b/mod/item.php
@@ -35,6 +35,23 @@ function item_post(&$a) {
$channel = null;
$observer = null;
+
+ /**
+ * Is this a reply to something?
+ */
+
+ $parent = ((x($_REQUEST,'parent')) ? intval($_REQUEST['parent']) : 0);
+ $parent_mid = ((x($_REQUEST,'parent_mid')) ? trim($_REQUEST['parent_mid']) : '');
+
+ $remote_xchan = ((x($_REQUEST,'remote_xchan')) ? trim($_REQUEST['remote_xchan']) : false);
+ $r = q("select * from xchan where xchan_hash = '%s' limit 1",
+ dbesc($remote_xchan)
+ );
+ if($r)
+ $remote_observer = $r[0];
+ else
+ $remote_xchan = $remote_observer = false;
+
$profile_uid = ((x($_REQUEST,'profile_uid')) ? intval($_REQUEST['profile_uid']) : 0);
require_once('include/identity.php');
$sys = get_sys_channel();
@@ -116,13 +133,6 @@ function item_post(&$a) {
$item_flags = $item_restrict = 0;
- /**
- * Is this a reply to something?
- */
-
- $parent = ((x($_REQUEST,'parent')) ? intval($_REQUEST['parent']) : 0);
- $parent_mid = ((x($_REQUEST,'parent_mid')) ? trim($_REQUEST['parent_mid']) : '');
-
$route = '';
$parent_item = null;
$parent_contact = null;
@@ -275,6 +285,9 @@ function item_post(&$a) {
$walltowall = false;
$walltowall_comment = false;
+ if($remote_xchan)
+ $observer = $remote_observer;
+
if($observer) {
logger('mod_item: post accepted from ' . $observer['xchan_name'] . ' for ' . $owner_xchan['xchan_name'], LOGGER_DEBUG);
diff --git a/mod/ping.php b/mod/ping.php
index 001c5594d..b676726fe 100644
--- a/mod/ping.php
+++ b/mod/ping.php
@@ -274,7 +274,7 @@ function ping_init(&$a) {
$r = q("SELECT * FROM item
WHERE item_restrict = 0 and item_unseen = 1 and uid = %d
- and author_xchan != '%s' ORDER BY created DESC",
+ and author_xchan != '%s' ORDER BY created DESC limit 300",
intval(local_channel()),
dbesc($ob_hash)
);
@@ -295,7 +295,7 @@ function ping_init(&$a) {
if(argc() > 1 && (argv(1) === 'intros')) {
$result = array();
- $r = q("SELECT * FROM abook left join xchan on abook.abook_xchan = xchan.xchan_hash where abook_channel = %d and (abook_flags & %d) > 0 and not ((abook_flags & %d) > 0 or (xchan_flags & %d) > 0) ORDER BY abook_created DESC",
+ $r = q("SELECT * FROM abook left join xchan on abook.abook_xchan = xchan.xchan_hash where abook_channel = %d and (abook_flags & %d) > 0 and not ((abook_flags & %d) > 0 or (xchan_flags & %d) > 0) ORDER BY abook_created DESC LIMIT 50",
intval(local_channel()),
intval(ABOOK_FLAG_PENDING),
intval(ABOOK_FLAG_SELF|ABOOK_FLAG_IGNORED),
@@ -327,7 +327,7 @@ function ping_init(&$a) {
$r = q("SELECT * FROM event left join xchan on event_xchan = xchan_hash
WHERE `event`.`uid` = %d AND start < '%s' AND start > '%s' and `ignore` = 0
- ORDER BY `start` DESC ",
+ ORDER BY `start` DESC LIMIT 1000",
intval(local_channel()),
dbesc(datetime_convert('UTC', date_default_timezone_get(), 'now + ' . intval($evdays) . ' days')),
dbesc(datetime_convert('UTC', date_default_timezone_get(), 'now - 1 days'))
diff --git a/version.inc b/version.inc
index b6ad25842..0d9e1b8e7 100644
--- a/version.inc
+++ b/version.inc
@@ -1 +1 @@
-2015-03-22.979
+2015-03-23.980