1
0
mirror of https://github.com/chylex/Nextcloud-News.git synced 2024-11-24 13:42:47 +01:00

Compare commits

...

3 Commits

Author SHA1 Message Date
cc861ca186
Work around compatibility issues 2024-08-02 16:12:12 +02:00
29b643168b
Unhide favicons in feed view 2024-08-02 16:09:01 +02:00
cde02ce5e2
Add article word count & limit intro length 2024-08-02 16:09:01 +02:00
4 changed files with 1343 additions and 7 deletions

View File

@ -465,11 +465,6 @@
line-height: 1;
}
#app-content .feed-view .utils .title {
background: none !important;
padding-left: 10px;
}
#app-content .utils .title h1 a {
/*text-overflow: ellipsis;*/
white-space: nowrap;

File diff suppressed because it is too large Load Diff

View File

@ -360,6 +360,10 @@ class Item extends Entity implements IAPI, \JsonSerializable
return json_decode($this->getCategoriesJson());
}
public function getWordCount(): int {
return self::countWords(strip_tags($this->getBody()));
}
/**
* Turns entity attributes into an array
*/
@ -384,11 +388,12 @@ class Item extends Entity implements IAPI, \JsonSerializable
'starred' => $this->isStarred(),
'lastModified' => $this->getLastModified(),
'rtl' => $this->getRtl(),
'intro' => $this->getIntro(),
'intro' => mb_substr($this->getIntro(), 0, 500),
'fingerprint' => $this->getFingerprint(),
'categories' => $this->getCategories(),
'sharedBy' => $this->getSharedBy(),
'sharedByDisplayName' => $this->getSharedByDisplayName()
'sharedByDisplayName' => $this->getSharedByDisplayName(),
'wordCount' => $this->getWordCount(),
];
}
@ -755,4 +760,11 @@ class Item extends Entity implements IAPI, \JsonSerializable
stripos($mime, 'image/') !== false ||
stripos($mime, 'video/') !== false));
}
private static function countWords(string $text): int
{
$text = preg_replace('/[\pP\pM]/u', '', $text); // strip punctuation (P) and combination marks (M)
$text = preg_replace('/[^\pL\pN]+/u', ' ', $text); // convert every sequence of non-letters (L) and non-numbers (N) to a space
return 1 + substr_count($text, ' ');
}
}

View File

@ -62,6 +62,9 @@
{{ item.pubDate*1000 | relativeTimestamp }}
</time>
</li>
<li class="only-in-compact">
<span class="date">{{ item.wordCount }} words</span>
</li>
<li ng-click="Content.toggleStar(item.id)"
class="util"
news-stop-propagation>