Merge pull request #5963 from MrPetovan/bug/5956-catch-more-diaspora-magic-links

Diaspora: Widen the magic link regular expression
This commit is contained in:
Michael Vogel 2018-10-19 05:30:52 +02:00 committed by GitHub
commit 45156652cc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 74 additions and 2 deletions

View File

@ -1319,7 +1319,7 @@ class BBCode extends BaseObject
// Handle Diaspora posts // Handle Diaspora posts
$text = preg_replace_callback( $text = preg_replace_callback(
"&\[url=/posts/([^\[\]]*)\](.*)\[\/url\]&Usi", "&\[url=/?posts/([^\[\]]*)\](.*)\[\/url\]&Usi",
function ($match) { function ($match) {
return "[url=" . System::baseUrl() . "/display/" . $match[1] . "]" . $match[2] . "[/url]"; return "[url=" . System::baseUrl() . "/display/" . $match[1] . "]" . $match[2] . "[/url]";
}, $text }, $text

View File

@ -26,6 +26,11 @@ class Conversation
const PARCEL_TWITTER = 67; const PARCEL_TWITTER = 67;
const PARCEL_UNKNOWN = 255; const PARCEL_UNKNOWN = 255;
public static function getByItemUri($item_uri)
{
return DBA::selectFirst('conversation', [], ['item-uri' => $item_uri]);
}
/** /**
* @brief Store the conversation data * @brief Store the conversation data
* *

39
src/Module/Itemsource.php Normal file
View File

@ -0,0 +1,39 @@
<?php
namespace Friendica\Module;
use Friendica\Core\L10n;
use Friendica\Model;
/**
* @author Hypolite Petovan <mrpetovan@gmail.com>
*/
class Itemsource extends \Friendica\BaseModule
{
public static function content()
{
if (!is_site_admin()) {
return;
}
$source = '';
$item_uri = '';
if (!empty($_REQUEST['guid'])) {
$item = Model\Item::selectFirst([], ['guid' => $_REQUEST['guid']]);
$conversation = Model\Conversation::getByItemUri($item['uri']);
$item_uri = $item['uri'];
$source = htmlspecialchars($conversation['source']);
}
$tpl = get_markup_template('debug/itemsource.tpl');
$o = replace_macros($tpl, [
'$guid' => ['guid', L10n::t('Item Guid'), htmlentities(defaults($_REQUEST, 'guid', '')), ''],
'$source' => $source,
'$item_uri' => $item_uri
]);
return $o;
}
}

View File

@ -1200,7 +1200,7 @@ class Diaspora
); );
preg_replace_callback( preg_replace_callback(
"&\[url=/posts/([^\[\]]*)\](.*)\[\/url\]&Usi", "&\[url=/?posts/([^\[\]]*)\](.*)\[\/url\]&Usi",
function ($match) use ($item) { function ($match) use ($item) {
self::fetchGuidSub($match, $item); self::fetchGuidSub($match, $item);
}, },

View File

@ -0,0 +1,28 @@
<h2>Item Source</h2>
<form action="itemsource" method="get" class="panel panel-default">
<div class="panel-body">
<div class="form-group">
{{include file="field_input.tpl" field=$guid}}
</div>
<p><button type="submit" class="btn btn-primary">Submit</button></p>
</div>
</form>
{{if $source}}
<div class="itemsource-results">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Item URI</h3>
</div>
<div class="panel-body">
{{$item_uri}}
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Source</h3>
</div>
<pre><code class="language-php">{{$source}}</code></pre>
</div>
</div>
{{/if}}