From f8da48a880f8b01e2284610e74fe3b2b6ec2dc39 Mon Sep 17 00:00:00 2001 From: Friendika Date: Tue, 30 Aug 2011 18:46:34 -0700 Subject: unsafe chars in admin, add img to diaspora markdown processor --- include/bb2diaspora.php | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php index 7f7b8748d..066d7bfff 100644 --- a/include/bb2diaspora.php +++ b/include/bb2diaspora.php @@ -17,6 +17,7 @@ function diaspora2bb($s) { $s = preg_replace("/\_(.+?)\_/", '[i]$1[/i]', $s); $s = str_replace(array('-^doublestar^-','-^doublescore-^','-^star^-','-^score^-'), array('**','__','*','_'), $s); $s = preg_replace('/\[(.+?)\]\((.+?)\)/','[url=$2]$1[/url]',$s); + $s = preg_replace('/\!\[(.+?)\]\((.+?)\)/','[img]$2[/img]',$s); $s = escape_tags($s); return $s; -- cgit v1.2.3 From f0a4a6af619b2d9b2fca217c24667f8eea429b62 Mon Sep 17 00:00:00 2001 From: Friendika Date: Tue, 30 Aug 2011 19:20:56 -0700 Subject: relayed likes did not verify --- include/diaspora.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/diaspora.php b/include/diaspora.php index fc9289039..0ab467829 100644 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -732,8 +732,8 @@ function diaspora_like($importer,$xml,$msg) { } if($parent_author_signature) { -// $owner_signed_data = $guid . ';' . $parent_guid . ';' . $target_type . ';' . $positive . ';' . $msg['author']; - $owner_signed_data = $guid . ';' . $parent_guid . ';' . $target_type . ';' . $positive . ';' . $diaspora_handle; + + $owner_signed_data = $guid . ';' . $target_type . ';' . $parent_guid . ';' . $positive . ';' . $diaspora_handle; $parent_author_signature = base64_decode($parent_author_signature); -- cgit v1.2.3 From b11a0efff120508a2059afe372f50144dcc8b977 Mon Sep 17 00:00:00 2001 From: Friendika Date: Tue, 30 Aug 2011 20:20:17 -0700 Subject: This *might* fix Diaspora @ tags - or it might not. --- include/bb2diaspora.php | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php index 066d7bfff..ec41ce139 100644 --- a/include/bb2diaspora.php +++ b/include/bb2diaspora.php @@ -18,6 +18,8 @@ function diaspora2bb($s) { $s = str_replace(array('-^doublestar^-','-^doublescore-^','-^star^-','-^score^-'), array('**','__','*','_'), $s); $s = preg_replace('/\[(.+?)\]\((.+?)\)/','[url=$2]$1[/url]',$s); $s = preg_replace('/\!\[(.+?)\]\((.+?)\)/','[img]$2[/img]',$s); + $s = preg_replace('/\@\{(.+?)\; (.+?)\@(.+?)\}/','@[url=https://$3/u/$2]$1[/url]',$s); + $s = escape_tags($s); return $s; -- cgit v1.2.3 From f0c3a75ff38dcd208710fa24596c34290faf110e Mon Sep 17 00:00:00 2001 From: Friendika Date: Tue, 30 Aug 2011 23:09:39 -0700 Subject: youtube redirect fixes --- include/bbcode.php | 6 ++++-- include/conversation.php | 2 -- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/bbcode.php b/include/bbcode.php index a3f2971e5..9ee8b7b36 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -133,12 +133,14 @@ function bbcode($Text,$preserve_nl = false) { } else { // Youtube extensions $Text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/watch\?v\=(.*?)\[\/youtube\]/",'[youtube]$1[/youtube]',$Text); + $Text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/embed\/(.*?)\[\/youtube\]/",'[youtube]$1[/youtube]',$Text); $Text = preg_replace("/\[youtube\]https?:\/\/youtu.be\/(.*?)\[\/youtube\]/",'[youtube]$1[/youtube]',$Text); - $Text = preg_replace("/\[youtube\](.*?)\[\/youtube\]/", '', $Text); + $Text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/", '', $Text); } -// $Text = preg_replace("/\[youtube\](.*?)\[\/youtube\]/", '', $Text); +// $Text = preg_replace("/\[youtube\](.*?)\[\/youtube\]/", '', $Text); + // oembed tag $Text = oembed_bbcode2html($Text); diff --git a/include/conversation.php b/include/conversation.php index 3353cb2b7..6b5bf8d7c 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -80,8 +80,6 @@ function localize_item(&$item){ } - // fix bad embeds - $item['body'] = str_replace('http://www.youtube.com/embed/http:','http:',$item['body']); } -- cgit v1.2.3 From c60d45752db65a10b491f3a69ab63dc202f61533 Mon Sep 17 00:00:00 2001 From: Friendika Date: Tue, 30 Aug 2011 23:24:45 -0700 Subject: translate D* images (markdown) before links, they overlap and conflict --- include/bb2diaspora.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php index ec41ce139..92f492116 100644 --- a/include/bb2diaspora.php +++ b/include/bb2diaspora.php @@ -16,8 +16,8 @@ function diaspora2bb($s) { $s = preg_replace("/\*(.+?)\*/", '[i]$1[/i]', $s); $s = preg_replace("/\_(.+?)\_/", '[i]$1[/i]', $s); $s = str_replace(array('-^doublestar^-','-^doublescore-^','-^star^-','-^score^-'), array('**','__','*','_'), $s); - $s = preg_replace('/\[(.+?)\]\((.+?)\)/','[url=$2]$1[/url]',$s); $s = preg_replace('/\!\[(.+?)\]\((.+?)\)/','[img]$2[/img]',$s); + $s = preg_replace('/\[(.+?)\]\((.+?)\)/','[url=$2]$1[/url]',$s); $s = preg_replace('/\@\{(.+?)\; (.+?)\@(.+?)\}/','@[url=https://$3/u/$2]$1[/url]',$s); -- cgit v1.2.3 From 0cfc8570d20ef4935e846f0f143aef181b9c951f Mon Sep 17 00:00:00 2001 From: Friendika Date: Wed, 31 Aug 2011 21:46:37 -0700 Subject: save plink for diaspora items so likes will point to right post --- include/diaspora.php | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/diaspora.php b/include/diaspora.php index 0ab467829..89afc46f9 100644 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -457,7 +457,14 @@ function diaspora_post($importer,$xml) { $datarray['body'] = $body; $datarray['app'] = 'Diaspora'; - item_store($datarray); + $message_id = item_store($datarray); + + if($message_id) { + q("update item set plink = '%s' where id = %d limit 1", + dbesc($a->get_baseurl() . '/display/' . $importer['nickname'] . '/' . $message_id), + intval($message_id) + ); + } return; @@ -576,6 +583,13 @@ function diaspora_comment($importer,$xml,$msg) { $message_id = item_store($datarray); + if($message_id) { + q("update item set plink = '%s' where id = %d limit 1", + dbesc($a->get_baseurl() . '/display/' . $importer['nickname'] . '/' . $message_id), + intval($message_id) + ); + } + if(! $parent_author_signature) { q("insert into sign (`iid`,`signed_text`,`signature`,`signer`) values (%d,'%s','%s','%s') ", intval($message_id), @@ -805,6 +819,14 @@ EOT; $message_id = item_store($arr); + + if($message_id) { + q("update item set plink = '%s' where id = %d limit 1", + dbesc($a->get_baseurl() . '/display/' . $importer['nickname'] . '/' . $message_id), + intval($message_id) + ); + } + if(! $parent_author_signature) { q("insert into sign (`iid`,`signed_text`,`signature`,`signer`) values (%d,'%s','%s','%s') ", intval($message_id), -- cgit v1.2.3 From 1621630b064474eb385bfa05d248fec712645814 Mon Sep 17 00:00:00 2001 From: Friendika Date: Thu, 1 Sep 2011 06:29:29 -0700 Subject: login_hook --- include/crypto.php | 15 +++++++++------ include/items.php | 2 ++ 2 files changed, 11 insertions(+), 6 deletions(-) (limited to 'include') diff --git a/include/crypto.php b/include/crypto.php index 88e05b9eb..0feb45c24 100644 --- a/include/crypto.php +++ b/include/crypto.php @@ -262,24 +262,27 @@ function aes_unencapsulate($data,$prvkey) { } -function zot_encapsulate($data,$sender,$pubkey) { +// This has been superceded. + +function zot_encapsulate($data,$envelope,$pubkey) { $res = aes_encapsulate($data,$pubkey); -openssl_public_encrypt($sender,$s,$pubkey); -$s1 = base64url_encode($s,true); return <<< EOT - + {$res['key']} {$res['iv']} - $s1 + $s1 + $sig AES-256-CBC {$res['data']} - + EOT; } +// so has this + function zot_unencapsulate($data,$prvkey) { $ret = array(); $c = array(); diff --git a/include/items.php b/include/items.php index 1603dec60..6ded6f87c 100644 --- a/include/items.php +++ b/include/items.php @@ -20,6 +20,8 @@ function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0) for($x = 2; $x < $a->argc; $x++) { if($a->argv[$x] == 'converse') $converse = true; + if($a->argv[$x] == 'starred') + $starred = true; } } -- cgit v1.2.3 From 93b9d713776bd18e9a3126f025a0c63c8589c201 Mon Sep 17 00:00:00 2001 From: Friendika Date: Fri, 2 Sep 2011 05:13:38 -0700 Subject: completely enclose ~f hashtags so they don't get hijacked by D* --- include/bb2diaspora.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php index 92f492116..2eeea32cd 100644 --- a/include/bb2diaspora.php +++ b/include/bb2diaspora.php @@ -58,7 +58,8 @@ function bb2diaspora($Text,$preserve_nl = false) { $Text = preg_replace("/\[url\]([$URLSearchString]*)\[\/url\]/", '[$1]($1)', $Text); - $Text = preg_replace("(\[url\=([$URLSearchString]*)\](.*?)\[/url\])", '[$2]($1)', $Text); + $Text = preg_replace("/\#\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/", '[#$2]($1)', $Text); + $Text = preg_replace("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/", '[$2]($1)', $Text); // $Text = preg_replace("/\[img\](.*?)\[\/img\]/", t('Image/photo: ') . '$1', $Text); // $Text = preg_replace("/\[img\](.*?)\[\/img\]/", t('image/photo'), $Text); -- cgit v1.2.3 From b026dcb860388a3c120cca367ead8def64977bac Mon Sep 17 00:00:00 2001 From: Friendika Date: Sat, 3 Sep 2011 04:36:45 -0700 Subject: match bbcode multiline --- include/bbcode.php | 82 +++++++++++++++++++++++++++--------------------------- 1 file changed, 41 insertions(+), 41 deletions(-) (limited to 'include') diff --git a/include/bbcode.php b/include/bbcode.php index 9ee8b7b36..86b7fdb4b 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -43,65 +43,65 @@ function bbcode($Text,$preserve_nl = false) { $Text = preg_replace("/([^\]\=]|^)(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\.\=\_\~\#\%\$\!\+\,]+)/", '$1$2', $Text); - $Text = preg_replace("/\[url\]([$URLSearchString]*)\[\/url\]/", '$1', $Text); - $Text = preg_replace("(\[url\=([$URLSearchString]*)\](.*?)\[/url\])", '$2', $Text); - //$Text = preg_replace("(\[url\=([$URLSearchString]*)\]([$URLSearchString]*)\[/url\])", '$2', $Text); + $Text = preg_replace("/\[url\]([$URLSearchString]*)\[\/url\]/m", '$1', $Text); + $Text = preg_replace("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/m", '$2', $Text); + //$Text = preg_replace("/\[url\=([$URLSearchString]*)\]([$URLSearchString]*)\[\/url\]/m", '$2', $Text); // Perform MAIL Search - $Text = preg_replace("(\[mail\]([$MAILSearchString]*)\[/mail\])", '$1', $Text); + $Text = preg_replace("/\[mail\]([$MAILSearchString]*)\[\/mail\]/", '$1', $Text); $Text = preg_replace("/\[mail\=([$MAILSearchString]*)\](.*?)\[\/mail\]/", '$2', $Text); // Check for bold text - $Text = preg_replace("(\[b\](.*?)\[\/b\])is",'$1',$Text); + $Text = preg_replace("(\[b\](.*?)\[\/b\])ism",'$1',$Text); // Check for Italics text - $Text = preg_replace("(\[i\](.*?)\[\/i\])is",'$1',$Text); + $Text = preg_replace("(\[i\](.*?)\[\/i\])ism",'$1',$Text); // Check for Underline text - $Text = preg_replace("(\[u\](.*?)\[\/u\])is",'$1',$Text); + $Text = preg_replace("(\[u\](.*?)\[\/u\])ism",'$1',$Text); // Check for strike-through text - $Text = preg_replace("(\[s\](.*?)\[\/s\])is",'$1',$Text); + $Text = preg_replace("(\[s\](.*?)\[\/s\])ism",'$1',$Text); // Check for over-line text - $Text = preg_replace("(\[o\](.*?)\[\/o\])is",'$1',$Text); + $Text = preg_replace("(\[o\](.*?)\[\/o\])ism",'$1',$Text); // Check for colored text - $Text = preg_replace("(\[color=(.*?)\](.*?)\[\/color\])is","$2",$Text); + $Text = preg_replace("(\[color=(.*?)\](.*?)\[\/color\])ism","$2",$Text); // Check for sized text - $Text = preg_replace("(\[size=(.*?)\](.*?)\[\/size\])is","$2",$Text); + $Text = preg_replace("(\[size=(.*?)\](.*?)\[\/size\])ism","$2",$Text); // Check for list text - $Text = preg_replace("/\[list\](.*?)\[\/list\]/is", '
    $1
' ,$Text); - $Text = preg_replace("/\[list=1\](.*?)\[\/list\]/is", '
    $1
' ,$Text); - $Text = preg_replace("/\[list=i\](.*?)\[\/list\]/s",'
    $1
' ,$Text); - $Text = preg_replace("/\[list=I\](.*?)\[\/list\]/s", '
    $1
' ,$Text); - $Text = preg_replace("/\[list=a\](.*?)\[\/list\]/s", '
    $1
' ,$Text); - $Text = preg_replace("/\[list=A\](.*?)\[\/list\]/s", '
    $1
' ,$Text); - $Text = preg_replace("/\[li\](.*?)\[\/li\]/s", '
  • $1
  • ' ,$Text); + $Text = preg_replace("/\[list\](.*?)\[\/list\]/ism", '
      $1
    ' ,$Text); + $Text = preg_replace("/\[list=1\](.*?)\[\/list\]/ism", '
      $1
    ' ,$Text); + $Text = preg_replace("/\[list=i\](.*?)\[\/list\]/sm",'
      $1
    ' ,$Text); + $Text = preg_replace("/\[list=I\](.*?)\[\/list\]/sm", '
      $1
    ' ,$Text); + $Text = preg_replace("/\[list=a\](.*?)\[\/list\]/sm", '
      $1
    ' ,$Text); + $Text = preg_replace("/\[list=A\](.*?)\[\/list\]/sm", '
      $1
    ' ,$Text); + $Text = preg_replace("/\[li\](.*?)\[\/li\]/sm", '
  • $1
  • ' ,$Text); - $Text = preg_replace("/\[td\](.*?)\[\/td\]/s", '$1' ,$Text); - $Text = preg_replace("/\[tr\](.*?)\[\/tr\]/s", '$1' ,$Text); - $Text = preg_replace("/\[table\](.*?)\[\/table\]/s", '$1
    ' ,$Text); + $Text = preg_replace("/\[td\](.*?)\[\/td\]/sm", '$1' ,$Text); + $Text = preg_replace("/\[tr\](.*?)\[\/tr\]/sm", '$1' ,$Text); + $Text = preg_replace("/\[table\](.*?)\[\/table\]/sm", '$1
    ' ,$Text); - $Text = preg_replace("/\[table border=1\](.*?)\[\/table\]/s", '$1
    ' ,$Text); - $Text = preg_replace("/\[table border=0\](.*?)\[\/table\]/s", '$1
    ' ,$Text); + $Text = preg_replace("/\[table border=1\](.*?)\[\/table\]/sm", '$1
    ' ,$Text); + $Text = preg_replace("/\[table border=0\](.*?)\[\/table\]/sm", '$1
    ' ,$Text); // $Text = str_replace("[*]", "
  • ", $Text); // Check for font change text - $Text = preg_replace("(\[font=(.*?)\](.*?)\[\/font\])","$2",$Text); + $Text = preg_replace("/\[font=(.*?)\](.*?)\[\/font\]/m","$2",$Text); // Declare the format for [code] layout - $Text = preg_replace_callback("/\[code\](.*?)\[\/code\]/is",'stripcode_br_cb',$Text); + $Text = preg_replace_callback("/\[code\](.*?)\[\/code\]/ism",'stripcode_br_cb',$Text); $CodeLayout = '$1'; // Check for [code] text - $Text = preg_replace("/\[code\](.*?)\[\/code\]/is","$CodeLayout", $Text); + $Text = preg_replace("/\[code\](.*?)\[\/code\]/ism","$CodeLayout", $Text); @@ -109,22 +109,22 @@ function bbcode($Text,$preserve_nl = false) { // Declare the format for [quote] layout $QuoteLayout = '
    $1
    '; // Check for [quote] text - $Text = preg_replace("/\[quote\](.*?)\[\/quote\]/is","$QuoteLayout", $Text); + $Text = preg_replace("/\[quote\](.*?)\[\/quote\]/ism","$QuoteLayout", $Text); // Images // [img]pathtoimage[/img] - $Text = preg_replace("/\[img\](.*?)\[\/img\]/", '' . t('Image/photo') . '', $Text); + $Text = preg_replace("/\[img\](.*?)\[\/img\]/ism", '' . t('Image/photo') . '', $Text); // html5 video and audio - $Text = preg_replace("/\[video\](.*?)\[\/video\]/", '', $Text); + $Text = preg_replace("/\[video\](.*?)\[\/video\]/ism", '', $Text); - $Text = preg_replace("/\[audio\](.*?)\[\/audio\]/", '', $Text); + $Text = preg_replace("/\[audio\](.*?)\[\/audio\]/ism", '', $Text); - $Text = preg_replace("/\[iframe\](.*?)\[\/iframe\]/", '', $Text); + $Text = preg_replace("/\[iframe\](.*?)\[\/iframe\]/ism", '', $Text); // [img=widthxheight]image source[/img] - $Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/", '', $Text); + $Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '', $Text); if (get_pconfig(local_user(), 'oembed', 'use_for_youtube' )==1){ // use oembed for youtube links @@ -132,10 +132,10 @@ function bbcode($Text,$preserve_nl = false) { $Text = preg_replace("/\[\/youtube\]/",'[/embed]',$Text); } else { // Youtube extensions - $Text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/watch\?v\=(.*?)\[\/youtube\]/",'[youtube]$1[/youtube]',$Text); - $Text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/embed\/(.*?)\[\/youtube\]/",'[youtube]$1[/youtube]',$Text); - $Text = preg_replace("/\[youtube\]https?:\/\/youtu.be\/(.*?)\[\/youtube\]/",'[youtube]$1[/youtube]',$Text); - $Text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/", '', $Text); + $Text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/watch\?v\=(.*?)\[\/youtube\]/ism",'[youtube]$1[/youtube]',$Text); + $Text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/embed\/(.*?)\[\/youtube\]/ism",'[youtube]$1[/youtube]',$Text); + $Text = preg_replace("/\[youtube\]https?:\/\/youtu.be\/(.*?)\[\/youtube\]/ism",'[youtube]$1[/youtube]',$Text); + $Text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", '', $Text); } @@ -150,11 +150,11 @@ function bbcode($Text,$preserve_nl = false) { if(x($ev,'desc') && x($ev,'start')) { $sub = format_event_html($ev); - $Text = preg_replace("/\[event\-description\](.*?)\[\/event\-description\]/is",$sub,$Text); - $Text = preg_replace("/\[event\-start\](.*?)\[\/event\-start\]/is",'',$Text); - $Text = preg_replace("/\[event\-finish\](.*?)\[\/event\-finish\]/is",'',$Text); - $Text = preg_replace("/\[event\-location\](.*?)\[\/event\-location\]/is",'',$Text); - $Text = preg_replace("/\[event\-adjust\](.*?)\[\/event\-adjust\]/is",'',$Text); + $Text = preg_replace("/\[event\-description\](.*?)\[\/event\-description\]/ism",$sub,$Text); + $Text = preg_replace("/\[event\-start\](.*?)\[\/event\-start\]/ism",'',$Text); + $Text = preg_replace("/\[event\-finish\](.*?)\[\/event\-finish\]/ism",'',$Text); + $Text = preg_replace("/\[event\-location\](.*?)\[\/event\-location\]/ism",'',$Text); + $Text = preg_replace("/\[event\-adjust\](.*?)\[\/event\-adjust\]/ism",'',$Text); } -- cgit v1.2.3 From c8f61ef890e39d703a4f4aff612793177034415a Mon Sep 17 00:00:00 2001 From: Friendika Date: Sat, 3 Sep 2011 05:23:36 -0700 Subject: no plink on imported D* posts --- include/diaspora.php | 3 +++ 1 file changed, 3 insertions(+) (limited to 'include') diff --git a/include/diaspora.php b/include/diaspora.php index 89afc46f9..6d070ecba 100644 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -398,6 +398,7 @@ function diaspora_request($importer,$xml) { function diaspora_post($importer,$xml) { + $a = get_app(); $guid = notags(unxmlify($xml->guid)); $diaspora_handle = notags(unxmlify($xml->diaspora_handle)); @@ -472,6 +473,7 @@ function diaspora_post($importer,$xml) { function diaspora_comment($importer,$xml,$msg) { + $a = get_app(); $guid = notags(unxmlify($xml->guid)); $parent_guid = notags(unxmlify($xml->parent_guid)); $diaspora_handle = notags(unxmlify($xml->diaspora_handle)); @@ -609,6 +611,7 @@ function diaspora_comment($importer,$xml,$msg) { function diaspora_photo($importer,$xml,$msg) { + $a = get_app(); $remote_photo_path = notags(unxmlify($xml->remote_photo_path)); $remote_photo_name = notags(unxmlify($xml->remote_photo_name)); -- cgit v1.2.3 From 59a6a04e26bf6baec4b7ad62419e9d335db249df Mon Sep 17 00:00:00 2001 From: Friendika Date: Sat, 3 Sep 2011 07:13:12 -0700 Subject: format events for diaspora --- include/bb2diaspora.php | 58 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 50 insertions(+), 8 deletions(-) (limited to 'include') diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php index 2eeea32cd..c779b6aaf 100644 --- a/include/bb2diaspora.php +++ b/include/bb2diaspora.php @@ -43,6 +43,11 @@ function bb2diaspora($Text,$preserve_nl = false) { $Text = str_replace("<", "<", $Text); $Text = str_replace(">", ">", $Text); + // If we find any event code, turn it into an event. + // After we're finished processing the bbcode we'll + // replace all of the event code with a reformatted version. + + $ev = bbtoevent($Text); if($preserve_nl) $Text = str_replace(array("\n","\r"), array('',''),$Text); @@ -164,15 +169,16 @@ function bb2diaspora($Text,$preserve_nl = false) { // If we found an event earlier, strip out all the event code and replace with a reformatted version. -// if(x($ev,'desc') && x($ev,'start')) { -// $sub = format_event_html($ev); + if(x($ev,'desc') && x($ev,'start')) { - // $Text = preg_replace("/\[event\-description\](.*?)\[\/event\-description\]/is",$sub,$Text); - //$Text = preg_replace("/\[event\-start\](.*?)\[\/event\-start\]/is",'',$Text); -// $Text = preg_replace("/\[event\-finish\](.*?)\[\/event\-finish\]/is",'',$Text); -// $Text = preg_replace("/\[event\-location\](.*?)\[\/event\-location\]/is",'',$Text); -// $Text = preg_replace("/\[event\-adjust\](.*?)\[\/event\-adjust\]/is",'',$Text); -// } + $sub = format_event_diaspora($ev); + + $Text = preg_replace("/\[event\-description\](.*?)\[\/event\-description\]/is",$sub,$Text); + $Text = preg_replace("/\[event\-start\](.*?)\[\/event\-start\]/is",'',$Text); + $Text = preg_replace("/\[event\-finish\](.*?)\[\/event\-finish\]/is",'',$Text); + $Text = preg_replace("/\[event\-location\](.*?)\[\/event\-location\]/is",'',$Text); + $Text = preg_replace("/\[event\-adjust\](.*?)\[\/event\-adjust\]/is",'',$Text); + } @@ -180,3 +186,39 @@ function bb2diaspora($Text,$preserve_nl = false) { return $Text; } + +function format_event_diaspora($ev) { + +// require_once('include/bbcode.php'); + + if(! ((is_array($ev)) && count($ev))) + return ''; + + $bd_format = t('l F d, Y \@ g:i A') ; // Friday January 18, 2011 @ 8 AM + + $o = 'Friendika event notification:' . "\n"; + + $o .= '**' . bb2diaspora($ev['desc']) . '**' . "\n"; + + $o .= t('Starts:') . ' ' + . (($ev['adjust']) ? day_translate(datetime_convert('UTC', date_default_timezone_get(), + $ev['start'] , $bd_format )) + : day_translate(datetime_convert('UTC', 'UTC', + $ev['start'] , $bd_format))) + . "\n"; + + if(! $ev['nofinish']) + $o .= t('Finishes:') . ' ' + . (($ev['adjust']) ? day_translate(datetime_convert('UTC', date_default_timezone_get(), + $ev['finish'] , $bd_format )) + : day_translate(datetime_convert('UTC', 'UTC', + $ev['finish'] , $bd_format ))) + . "\n"; + + if(strlen($ev['location'])) + $o .= t('Location:') . bb2diaspora($ev['location']) + . "\n"; + + $o .= "\n"; + return $o; +} -- cgit v1.2.3 From c0a2cc3e98868b3b10472dee00a4590bb11f45c1 Mon Sep 17 00:00:00 2001 From: Friendika Date: Sat, 3 Sep 2011 07:40:05 -0700 Subject: diaspora has no timezone - use UTC for events --- include/bb2diaspora.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php index c779b6aaf..65ccc750f 100644 --- a/include/bb2diaspora.php +++ b/include/bb2diaspora.php @@ -201,7 +201,7 @@ function format_event_diaspora($ev) { $o .= '**' . bb2diaspora($ev['desc']) . '**' . "\n"; $o .= t('Starts:') . ' ' - . (($ev['adjust']) ? day_translate(datetime_convert('UTC', date_default_timezone_get(), + . (($ev['adjust']) ? day_translate(datetime_convert('UTC', 'UTC', $ev['start'] , $bd_format )) : day_translate(datetime_convert('UTC', 'UTC', $ev['start'] , $bd_format))) @@ -209,7 +209,7 @@ function format_event_diaspora($ev) { if(! $ev['nofinish']) $o .= t('Finishes:') . ' ' - . (($ev['adjust']) ? day_translate(datetime_convert('UTC', date_default_timezone_get(), + . (($ev['adjust']) ? day_translate(datetime_convert('UTC', 'UTC', $ev['finish'] , $bd_format )) : day_translate(datetime_convert('UTC', 'UTC', $ev['finish'] , $bd_format ))) -- cgit v1.2.3 From 9ff1a3444e9029c94541a7c84f0ed5ba764adef3 Mon Sep 17 00:00:00 2001 From: Friendika Date: Sun, 4 Sep 2011 00:48:45 -0700 Subject: add timezone convert module, several other minor or in progress fixes --- include/bb2diaspora.php | 10 ++++------ include/delivery.php | 2 ++ include/notifier.php | 3 +++ 3 files changed, 9 insertions(+), 6 deletions(-) (limited to 'include') diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php index c779b6aaf..f9e3b3f28 100644 --- a/include/bb2diaspora.php +++ b/include/bb2diaspora.php @@ -62,9 +62,9 @@ function bb2diaspora($Text,$preserve_nl = false) { // [img]pathtoimage[/img] - $Text = preg_replace("/\[url\]([$URLSearchString]*)\[\/url\]/", '[$1]($1)', $Text); - $Text = preg_replace("/\#\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/", '[#$2]($1)', $Text); - $Text = preg_replace("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/", '[$2]($1)', $Text); + $Text = preg_replace("/\[url\]([$URLSearchString]*)\[\/url\]/ism", '[$1]($1)', $Text); + $Text = preg_replace("/\#\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '[#$2]($1)', $Text); + $Text = preg_replace("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '[$2]($1)', $Text); // $Text = preg_replace("/\[img\](.*?)\[\/img\]/", t('Image/photo: ') . '$1', $Text); // $Text = preg_replace("/\[img\](.*?)\[\/img\]/", t('image/photo'), $Text); @@ -165,7 +165,7 @@ function bb2diaspora($Text,$preserve_nl = false) { // oembed tag -// $Text = oembed_bbcode2html($Text); + // $Text = oembed_bbcode2html($Text); // If we found an event earlier, strip out all the event code and replace with a reformatted version. @@ -189,8 +189,6 @@ function bb2diaspora($Text,$preserve_nl = false) { function format_event_diaspora($ev) { -// require_once('include/bbcode.php'); - if(! ((is_array($ev)) && count($ev))) return ''; diff --git a/include/delivery.php b/include/delivery.php index 5d81228ee..7f45fb2fa 100644 --- a/include/delivery.php +++ b/include/delivery.php @@ -140,6 +140,8 @@ function delivery_run($argv, $argc){ $owner = $r[0]; + $walltowall = ((($top_level) && ($owner['id'] != $items[0]['contact-id'])) ? true : false); + $public_message = true; // fill this in with a single salmon slap if applicable diff --git a/include/notifier.php b/include/notifier.php index 8d2aa961c..0bb82b7bf 100644 --- a/include/notifier.php +++ b/include/notifier.php @@ -129,6 +129,7 @@ function notifier_run($argv, $argc){ logger('notifier: top level post'); $top_level = true; } + } $r = q("SELECT `contact`.*, `user`.`pubkey` AS `upubkey`, `user`.`prvkey` AS `uprvkey`, @@ -144,6 +145,8 @@ function notifier_run($argv, $argc){ $owner = $r[0]; + $walltowall = ((($top_level) && ($owner['id'] != $items[0]['contact-id'])) ? true : false); + $hub = get_config('system','huburl'); // If this is a public conversation, notify the feed hub -- cgit v1.2.3 From 260d652168bae3716f843f445ae696b59edf4db3 Mon Sep 17 00:00:00 2001 From: Friendika Date: Sun, 4 Sep 2011 05:07:25 -0700 Subject: scrape_url - use feed url if no name can be found --- include/Scrape.php | 16 ++++++++++++---- include/delivery.php | 3 ++- include/notifier.php | 17 ++++++++++++++++- 3 files changed, 30 insertions(+), 6 deletions(-) (limited to 'include') diff --git a/include/Scrape.php b/include/Scrape.php index cc46af644..bf64c2243 100644 --- a/include/Scrape.php +++ b/include/Scrape.php @@ -332,10 +332,12 @@ function probe_url($url, $mode = PROBE_NORMAL) { if(! $url) return $result; + $network = null; $diaspora = false; $diaspora_base = ''; $diaspora_guid = ''; $diaspora_key = ''; + $has_lrdd = false; $email_conversant = false; $twitter = ((strpos($url,'twitter.com') !== false) ? true : false); @@ -352,6 +354,8 @@ function probe_url($url, $mode = PROBE_NORMAL) { $links = lrdd($url); if(count($links)) { + $has_lrdd = true; + logger('probe_url: found lrdd links: ' . print_r($links,true), LOGGER_DATA); foreach($links as $link) { if($link['@attributes']['rel'] === NAMESPACE_ZOT) @@ -493,7 +497,7 @@ function probe_url($url, $mode = PROBE_NORMAL) { if($network !== NETWORK_ZOT && $network !== NETWORK_DFRN && $network !== NETWORK_MAIL) { if($diaspora) $network = NETWORK_DIASPORA; - else + elseif($has_lrdd) $network = NETWORK_OSTATUS; $priority = 0; @@ -637,7 +641,7 @@ function probe_url($url, $mode = PROBE_NORMAL) { $vcard['nick'] = trim(substr($vcard['nick'],0,strpos($vcard['nick'],' '))); } if(! $network) - $network = 'feed'; + $network = NETWORK_FEED; if(! $priority) $priority = 2; } @@ -651,10 +655,14 @@ function probe_url($url, $mode = PROBE_NORMAL) { if(! $profile) $profile = $url; - $vcard['fn'] = notags($vcard['fn']); - $vcard['nick'] = str_replace(' ','',notags($vcard['nick'])); + // No human could be associated with this link, use the URL as the contact name + if(($network === NETWORK_FEED) && ($poll) && (! x($vcard,'fn'))) + $vcard['fn'] = $url; + $vcard['fn'] = notags($vcard['fn']); + $vcard['nick'] = str_replace(' ','',notags($vcard['nick'])); + $result['name'] = $vcard['fn']; $result['nick'] = $vcard['nick']; $result['url'] = $profile; diff --git a/include/delivery.php b/include/delivery.php index 7f45fb2fa..18ef09a31 100644 --- a/include/delivery.php +++ b/include/delivery.php @@ -419,7 +419,8 @@ function delivery_run($argv, $argc){ diaspora_send_relay($target_item,$owner,$contact); break; } - elseif($top_level) { + elseif(($top_level) && (! $walltowall)) { + // currently no workable solution for sending walltowall logger('delivery: diaspora status: ' . $contact['name']); diaspora_send_status($target_item,$owner,$contact); break; diff --git a/include/notifier.php b/include/notifier.php index 0bb82b7bf..6ac882c19 100644 --- a/include/notifier.php +++ b/include/notifier.php @@ -2,6 +2,20 @@ require_once("boot.php"); +/* + * This file was at one time responsible for doing all deliveries, but this caused + * big problems on shared hosting systems, where the process might get killed by the + * hosting provider and nothing would get delivered. + * It now only delivers one message under certain cases, and invokes a queued + * delivery mechanism (include/deliver.php) to deliver individual contacts at + * controlled intervals. + * This has a much better chance of surviving random processes getting killed + * by the hosting provider. + * A lot of this code is duplicated in include/deliver.php until we have time to go back + * and re-structure the delivery procedure based on the obstacles that have been thrown at + * us by hosting providers. + */ + function notifier_run($argv, $argc){ global $a, $db; @@ -594,7 +608,8 @@ function notifier_run($argv, $argc){ diaspora_send_relay($target_item,$owner,$contact); break; } - elseif($top_level) { + elseif(($top_level) && (! $walltowall)) { + // currently no workable solution for sending walltowall diaspora_send_status($target_item,$owner,$contact); break; } -- cgit v1.2.3 From e440353013aa1ca26a472b375bb1102348c7ead7 Mon Sep 17 00:00:00 2001 From: Friendika Date: Sun, 4 Sep 2011 05:41:11 -0700 Subject: truncate overflow text on acl selector items (3 themes) --- include/group.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/group.php b/include/group.php index f21ce42e0..cd89739e1 100644 --- a/include/group.php +++ b/include/group.php @@ -154,7 +154,7 @@ $o .= <<< EOT "; -- cgit v1.2.3 From 481853d2cc44a4bf6c540e72c741ff453305a925 Mon Sep 17 00:00:00 2001 From: Friendika Date: Sun, 4 Sep 2011 17:35:06 -0700 Subject: saved searches on network page --- include/group.php | 2 +- include/text.php | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/group.php b/include/group.php index cd89739e1..8798adf5a 100644 --- a/include/group.php +++ b/include/group.php @@ -170,7 +170,7 @@ EOT; $selected = (($group_id == $rr['id']) ? ' class="group-selected" ' : ''); $o .= '
  • \r\n"; diff --git a/include/text.php b/include/text.php index 66447069e..e3d984a1f 100644 --- a/include/text.php +++ b/include/text.php @@ -602,12 +602,14 @@ function micropro($contact, $redirect = false, $class = '', $textmode = false) { if(! function_exists('search')) { -function search($s,$id='search-box',$url='/search') { +function search($s,$id='search-box',$url='/search',$save = false) { $a = get_app(); $o = '
    '; $o .= '
    '; $o .= ''; $o .= ''; + if($save) + $o .= ''; $o .= '
    '; return $o; }} -- cgit v1.2.3 From 82f7f33cf58774ac6b07acd64fe0b49cd5b0aa30 Mon Sep 17 00:00:00 2001 From: Friendika Date: Sun, 4 Sep 2011 19:58:03 -0700 Subject: bookmarks + bug #140 --- include/items.php | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'include') diff --git a/include/items.php b/include/items.php index 6ded6f87c..facd8b2d4 100644 --- a/include/items.php +++ b/include/items.php @@ -378,6 +378,10 @@ function get_atom_elements($feed,$item) { if($dguid) $res['guid'] = unxmlify($dguid[0]['data']); + $bm = $item->get_item_tags(NAMESPACE_DFRN,'bookmark'); + if($bm) + $res['bookmark'] = ((unxmlify($bm[0]['data']) === 'true') ? 1 : 0); + /** * If there's a copy of the body content which is guaranteed to have survived mangling in transit, use it. @@ -733,6 +737,7 @@ function item_store($arr,$force_parent = false) { $arr['deny_cid'] = ((x($arr,'deny_cid')) ? trim($arr['deny_cid']) : ''); $arr['deny_gid'] = ((x($arr,'deny_gid')) ? trim($arr['deny_gid']) : ''); $arr['private'] = ((x($arr,'private')) ? intval($arr['private']) : 0 ); + $arr['bookmark'] = ((x($arr,'bookmark')) ? intval($arr['bookmark']) : 0 ); $arr['body'] = ((x($arr,'body')) ? trim($arr['body']) : ''); $arr['tag'] = ((x($arr,'tag')) ? notags(trim($arr['tag'])) : ''); $arr['attach'] = ((x($arr,'attach')) ? notags(trim($arr['attach'])) : ''); @@ -1706,6 +1711,8 @@ function atom_entry($item,$type,$author,$owner,$comment = false) { if($item['extid']) $o .= '' . xmlify($item['extid']) . '' . "\r\n"; + if($item['bookmark']) + $o .= 'true' . "\r\n"; if($item['app']) $o .= '' . "\r\n"; -- cgit v1.2.3