From 1c2d956d7f447a8df335bf9ff63b0839a1f9c8bc Mon Sep 17 00:00:00 2001 From: marijus Date: Sun, 18 Jan 2015 14:44:58 +0100 Subject: basic proof of concept file activity support - will send activity via the filestorage module and via attach_delete() --- mod/filestorage.php | 9 ++++ mod/sharedwithme.php | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 123 insertions(+) create mode 100644 mod/sharedwithme.php (limited to 'mod') diff --git a/mod/filestorage.php b/mod/filestorage.php index 0a25617f0..67abc2eab 100644 --- a/mod/filestorage.php +++ b/mod/filestorage.php @@ -22,6 +22,8 @@ function filestorage_post(&$a) { $recurse = ((x($_POST, 'recurse')) ? intval($_POST['recurse']) : 0); $resource = ((x($_POST, 'filehash')) ? notags($_POST['filehash']) : ''); + $no_activity = ((x($_POST, 'no_activity')) ? intval($_POST['no_activity']) : 0); + if(! $resource) { notice(t('Item not found.') . EOL); return; @@ -37,6 +39,12 @@ function filestorage_post(&$a) { //Build directory tree and redirect $channel = $a->get_channel(); $cloudPath = get_parent_cloudpath($channel_id, $channel['channel_address'], $resource); + + $filename = find_filename_by_hash($channel_id, $resource); + $url = $cloudPath . $filename; + + file_activity($channel_id, $resource, $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny, $url, 'post', $no_activity); + goaway($cloudPath); } @@ -150,6 +158,7 @@ function filestorage_content(&$a) { '$submit' => t('Submit'), '$attach_btn_title' => t('Attach this file to a new post'), '$link_btn_title' => t('Show URL to this file'), + '$activity_btn_title' => t('Do not show in shared with me folder of your connections') )); echo $o; diff --git a/mod/sharedwithme.php b/mod/sharedwithme.php new file mode 100644 index 000000000..fe5a2b62e --- /dev/null +++ b/mod/sharedwithme.php @@ -0,0 +1,114 @@ +get_channel(); + + $is_owner = (local_user() && (local_user() == $channel['channel_id'])); + + $postverb = ACTIVITY_FILE . '/post/'; + $dropverb = ACTIVITY_FILE . '/drop/'; + + //maintenance - see if a file got dropped and remove it systemwide + $x = q("SELECT * FROM item WHERE verb LIKE '%s' AND uid = %d", + dbesc($dropverb . '%'), + intval(local_user()) + ); + + if($x) { + + foreach($x as $xx) { + + $hash = substr($xx['verb'], 39); + + $update = strpos($hash, '#'); + + if($update === false) { + q("DELETE FROM item WHERE verb = '%s' OR verb = '%s'", + dbesc($postverb . $hash), + dbesc($dropverb . $hash) + ); + } + + else { + + $arr = explode('#', $hash); + + q("DELETE FROM item WHERE mid != '%s' AND verb = '%s' OR verb = '%s'", + dbesc($arr[1]), + dbesc($postverb . $arr[0]), + dbesc($dropverb . $hash) + ); + + } + + } + + } + + //drop single file - localuser + if((argc() > 2) && (argv(2) === 'drop')) { + + $id = intval(argv(1)); + + q("DELETE FROM item WHERE id = %d AND uid = %d", + intval($id), + intval(local_user()) + ); + + goaway(z_root() . '/sharedfiles'); + } + + //drop all files - localuser + if((argc() > 1) && (argv(1) === 'dropall')) { + + q("DELETE FROM item WHERE verb LIKE '%s' AND uid = %d", + dbesc($postverb . '%'), + intval(local_user()) + ); + + goaway(z_root() . '/sharedfiles'); + } + + //list files + $r = q("SELECT * FROM item WHERE verb LIKE '%s' AND uid = %d", + dbesc($postverb . '%'), + intval(local_user()) + ); + + $o = profile_tabs($a, $is_owner, $channel['channel_id']); + + $o .= '
'; + + $o .= ' ' . t('Remove all entries') . ''; + + $o .= '

' . t('Files shared with me') . '

'; + + $o .= '
'; + + $o .= '
'; + + if($r) { + foreach($r as $rr) { + //don't display the files we shared with others + if($rr['owner_xchan'] != $channel['channel_hash']) { + unobscure($rr); + $url = rawurldecode($rr['body']); + $o .= '' . $url . ' 

'; + } + } + } + + $o .= '
'; + + return $o; + + +} + -- cgit v1.2.3 From 973398b915c5a31922a1351a82e919e64db0d543 Mon Sep 17 00:00:00 2001 From: marijus Date: Sun, 18 Jan 2015 15:15:48 +0100 Subject: fix profile tabs link --- mod/sharedwithme.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mod') diff --git a/mod/sharedwithme.php b/mod/sharedwithme.php index fe5a2b62e..5a78333af 100644 --- a/mod/sharedwithme.php +++ b/mod/sharedwithme.php @@ -82,7 +82,7 @@ function sharedwithme_content(&$a) { intval(local_user()) ); - $o = profile_tabs($a, $is_owner, $channel['channel_id']); + $o = profile_tabs($a, $is_owner, $channel['channel_address']); $o .= '
'; -- cgit v1.2.3 From 9ac0922ff240589ae2b58cd45270385c1f8dd310 Mon Sep 17 00:00:00 2001 From: marijus Date: Sun, 18 Jan 2015 15:29:05 +0100 Subject: fix goaway link --- mod/sharedwithme.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'mod') diff --git a/mod/sharedwithme.php b/mod/sharedwithme.php index 5a78333af..2e2677a12 100644 --- a/mod/sharedwithme.php +++ b/mod/sharedwithme.php @@ -62,7 +62,7 @@ function sharedwithme_content(&$a) { intval(local_user()) ); - goaway(z_root() . '/sharedfiles'); + goaway(z_root() . '/sharedwithme'); } //drop all files - localuser @@ -73,7 +73,7 @@ function sharedwithme_content(&$a) { intval(local_user()) ); - goaway(z_root() . '/sharedfiles'); + goaway(z_root() . '/sharedwithme'); } //list files -- cgit v1.2.3 From b4faf4d90bca867ace578e7664f51c9921071945 Mon Sep 17 00:00:00 2001 From: marijus Date: Sun, 18 Jan 2015 15:31:13 +0100 Subject: fix link --- mod/sharedwithme.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'mod') diff --git a/mod/sharedwithme.php b/mod/sharedwithme.php index 2e2677a12..d4aa129ac 100644 --- a/mod/sharedwithme.php +++ b/mod/sharedwithme.php @@ -86,7 +86,7 @@ function sharedwithme_content(&$a) { $o .= '
'; - $o .= ' ' . t('Remove all entries') . ''; + $o .= ' ' . t('Remove all entries') . ''; $o .= '

' . t('Files shared with me') . '

'; @@ -100,7 +100,7 @@ function sharedwithme_content(&$a) { if($rr['owner_xchan'] != $channel['channel_hash']) { unobscure($rr); $url = rawurldecode($rr['body']); - $o .= '' . $url . ' 

'; + $o .= '' . $url . ' 

'; } } } -- cgit v1.2.3