aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2014-09-02 17:21:12 -0700
committerfriendica <info@friendica.com>2014-09-02 17:21:12 -0700
commit2c94d59cba0b3231b0dd822fc1b95bed5521c48d (patch)
tree5000d4070a1810c1c4b538bf0970d867f0bb6ddb /include
parent17c1ddb77e153b72fd70d3b58befb9e791ca04c7 (diff)
downloadvolse-hubzilla-2c94d59cba0b3231b0dd822fc1b95bed5521c48d.tar.gz
volse-hubzilla-2c94d59cba0b3231b0dd822fc1b95bed5521c48d.tar.bz2
volse-hubzilla-2c94d59cba0b3231b0dd822fc1b95bed5521c48d.zip
use feed title for channel name before checking author, make feed items shareable (they're private to the channel so they won't be shown in searches), try and handle Diaspora mentions a bit more elegantly. (Bug: we don't convert mentions to Diaspora's format on outbound at all!)
Diffstat (limited to 'include')
-rw-r--r--include/ItemObject.php9
-rw-r--r--include/bb2diaspora.php24
-rw-r--r--include/network.php12
3 files changed, 37 insertions, 8 deletions
diff --git a/include/ItemObject.php b/include/ItemObject.php
index a5870ef91..b4a60762b 100644
--- a/include/ItemObject.php
+++ b/include/ItemObject.php
@@ -90,6 +90,10 @@ class Item extends BaseObject {
: false);
$shareable = ((($conv->get_profile_owner() == local_user()) && ($item['item_private'] != 1)) ? true : false);
+ // allow an exemption for sharing stuff from your private feeds
+ if($item['author']['xchan_network'] === 'rss')
+ $shareable = true;
+
$mode = $conv->get_mode();
if(local_user() && $observer['xchan_hash'] === $item['author_xchan'])
@@ -207,10 +211,11 @@ class Item extends BaseObject {
if($this->is_commentable()) {
$like = array( t("I like this \x28toggle\x29"), t("like"));
$dislike = array( t("I don't like this \x28toggle\x29"), t("dislike"));
- if ($shareable)
- $share = array( t('Share This'), t('share'));
}
+ if ($shareable)
+ $share = array( t('Share This'), t('share'));
+
if(strcmp(datetime_convert('UTC','UTC',$item['created']),datetime_convert('UTC','UTC','now - 12 hours')) > 0)
$indent .= ' shiny';
diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php
index f15a34e99..623b2d7b7 100644
--- a/include/bb2diaspora.php
+++ b/include/bb2diaspora.php
@@ -77,6 +77,25 @@ function share_unshield($m) {
}
+function diaspora_mention_callback($matches) {
+
+ $webbie = $matches[2];
+ $link = '';
+ if($webbie) {
+ $r = q("select * from hubloc left join xchan on hubloc_hash = xchan_hash where hubloc_addr = '%s' limit 1",
+ dbesc($webbie)
+ );
+ if($r)
+ $link = $r[0]['xchan_url'];
+ }
+ if(! $link)
+ $link = 'https://' . $matches[3] . '/u/' . $matches[2];
+
+ return '@[url=' . $link . ']' . trim($matches[1]) . '[/url]';
+
+}
+
+
// we don't want to support a bbcode specific markdown interpreter
// and the markdown library we have is pretty good, but provides HTML output.
@@ -97,7 +116,10 @@ function diaspora2bb($s,$use_zrl = false) {
$s = str_replace("<br/>","<br />",$s);
$s = str_replace("\n","<br />",$s);
- $s = preg_replace('/\@\{(.+?)\; (.+?)\@(.+?)\}/','@[url=https://$3/u/$2]$1[/url]',$s);
+
+// $s = preg_replace('/\@\{(.+?)\; (.+?)\@(.+?)\}/','@[url=https://$3/u/$2]$1[/url]',$s);
+
+ $s = preg_replace_callback('/\@\{(.+?)\; (.+?)\@(.+?)\}/','diaspora_mention_callback',$s);
// Escaping the hash tags - doesn't always seem to work
// $s = preg_replace('/\#([^\s\#])/','\\#$1',$s);
diff --git a/include/network.php b/include/network.php
index c44ed77c4..77c1550ba 100644
--- a/include/network.php
+++ b/include/network.php
@@ -868,15 +868,18 @@ function discover_by_url($url,$arr = null) {
if($feed->error())
logger('probe_url: scrape_feed: Error parsing XML: ' . $feed->error());
+ $name = unxmlify(trim($feed->get_title()));
$photo = $feed->get_image_url();
$author = $feed->get_author();
if($author) {
- $name = unxmlify(trim($author->get_name()));
if(! $name)
+ $name = unxmlify(trim($author->get_name()));
+ if(! $name) {
$name = trim(unxmlify($author->get_email()));
- if(strpos($name,'@') !== false)
- $name = substr($name,0,strpos($name,'@'));
+ if(strpos($name,'@') !== false)
+ $name = substr($name,0,strpos($name,'@'));
+ }
if(! $profile && $author->get_link())
$profile = trim(unxmlify($author->get_link()));
if(! $photo) {
@@ -924,8 +927,7 @@ function discover_by_url($url,$arr = null) {
if(! $network) {
$network = 'rss';
}
- if(! $name)
- $name = notags($feed->get_title());
+
if(! $name)
$name = notags($feed->get_description());