aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/Scrape.php2
-rw-r--r--include/bb2diaspora.php5
-rw-r--r--include/network.php19
-rw-r--r--include/template_processor.php21
4 files changed, 39 insertions, 8 deletions
diff --git a/include/Scrape.php b/include/Scrape.php
index bf64c2243..b80f24c22 100644
--- a/include/Scrape.php
+++ b/include/Scrape.php
@@ -471,7 +471,7 @@ function probe_url($url, $mode = PROBE_NORMAL) {
}
if(strlen($dfrn)) {
- $ret = scrape_dfrn($dfrn);
+ $ret = scrape_dfrn(($hcard) ? $hcard : $dfrn);
if(is_array($ret) && x($ret,'dfrn-request')) {
$network = NETWORK_DFRN;
$request = $ret['dfrn-request'];
diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php
index ca0c961b3..591aaf7fa 100644
--- a/include/bb2diaspora.php
+++ b/include/bb2diaspora.php
@@ -8,6 +8,10 @@ require_once('include/event.php');
function diaspora2bb($s) {
+ // bug #127
+ $s = preg_replace('/\[(.+?)\]\((.+?)[^\\\]_(.+?)\)/','[$1]($2\\_$3)',$s);
+
+
$s = str_replace(array('\\**','\\__','\\*','\\_'), array('-^doublestar^-','-^doublescore-^','-^star^-','-^score^-'),$s);
$s = preg_replace("/\*\*\*(.+?)\*\*\*/", '[b][i]$1[/i][/b]', $s);
$s = preg_replace("/\_\_\_(.+?)\_\_\_/", '[b][i]$1[/i][/b]', $s);
@@ -15,6 +19,7 @@ function diaspora2bb($s) {
$s = preg_replace("/\_\_(.+?)\_\_/", '[b]$1[/b]', $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('/\!\[(.+?)\]\((.+?)\)/','[img]$2[/img]',$s);
$s = preg_replace('/\[(.+?)\]\((.+?)\)/','[url=$2]$1[/url]',$s);
diff --git a/include/network.php b/include/network.php
index 2832ae2d3..deb257ff3 100644
--- a/include/network.php
+++ b/include/network.php
@@ -259,22 +259,29 @@ function convert_xml_element_to_array($xml_element, &$recursion_depth=0) {
// or if the resultant personal XRD doesn't contain a supported
// subscription/friend-request attribute.
+// amended 7/9/2011 to return an hcard which could save potentially loading
+// a lengthy content page to scrape dfrn attributes
+
if(! function_exists('webfinger_dfrn')) {
-function webfinger_dfrn($s) {
+function webfinger_dfrn($s,&$hcard) {
if(! strstr($s,'@')) {
return $s;
}
+ $profile_link = '';
+
$links = webfinger($s);
logger('webfinger_dfrn: ' . $s . ':' . print_r($links,true), LOGGER_DATA);
if(count($links)) {
- foreach($links as $link)
+ foreach($links as $link) {
if($link['@attributes']['rel'] === NAMESPACE_DFRN)
- return $link['@attributes']['href'];
- foreach($links as $link)
+ $profile_link = $link['@attributes']['href'];
if($link['@attributes']['rel'] === NAMESPACE_OSTATUSSUB)
- return 'stat:' . $link['@attributes']['template'];
+ $profile_link = 'stat:' . $link['@attributes']['template'];
+ if($link['@attributes']['rel'] === 'http://microformats.org/profile/hcard')
+ $hcard = $link['@attributes']['href'];
+ }
}
- return '';
+ return $profile_link;
}}
// Given an email style address, perform webfinger lookup and
diff --git a/include/template_processor.php b/include/template_processor.php
index 11769bbd0..056d25488 100644
--- a/include/template_processor.php
+++ b/include/template_processor.php
@@ -1,5 +1,6 @@
<?php
+
class Template {
var $r;
var $search;
@@ -8,6 +9,8 @@
var $nodes = array();
var $done = false;
var $d = false;
+ var $lang = null;
+
private function _preg_error(){
switch(preg_last_error()){
@@ -156,8 +159,24 @@
krsort($this->nodes);
return $s;
}
+
+ private function _get_lang(){
+ if ($this->lang!=null) return $this->lang;
+
+ $a = get_app();
+ $this->lang=array();
+ foreach ($a->strings as $k=>$v){
+ $k = preg_replace("/[^a-z0-9-]/", "", str_replace(" ","-", strtolower($k)));
+ $this->lang[$k] = $v;
+ }
+ return $this->lang;
+ }
+
public function replace($s, $r) {
+ if (!x($r,'$lang')){
+ $r['$lang'] = &$this->_get_lang();
+ }
$this->r = $r;
$this->search = array();
$this->replace = array();
@@ -171,7 +190,7 @@
// remove comments block
$s = preg_replace('/{#[^#]*#}/', "" , $s);
-
+
// replace strings recursively (limit to 10 loops)
$os = ""; $count=0;
while($os!=$s && $count<10){