Channels for audio, video and images
This commit is contained in:
parent
fdaff43039
commit
30d10c60d2
|
@ -1307,6 +1307,7 @@ CREATE TABLE IF NOT EXISTS `post-engagement` (
|
||||||
`uri-id` int unsigned NOT NULL COMMENT 'Id of the item-uri table entry that contains the item uri',
|
`uri-id` int unsigned NOT NULL COMMENT 'Id of the item-uri table entry that contains the item uri',
|
||||||
`owner-id` int unsigned NOT NULL DEFAULT 0 COMMENT 'Item owner',
|
`owner-id` int unsigned NOT NULL DEFAULT 0 COMMENT 'Item owner',
|
||||||
`contact-type` tinyint NOT NULL DEFAULT 0 COMMENT 'Person, organisation, news, community, relay',
|
`contact-type` tinyint NOT NULL DEFAULT 0 COMMENT 'Person, organisation, news, community, relay',
|
||||||
|
`media-type` tinyint NOT NULL DEFAULT 0 COMMENT 'Type of media in a bit array (1 = image, 2 = video, 4 = audio',
|
||||||
`created` datetime COMMENT '',
|
`created` datetime COMMENT '',
|
||||||
`comments` mediumint unsigned COMMENT 'Number of comments',
|
`comments` mediumint unsigned COMMENT 'Number of comments',
|
||||||
`activities` mediumint unsigned COMMENT 'Number of activities (like, dislike, ...)',
|
`activities` mediumint unsigned COMMENT 'Number of activities (like, dislike, ...)',
|
||||||
|
|
|
@ -6,14 +6,15 @@ Engagement data per post
|
||||||
Fields
|
Fields
|
||||||
------
|
------
|
||||||
|
|
||||||
| Field | Description | Type | Null | Key | Default | Extra |
|
| Field | Description | Type | Null | Key | Default | Extra |
|
||||||
| ------------ | --------------------------------------------------------- | ------------------ | ---- | --- | ------- | ----- |
|
| ------------ | ------------------------------------------------------------- | ------------------ | ---- | --- | ------- | ----- |
|
||||||
| uri-id | Id of the item-uri table entry that contains the item uri | int unsigned | NO | PRI | NULL | |
|
| uri-id | Id of the item-uri table entry that contains the item uri | int unsigned | NO | PRI | NULL | |
|
||||||
| owner-id | Item owner | int unsigned | NO | | 0 | |
|
| owner-id | Item owner | int unsigned | NO | | 0 | |
|
||||||
| contact-type | Person, organisation, news, community, relay | tinyint | NO | | 0 | |
|
| contact-type | Person, organisation, news, community, relay | tinyint | NO | | 0 | |
|
||||||
| created | | datetime | YES | | NULL | |
|
| media-type | Type of media in a bit array (1 = image, 2 = video, 4 = audio | tinyint | NO | | 0 | |
|
||||||
| comments | Number of comments | mediumint unsigned | YES | | NULL | |
|
| created | | datetime | YES | | NULL | |
|
||||||
| activities | Number of activities (like, dislike, ...) | mediumint unsigned | YES | | NULL | |
|
| comments | Number of comments | mediumint unsigned | YES | | NULL | |
|
||||||
|
| activities | Number of activities (like, dislike, ...) | mediumint unsigned | YES | | NULL | |
|
||||||
|
|
||||||
Indexes
|
Indexes
|
||||||
------------
|
------------
|
||||||
|
|
|
@ -533,6 +533,17 @@ class Contact
|
||||||
return self::isSharing($cid, $uid, $strict);
|
return self::isSharing($cid, $uid, $strict);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if the provided public contact id has got followers on this system
|
||||||
|
*
|
||||||
|
* @param integer $cid
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
public static function hasFollowers(int $cid): bool
|
||||||
|
{
|
||||||
|
return DBA::exists('account-user-view', ["`pid` = ? AND `uid` != ? AND `rel` IN (?, ?)", $cid, 0, self::SHARING, self::FRIEND]);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the basepath for a given contact link
|
* Get the basepath for a given contact link
|
||||||
*
|
*
|
||||||
|
|
|
@ -26,6 +26,7 @@ use Friendica\Core\Protocol;
|
||||||
use Friendica\Database\Database;
|
use Friendica\Database\Database;
|
||||||
use Friendica\Database\DBA;
|
use Friendica\Database\DBA;
|
||||||
use Friendica\DI;
|
use Friendica\DI;
|
||||||
|
use Friendica\Model\Contact;
|
||||||
use Friendica\Model\Item;
|
use Friendica\Model\Item;
|
||||||
use Friendica\Model\Post;
|
use Friendica\Model\Post;
|
||||||
use Friendica\Model\Verb;
|
use Friendica\Model\Verb;
|
||||||
|
@ -49,11 +50,6 @@ class Engagement
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($item['gravity'] == Item::GRAVITY_PARENT) {
|
|
||||||
Logger::debug('Parent posts are not stored', ['uri-id' => $item['uri-id'], 'parent-uri-id' => $item['parent-uri-id']]);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (($item['uid'] != 0) && ($item['gravity'] == Item::GRAVITY_COMMENT)) {
|
if (($item['uid'] != 0) && ($item['gravity'] == Item::GRAVITY_COMMENT)) {
|
||||||
Logger::debug('Non public comments are not stored', ['uri-id' => $item['uri-id'], 'parent-uri-id' => $item['parent-uri-id'], 'uid' => $item['uid']]);
|
Logger::debug('Non public comments are not stored', ['uri-id' => $item['uri-id'], 'parent-uri-id' => $item['parent-uri-id'], 'uid' => $item['uid']]);
|
||||||
return;
|
return;
|
||||||
|
@ -75,10 +71,23 @@ class Engagement
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$store = ($item['gravity'] != Item::GRAVITY_PARENT);
|
||||||
|
|
||||||
|
if (!$store) {
|
||||||
|
$store = Contact::hasFollowers($parent['owner-id']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$mediatype = self::getMediaType($item['parent-uri-id']);
|
||||||
|
|
||||||
|
if (!$store) {
|
||||||
|
$mediatype = !empty($mediatype);
|
||||||
|
}
|
||||||
|
|
||||||
$engagement = [
|
$engagement = [
|
||||||
'uri-id' => $item['parent-uri-id'],
|
'uri-id' => $item['parent-uri-id'],
|
||||||
'owner-id' => $parent['owner-id'],
|
'owner-id' => $parent['owner-id'],
|
||||||
'contact-type' => $parent['contact-contact-type'],
|
'contact-type' => $parent['contact-contact-type'],
|
||||||
|
'media-type' => $mediatype,
|
||||||
'created' => $parent['created'],
|
'created' => $parent['created'],
|
||||||
'comments' => DBA::count('post', ['parent-uri-id' => $item['parent-uri-id'], 'gravity' => Item::GRAVITY_COMMENT]),
|
'comments' => DBA::count('post', ['parent-uri-id' => $item['parent-uri-id'], 'gravity' => Item::GRAVITY_COMMENT]),
|
||||||
'activities' => DBA::count('post', [
|
'activities' => DBA::count('post', [
|
||||||
|
@ -87,14 +96,30 @@ class Engagement
|
||||||
Verb::getID(Activity::FOLLOW), Verb::getID(Activity::VIEW), Verb::getID(Activity::READ)
|
Verb::getID(Activity::FOLLOW), Verb::getID(Activity::VIEW), Verb::getID(Activity::READ)
|
||||||
])
|
])
|
||||||
];
|
];
|
||||||
if (($engagement['comments'] == 0) && ($engagement['activities'] == 0)) {
|
if (!$store && ($engagement['comments'] == 0) && ($engagement['activities'] == 0)) {
|
||||||
Logger::debug('No comments nor activities. Engagement not stored', ['fields' => $engagement]);
|
Logger::debug('No media, follower, comments or activities. Engagement not stored', ['fields' => $engagement]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$ret = DBA::insert('post-engagement', $engagement, Database::INSERT_UPDATE);
|
$ret = DBA::insert('post-engagement', $engagement, Database::INSERT_UPDATE);
|
||||||
Logger::debug('Engagement stored', ['fields' => $engagement, 'ret' => $ret]);
|
Logger::debug('Engagement stored', ['fields' => $engagement, 'ret' => $ret]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static function getMediaType(int $uri_id) : int
|
||||||
|
{
|
||||||
|
$media = Post\Media::getByURIId($uri_id);
|
||||||
|
$type = 0;
|
||||||
|
foreach ($media as $entry) {
|
||||||
|
if ($entry['type'] == Post\Media::IMAGE) {
|
||||||
|
$type = $type | 1;
|
||||||
|
} elseif ($entry['type'] == Post\Media::VIDEO) {
|
||||||
|
$type = $type | 2;
|
||||||
|
} elseif ($entry['type'] == Post\Media::AUDIO) {
|
||||||
|
$type = $type | 4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $type;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Expire old engagement data
|
* Expire old engagement data
|
||||||
*
|
*
|
||||||
|
|
|
@ -45,6 +45,9 @@ class Channel extends BaseModule
|
||||||
const WHATSHOT = 'whatshot';
|
const WHATSHOT = 'whatshot';
|
||||||
const FORYOU = 'foryou';
|
const FORYOU = 'foryou';
|
||||||
const FOLLOWERS = 'followers';
|
const FOLLOWERS = 'followers';
|
||||||
|
const IMAGE = 'image';
|
||||||
|
const VIDEO = 'video';
|
||||||
|
const AUDIO = 'audio';
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
|
@ -106,6 +109,33 @@ class Channel extends BaseModule
|
||||||
'accesskey' => 'h'
|
'accesskey' => 'h'
|
||||||
];
|
];
|
||||||
|
|
||||||
|
$tabs[] = [
|
||||||
|
'label' => DI::l10n()->t('Images'),
|
||||||
|
'url' => 'channel/' . self::IMAGE,
|
||||||
|
'sel' => self::$content == self::IMAGE ? 'active' : '',
|
||||||
|
'title' => DI::l10n()->t('Posts with images'),
|
||||||
|
'id' => 'channel-image-tab',
|
||||||
|
'accesskey' => 'i'
|
||||||
|
];
|
||||||
|
|
||||||
|
$tabs[] = [
|
||||||
|
'label' => DI::l10n()->t('Videos'),
|
||||||
|
'url' => 'channel/' . self::VIDEO,
|
||||||
|
'sel' => self::$content == self::VIDEO ? 'active' : '',
|
||||||
|
'title' => DI::l10n()->t('Posts with videos'),
|
||||||
|
'id' => 'channel-video-tab',
|
||||||
|
'accesskey' => 'v'
|
||||||
|
];
|
||||||
|
|
||||||
|
$tabs[] = [
|
||||||
|
'label' => DI::l10n()->t('Audio'),
|
||||||
|
'url' => 'channel/' . self::AUDIO,
|
||||||
|
'sel' => self::$content == self::AUDIO ? 'active' : '',
|
||||||
|
'title' => DI::l10n()->t('Posts with audio'),
|
||||||
|
'id' => 'channel-audio-tab',
|
||||||
|
'accesskey' => 'a'
|
||||||
|
];
|
||||||
|
|
||||||
$tab_tpl = Renderer::getMarkupTemplate('common_tabs.tpl');
|
$tab_tpl = Renderer::getMarkupTemplate('common_tabs.tpl');
|
||||||
$o .= Renderer::replaceMacros($tab_tpl, ['$tabs' => $tabs]);
|
$o .= Renderer::replaceMacros($tab_tpl, ['$tabs' => $tabs]);
|
||||||
|
|
||||||
|
@ -113,7 +143,7 @@ class Channel extends BaseModule
|
||||||
|
|
||||||
DI::page()['aside'] .= Widget::accountTypes('channel/' . self::$content, self::$accountTypeString);
|
DI::page()['aside'] .= Widget::accountTypes('channel/' . self::$content, self::$accountTypeString);
|
||||||
|
|
||||||
if ((self::$content != self::FOLLOWERS) && DI::config()->get('system', 'community_no_sharer')) {
|
if (!in_array(self::$content, [self::FOLLOWERS, self::FORYOU]) && DI::config()->get('system', 'community_no_sharer')) {
|
||||||
$path = self::$content;
|
$path = self::$content;
|
||||||
if (!empty($this->parameters['accounttype'])) {
|
if (!empty($this->parameters['accounttype'])) {
|
||||||
$path .= '/' . $this->parameters['accounttype'];
|
$path .= '/' . $this->parameters['accounttype'];
|
||||||
|
@ -193,7 +223,7 @@ class Channel extends BaseModule
|
||||||
self::$content = self::FORYOU;
|
self::$content = self::FORYOU;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!in_array(self::$content, [self::WHATSHOT, self::FORYOU, self::FOLLOWERS])) {
|
if (!in_array(self::$content, [self::WHATSHOT, self::FORYOU, self::FOLLOWERS, self::IMAGE, self::VIDEO, self::AUDIO])) {
|
||||||
throw new HTTPException\BadRequestException(DI::l10n()->t('Channel not available.'));
|
throw new HTTPException\BadRequestException(DI::l10n()->t('Channel not available.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -252,6 +282,12 @@ class Channel extends BaseModule
|
||||||
DI::userSession()->getLocalUserId(), Contact::FRIEND, Contact::SHARING];
|
DI::userSession()->getLocalUserId(), Contact::FRIEND, Contact::SHARING];
|
||||||
} elseif (self::$content == self::FOLLOWERS) {
|
} elseif (self::$content == self::FOLLOWERS) {
|
||||||
$condition = ["`owner-id` IN (SELECT `pid` FROM `account-user-view` WHERE `uid` = ? AND `rel` = ?)", DI::userSession()->getLocalUserId(), Contact::FOLLOWER];
|
$condition = ["`owner-id` IN (SELECT `pid` FROM `account-user-view` WHERE `uid` = ? AND `rel` = ?)", DI::userSession()->getLocalUserId(), Contact::FOLLOWER];
|
||||||
|
} elseif (self::$content == self::IMAGE) {
|
||||||
|
$condition = ["`media-type` & ?", 1];
|
||||||
|
} elseif (self::$content == self::VIDEO) {
|
||||||
|
$condition = ["`media-type` & ?", 2];
|
||||||
|
} elseif (self::$content == self::AUDIO) {
|
||||||
|
$condition = ["`media-type` & ?", 4];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((self::$content != self::WHATSHOT) && !is_null(self::$accountType)) {
|
if ((self::$content != self::WHATSHOT) && !is_null(self::$accountType)) {
|
||||||
|
@ -309,7 +345,7 @@ class Channel extends BaseModule
|
||||||
}
|
}
|
||||||
|
|
||||||
$limit = DBA::count('post-engagement', ["`contact-type` != ? AND `comments` > ?", Contact::TYPE_COMMUNITY, 0]) / $divider;
|
$limit = DBA::count('post-engagement', ["`contact-type` != ? AND `comments` > ?", Contact::TYPE_COMMUNITY, 0]) / $divider;
|
||||||
$post = DBA::selectToArray('post-engagement', ['comments'], ["`contact-type` != ?", Contact::TYPE_COMMUNITY, 0], ['order' => ['comments' => true], 'limit' => [$limit, 1]]);
|
$post = DBA::selectToArray('post-engagement', ['comments'], ["`contact-type` != ?", Contact::TYPE_COMMUNITY], ['order' => ['comments' => true], 'limit' => [$limit, 1]]);
|
||||||
$comments = $post[0]['comments'] ?? 0;
|
$comments = $post[0]['comments'] ?? 0;
|
||||||
if (empty($comments)) {
|
if (empty($comments)) {
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -328,7 +364,7 @@ class Channel extends BaseModule
|
||||||
}
|
}
|
||||||
|
|
||||||
$limit = DBA::count('post-engagement', ["`contact-type` != ? AND `activities` > ?", Contact::TYPE_COMMUNITY, 0]) / $divider;
|
$limit = DBA::count('post-engagement', ["`contact-type` != ? AND `activities` > ?", Contact::TYPE_COMMUNITY, 0]) / $divider;
|
||||||
$post = DBA::selectToArray('post-engagement', ['activities'], ["`contact-type` != ?", Contact::TYPE_COMMUNITY, 0], ['order' => ['activities' => true], 'limit' => [$limit, 1]]);
|
$post = DBA::selectToArray('post-engagement', ['activities'], ["`contact-type` != ?", Contact::TYPE_COMMUNITY], ['order' => ['activities' => true], 'limit' => [$limit, 1]]);
|
||||||
$activities = $post[0]['activities'] ?? 0;
|
$activities = $post[0]['activities'] ?? 0;
|
||||||
if (empty($activities)) {
|
if (empty($activities)) {
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -1329,6 +1329,7 @@ return [
|
||||||
"uri-id" => ["type" => "int unsigned", "not null" => "1", "primary" => "1", "foreign" => ["item-uri" => "id"], "comment" => "Id of the item-uri table entry that contains the item uri"],
|
"uri-id" => ["type" => "int unsigned", "not null" => "1", "primary" => "1", "foreign" => ["item-uri" => "id"], "comment" => "Id of the item-uri table entry that contains the item uri"],
|
||||||
"owner-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "foreign" => ["contact" => "id", "on delete" => "restrict"], "comment" => "Item owner"],
|
"owner-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "foreign" => ["contact" => "id", "on delete" => "restrict"], "comment" => "Item owner"],
|
||||||
"contact-type" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => "Person, organisation, news, community, relay"],
|
"contact-type" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => "Person, organisation, news, community, relay"],
|
||||||
|
"media-type" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => "Type of media in a bit array (1 = image, 2 = video, 4 = audio"],
|
||||||
"created" => ["type" => "datetime", "comment" => ""],
|
"created" => ["type" => "datetime", "comment" => ""],
|
||||||
"comments" => ["type" => "mediumint unsigned", "comment" => "Number of comments"],
|
"comments" => ["type" => "mediumint unsigned", "comment" => "Number of comments"],
|
||||||
"activities" => ["type" => "mediumint unsigned", "comment" => "Number of activities (like, dislike, ...)"],
|
"activities" => ["type" => "mediumint unsigned", "comment" => "Number of activities (like, dislike, ...)"],
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 2023.09-dev\n"
|
"Project-Id-Version: 2023.09-dev\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-09-02 05:34+0000\n"
|
"POT-Creation-Date: 2023-09-02 15:51+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -793,7 +793,7 @@ msgid "All contacts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/BaseModule.php:433 src/Content/Widget.php:239 src/Core/ACL.php:195
|
#: src/BaseModule.php:433 src/Content/Widget.php:239 src/Core/ACL.php:195
|
||||||
#: src/Module/Contact.php:415 src/Module/Conversation/Channel.php:91
|
#: src/Module/Contact.php:415 src/Module/Conversation/Channel.php:95
|
||||||
#: src/Module/PermissionTooltip.php:127 src/Module/PermissionTooltip.php:149
|
#: src/Module/PermissionTooltip.php:127 src/Module/PermissionTooltip.php:149
|
||||||
msgid "Followers"
|
msgid "Followers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -1669,31 +1669,31 @@ msgstr ""
|
||||||
msgid "Follow Thread"
|
msgid "Follow Thread"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Item.php:429 src/Model/Contact.php:1216
|
#: src/Content/Item.php:429 src/Model/Contact.php:1221
|
||||||
msgid "View Status"
|
msgid "View Status"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Item.php:430 src/Content/Item.php:451 src/Model/Contact.php:1165
|
#: src/Content/Item.php:430 src/Content/Item.php:451 src/Model/Contact.php:1170
|
||||||
#: src/Model/Contact.php:1208 src/Model/Contact.php:1217
|
#: src/Model/Contact.php:1213 src/Model/Contact.php:1222
|
||||||
#: src/Module/Directory.php:157 src/Module/Settings/Profile/Index.php:259
|
#: src/Module/Directory.php:157 src/Module/Settings/Profile/Index.php:259
|
||||||
msgid "View Profile"
|
msgid "View Profile"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Item.php:431 src/Model/Contact.php:1218
|
#: src/Content/Item.php:431 src/Model/Contact.php:1223
|
||||||
msgid "View Photos"
|
msgid "View Photos"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Item.php:432 src/Model/Contact.php:1209
|
#: src/Content/Item.php:432 src/Model/Contact.php:1214
|
||||||
#: src/Model/Contact.php:1219
|
#: src/Model/Contact.php:1224
|
||||||
msgid "Network Posts"
|
msgid "Network Posts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Item.php:433 src/Model/Contact.php:1210
|
#: src/Content/Item.php:433 src/Model/Contact.php:1215
|
||||||
#: src/Model/Contact.php:1220
|
#: src/Model/Contact.php:1225
|
||||||
msgid "View Contact"
|
msgid "View Contact"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Item.php:434 src/Model/Contact.php:1221
|
#: src/Content/Item.php:434 src/Model/Contact.php:1226
|
||||||
msgid "Send PM"
|
msgid "Send PM"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -1728,7 +1728,7 @@ msgid "Languages"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Item.php:448 src/Content/Widget.php:80
|
#: src/Content/Item.php:448 src/Content/Widget.php:80
|
||||||
#: src/Model/Contact.php:1211 src/Model/Contact.php:1222
|
#: src/Model/Contact.php:1216 src/Model/Contact.php:1227
|
||||||
#: src/Module/Contact/Follow.php:167 view/theme/vier/theme.php:195
|
#: src/Module/Contact/Follow.php:167 view/theme/vier/theme.php:195
|
||||||
msgid "Connect/Follow"
|
msgid "Connect/Follow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -2243,7 +2243,7 @@ msgstr ""
|
||||||
msgid "Organisations"
|
msgid "Organisations"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Widget.php:536 src/Model/Contact.php:1687
|
#: src/Content/Widget.php:536 src/Model/Contact.php:1692
|
||||||
msgid "News"
|
msgid "News"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -2324,8 +2324,8 @@ msgstr ""
|
||||||
msgid "Network:"
|
msgid "Network:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Widget/VCard.php:118 src/Model/Contact.php:1212
|
#: src/Content/Widget/VCard.php:118 src/Model/Contact.php:1217
|
||||||
#: src/Model/Contact.php:1223 src/Model/Profile.php:463
|
#: src/Model/Contact.php:1228 src/Model/Profile.php:463
|
||||||
#: src/Module/Contact/Profile.php:450
|
#: src/Module/Contact/Profile.php:450
|
||||||
msgid "Unfollow"
|
msgid "Unfollow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -3078,82 +3078,82 @@ msgstr ""
|
||||||
msgid "Edit circles"
|
msgid "Edit circles"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:1229 src/Module/Moderation/Users/Pending.php:102
|
#: src/Model/Contact.php:1234 src/Module/Moderation/Users/Pending.php:102
|
||||||
#: src/Module/Notifications/Introductions.php:132
|
#: src/Module/Notifications/Introductions.php:132
|
||||||
#: src/Module/Notifications/Introductions.php:204
|
#: src/Module/Notifications/Introductions.php:204
|
||||||
msgid "Approve"
|
msgid "Approve"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:1683
|
#: src/Model/Contact.php:1688
|
||||||
msgid "Organisation"
|
msgid "Organisation"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:1691
|
#: src/Model/Contact.php:1696
|
||||||
msgid "Group"
|
msgid "Group"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:2994
|
#: src/Model/Contact.php:2999
|
||||||
msgid "Disallowed profile URL."
|
msgid "Disallowed profile URL."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:2999 src/Module/Friendica.php:101
|
#: src/Model/Contact.php:3004 src/Module/Friendica.php:101
|
||||||
msgid "Blocked domain"
|
msgid "Blocked domain"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:3004
|
#: src/Model/Contact.php:3009
|
||||||
msgid "Connect URL missing."
|
msgid "Connect URL missing."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:3013
|
#: src/Model/Contact.php:3018
|
||||||
msgid ""
|
msgid ""
|
||||||
"The contact could not be added. Please check the relevant network "
|
"The contact could not be added. Please check the relevant network "
|
||||||
"credentials in your Settings -> Social Networks page."
|
"credentials in your Settings -> Social Networks page."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:3031
|
#: src/Model/Contact.php:3036
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Expected network %s does not match actual network %s"
|
msgid "Expected network %s does not match actual network %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:3048
|
#: src/Model/Contact.php:3053
|
||||||
msgid "The profile address specified does not provide adequate information."
|
msgid "The profile address specified does not provide adequate information."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:3050
|
#: src/Model/Contact.php:3055
|
||||||
msgid "No compatible communication protocols or feeds were discovered."
|
msgid "No compatible communication protocols or feeds were discovered."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:3053
|
#: src/Model/Contact.php:3058
|
||||||
msgid "An author or name was not found."
|
msgid "An author or name was not found."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:3056
|
#: src/Model/Contact.php:3061
|
||||||
msgid "No browser URL could be matched to this address."
|
msgid "No browser URL could be matched to this address."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:3059
|
#: src/Model/Contact.php:3064
|
||||||
msgid ""
|
msgid ""
|
||||||
"Unable to match @-style Identity Address with a known protocol or email "
|
"Unable to match @-style Identity Address with a known protocol or email "
|
||||||
"contact."
|
"contact."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:3060
|
#: src/Model/Contact.php:3065
|
||||||
msgid "Use mailto: in front of address to force email check."
|
msgid "Use mailto: in front of address to force email check."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:3066
|
#: src/Model/Contact.php:3071
|
||||||
msgid ""
|
msgid ""
|
||||||
"The profile address specified belongs to a network which has been disabled "
|
"The profile address specified belongs to a network which has been disabled "
|
||||||
"on this site."
|
"on this site."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:3071
|
#: src/Model/Contact.php:3076
|
||||||
msgid ""
|
msgid ""
|
||||||
"Limited profile. This person will be unable to receive direct/personal "
|
"Limited profile. This person will be unable to receive direct/personal "
|
||||||
"notifications from you."
|
"notifications from you."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:3137
|
#: src/Model/Contact.php:3142
|
||||||
msgid "Unable to retrieve contact information."
|
msgid "Unable to retrieve contact information."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -6526,48 +6526,72 @@ msgstr ""
|
||||||
msgid "Unable to unfollow this contact, please contact your administrator"
|
msgid "Unable to unfollow this contact, please contact your administrator"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Conversation/Channel.php:82
|
#: src/Module/Conversation/Channel.php:86
|
||||||
msgid "For you"
|
msgid "For you"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Conversation/Channel.php:85
|
#: src/Module/Conversation/Channel.php:89
|
||||||
msgid "Posts from contacts you interact with and who interact with you"
|
msgid "Posts from contacts you interact with and who interact with you"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Conversation/Channel.php:94
|
#: src/Module/Conversation/Channel.php:98
|
||||||
msgid "Posts from your followers that you don't follow"
|
msgid "Posts from your followers that you don't follow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Conversation/Channel.php:100
|
#: src/Module/Conversation/Channel.php:104
|
||||||
msgid "Whats Hot"
|
msgid "Whats Hot"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Conversation/Channel.php:103
|
#: src/Module/Conversation/Channel.php:107
|
||||||
msgid "Posts with a lot of interactions"
|
msgid "Posts with a lot of interactions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Conversation/Channel.php:135
|
#: src/Module/Conversation/Channel.php:113
|
||||||
|
msgid "Images"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Module/Conversation/Channel.php:116
|
||||||
|
msgid "Posts with images"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Module/Conversation/Channel.php:122
|
||||||
|
msgid "Videos"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Module/Conversation/Channel.php:125
|
||||||
|
msgid "Posts with videos"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Module/Conversation/Channel.php:131
|
||||||
|
msgid "Audio"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Module/Conversation/Channel.php:134
|
||||||
|
msgid "Posts with audio"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Module/Conversation/Channel.php:166
|
||||||
#: src/Module/Conversation/Community.php:134
|
#: src/Module/Conversation/Community.php:134
|
||||||
msgid "Own Contacts"
|
msgid "Own Contacts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Conversation/Channel.php:139
|
#: src/Module/Conversation/Channel.php:170
|
||||||
#: src/Module/Conversation/Community.php:138
|
#: src/Module/Conversation/Community.php:138
|
||||||
msgid "Include"
|
msgid "Include"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Conversation/Channel.php:140
|
#: src/Module/Conversation/Channel.php:171
|
||||||
#: src/Module/Conversation/Community.php:139
|
#: src/Module/Conversation/Community.php:139
|
||||||
msgid "Hide"
|
msgid "Hide"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Conversation/Channel.php:156
|
#: src/Module/Conversation/Channel.php:187
|
||||||
#: src/Module/Conversation/Community.php:157 src/Module/Search/Index.php:152
|
#: src/Module/Conversation/Community.php:157 src/Module/Search/Index.php:152
|
||||||
#: src/Module/Search/Index.php:194
|
#: src/Module/Search/Index.php:194
|
||||||
msgid "No results."
|
msgid "No results."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Conversation/Channel.php:196
|
#: src/Module/Conversation/Channel.php:227
|
||||||
msgid "Channel not available."
|
msgid "Channel not available."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user