Fix bugs in the retraction code

Currently, the following seems to be the functional status:
	For a Diaspora top-level post:
		Friendica comments show up AND delete
		Diaspora comments show up AND delete for top-level owner
		Diaspora comments show up for non-owner
		Diaspora comments sometimes don't delete for non-owner
			-> Appears to be Diaspora's fault, as a "not a valid object" error shows up in the log

		Friendica likes show up, but can't unlike (Friendica doesn't even message Diaspora)
		Diaspora likes show up
		Diaspora non-owner can't unlike
			-> Same as comments, seems to be Diaspora's fault

	For a Friendica top-level post:
		Friendica comments show up AND delete
		Diaspora comments show up AND delete

		Friendica likes don't show up in Diaspora sometimes
		Friendica doesn't even message Diaspora for unlikes (sometimes?)
		Diaspora likes and unlikes work
This commit is contained in:
Zach Prezkuta
2012-06-02 16:11:31 -06:00
parent b000088ded
commit 77962aa79d
7 changed files with 42 additions and 66 deletions

View File

@@ -738,7 +738,7 @@ function notifier_run($argv, $argc){
// unsupported
break;
}
elseif(($target_item['deleted']) && ($top_level || $followup) && ($target_item['verb'] !== ACTIVITY_LIKE)) {
elseif(($target_item['deleted']) && (($target_item['uri'] === $target_item['parent-uri']) || $followup) && ($target_item['verb'] !== ACTIVITY_LIKE)) {
// diaspora delete, including relayable_retractions that need to be relayed
diaspora_send_retraction($target_item,$owner,$contact);
break;
@@ -748,7 +748,7 @@ function notifier_run($argv, $argc){
diaspora_send_followup($target_item,$owner,$contact);
break;
}
elseif($target_item['parent'] != $target_item['id']) {
elseif($target_item['uri'] !== $target_item['parent-uri']) {
// we are the relay - send comments, likes, unlikes and relayable_retractions to our conversants
diaspora_send_relay($target_item,$owner,$contact);
break;