mirror of
https://github.com/friendica/friendica
synced 2025-04-26 19:10:11 +00:00
More functions moved to content class
This commit is contained in:
parent
c65fff6f93
commit
deccea0228
10 changed files with 113 additions and 59 deletions
|
@ -257,17 +257,16 @@ class Tag
|
|||
* @param string $hash
|
||||
* @param string $name
|
||||
* @param string $url
|
||||
* @param boolean $probing Whether probing is active
|
||||
* @return void
|
||||
*/
|
||||
public static function storeByHash(int $uriId, string $hash, string $name, string $url = '', bool $probing = true)
|
||||
public static function storeByHash(int $uriId, string $hash, string $name, string $url = '')
|
||||
{
|
||||
$type = self::getTypeForHash($hash);
|
||||
if ($type == self::UNKNOWN) {
|
||||
return;
|
||||
}
|
||||
|
||||
self::store($uriId, $type, $name, $url, $probing);
|
||||
self::store($uriId, $type, $name, $url);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -297,32 +296,43 @@ class Tag
|
|||
* @param integer $uriId URI-Id
|
||||
* @param string $body Body of the post
|
||||
* @param string $tags Accepted tags
|
||||
* @param boolean $probing Perform a probing for contacts, adding them if needed
|
||||
* @return void
|
||||
*/
|
||||
public static function storeFromBody(int $uriId, string $body, string $tags = null, bool $probing = true)
|
||||
public static function storeFromBody(int $uriId, string $body, string $tags = null)
|
||||
{
|
||||
Logger::info('Check for tags', ['uri-id' => $uriId, 'hash' => $tags, 'callstack' => System::callstack()]);
|
||||
$item = ['uri-id' => $uriId, 'body' => $body, 'quote-uri-id' => null];
|
||||
self::storeFromArray($item, $tags);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store tags and mentions from the item array
|
||||
*
|
||||
* @param array $item Item array
|
||||
* @param string $tags Accepted tags
|
||||
* @return void
|
||||
*/
|
||||
public static function storeFromArray(array $item, string $tags = null)
|
||||
{
|
||||
Logger::info('Check for tags', ['uri-id' => $item['uri-id'], 'hash' => $tags, 'callstack' => System::callstack()]);
|
||||
|
||||
if (is_null($tags)) {
|
||||
$tags = self::TAG_CHARACTER[self::HASHTAG] . self::TAG_CHARACTER[self::MENTION] . self::TAG_CHARACTER[self::EXCLUSIVE_MENTION];
|
||||
}
|
||||
|
||||
// Only remove the shared data from "real" reshares
|
||||
$shared = BBCode::fetchShareAttributes($body);
|
||||
if (!empty($shared['guid'])) {
|
||||
$share_body = $shared['shared'];
|
||||
$body = BBCode::removeSharedData($body);
|
||||
$shared = DI::contentItem()->getSharedPost($item, ['uri-id']);
|
||||
if (!empty($shared)) {
|
||||
$item['body'] = BBCode::removeSharedData($item['body']);
|
||||
}
|
||||
|
||||
foreach (self::getFromBody($body, $tags) as $tag) {
|
||||
self::storeByHash($uriId, $tag[1], $tag[3], $tag[2], $probing);
|
||||
foreach (self::getFromBody($item['body'], $tags) as $tag) {
|
||||
self::storeByHash($item['uri-id'], $tag[1], $tag[3], $tag[2]);
|
||||
}
|
||||
|
||||
// Search for hashtags in the shared body (but only if hashtags are wanted)
|
||||
if (!empty($share_body) && (strpos($tags, self::TAG_CHARACTER[self::HASHTAG]) !== false)) {
|
||||
foreach (self::getFromBody($share_body, self::TAG_CHARACTER[self::HASHTAG]) as $tag) {
|
||||
self::storeByHash($uriId, $tag[1], $tag[3], $tag[2], $probing);
|
||||
if (!empty($shared) && (strpos($tags, self::TAG_CHARACTER[self::HASHTAG]) !== false)) {
|
||||
foreach (self::getByURIId($shared['post']['uri-id'], [self::HASHTAG]) as $tag) {
|
||||
self::store($item['uri-id'], $tag['type'], $tag['name'], $tag['url']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue