Fix list of accounts

This commit is contained in:
Michael 2021-05-11 23:39:08 +00:00
parent 975c32116d
commit 4476634f6c
2 changed files with 22 additions and 6 deletions

View File

@ -288,9 +288,13 @@ class Media
public static function insertFromBody(int $uriid, string $body) public static function insertFromBody(int $uriid, string $body)
{ {
// Simplify image codes // Simplify image codes
$body = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '[img]$3[/img]', $body); $unshared_body = $body = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '[img]$3[/img]', $body);
$unshared_body = preg_replace("/\s*\[share .*?\].*?\[\/share\]\s*/ism", '', $body); // Only remove the shared data from "real" reshares
$shared = BBCode::fetchShareAttributes($body);
if (!empty($shared['guid'])) {
$unshared_body = preg_replace("/\s*\[share .*?\].*?\[\/share\]\s*/ism", '', $body);
}
$attachments = []; $attachments = [];
if (preg_match_all("#\[url=([^\]]+?)\]\s*\[img=([^\[\]]*)\]([^\[\]]*)\[\/img\]\s*\[/url\]#ism", $body, $pictures, PREG_SET_ORDER)) { if (preg_match_all("#\[url=([^\]]+?)\]\s*\[img=([^\[\]]*)\]([^\[\]]*)\[\/img\]\s*\[/url\]#ism", $body, $pictures, PREG_SET_ORDER)) {
@ -363,8 +367,12 @@ class Media
*/ */
public static function insertFromRelevantUrl(int $uriid, string $body) public static function insertFromRelevantUrl(int $uriid, string $body)
{ {
// Don't look at the shared content // Only remove the shared data from "real" reshares
$body = preg_replace("/\s*\[share .*?\].*?\[\/share\]\s*/ism", '', $body); $shared = BBCode::fetchShareAttributes($body);
if (!empty($shared['guid'])) {
// Don't look at the shared content
$body = preg_replace("/\s*\[share .*?\].*?\[\/share\]\s*/ism", '', $body);
}
// Remove all hashtags and mentions // Remove all hashtags and mentions
$body = preg_replace("/([#@!])\[url\=(.*?)\](.*?)\[\/url\]/ism", '', $body); $body = preg_replace("/([#@!])\[url\=(.*?)\](.*?)\[\/url\]/ism", '', $body);

View File

@ -65,12 +65,18 @@ class Accounts extends BaseApi
$max_id = (int)!isset($_REQUEST['max_id']) ? 0 : $_REQUEST['max_id']; $max_id = (int)!isset($_REQUEST['max_id']) ? 0 : $_REQUEST['max_id'];
// Return results newer than this id // Return results newer than this id
$since_id = (int)!isset($_REQUEST['since_id']) ? 0 : $_REQUEST['since_id']; $since_id = (int)!isset($_REQUEST['since_id']) ? 0 : $_REQUEST['since_id'];
// Maximum number of results to return. Defaults to 20. // Maximum number of results. Defaults to 40. Max 40.
// Set to 0 in order to get all accounts without pagination.
$limit = (int)!isset($_REQUEST['limit']) ? 40 : $_REQUEST['limit']; $limit = (int)!isset($_REQUEST['limit']) ? 40 : $_REQUEST['limit'];
$params = ['order' => ['contact-id' => true], 'limit' => $limit]; $params = ['order' => ['contact-id' => true]];
if ($limit != 0) {
$params['limit'] = $limit;
}
$condition = ['gid' => $id]; $condition = ['gid' => $id];
if (!empty($max_id)) { if (!empty($max_id)) {
@ -87,6 +93,8 @@ class Accounts extends BaseApi
$params['order'] = ['contact-id']; $params['order'] = ['contact-id'];
} }
$accounts = [];
$members = DBA::select('group_member', ['contact-id'], $condition, $params); $members = DBA::select('group_member', ['contact-id'], $condition, $params);
while ($member = DBA::fetch($members)) { while ($member = DBA::fetch($members)) {
$accounts[] = DI::mstdnAccount()->createFromContactId($member['contact-id'], $uid); $accounts[] = DI::mstdnAccount()->createFromContactId($member['contact-id'], $uid);