aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src
diff options
context:
space:
mode:
authorRigel Kent <sendmemail@rigelk.eu>2021-02-02 12:59:41 +0100
committerChocobozzz <chocobozzz@cpy.re>2021-02-04 09:04:47 +0100
commit3d4e112d16471703f51a542c0cc6e73a6f5db628 (patch)
treecb4a53a50f9bc14a87b62ccfa9d398feb4bbcbc8 /client/src
parentf6267b610145033ee26ca8a4a7c2b97eca65072e (diff)
downloadPeerTube-3d4e112d16471703f51a542c0cc6e73a6f5db628.tar.gz
PeerTube-3d4e112d16471703f51a542c0cc6e73a6f5db628.tar.zst
PeerTube-3d4e112d16471703f51a542c0cc6e73a6f5db628.zip
add best trending strategy based on Reddit's best
inspired from https://www.reddit.com/r/changelog/comments/7spgg0/best_is_the_new_hotness/ this implementation only adds freshness, and doesn't personalize based on subscribed communities yet.
Diffstat (limited to 'client/src')
-rw-r--r--client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html2
-rw-r--r--client/src/app/+videos/video-list/trending/video-trending-header.component.ts7
-rw-r--r--client/src/app/core/server/server.service.ts2
-rw-r--r--client/src/app/shared/shared-icons/global-icon.component.ts3
-rw-r--r--client/src/assets/images/feather/award.svg1
5 files changed, 13 insertions, 2 deletions
diff --git a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html
index 796aa12ed..48678a194 100644
--- a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html
+++ b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html
@@ -271,6 +271,7 @@
271 <option i18n value="/videos/overview">Discover videos</option> 271 <option i18n value="/videos/overview">Discover videos</option>
272 <optgroup i18n-label label="Trending pages"> 272 <optgroup i18n-label label="Trending pages">
273 <option i18n value="/videos/trending">Default trending page</option> 273 <option i18n value="/videos/trending">Default trending page</option>
274 <option i18n value="/videos/trending?alg=best" [disabled]="!trendingVideosAlgorithmsEnabledIncludes('best')">Best videos</option>
274 <option i18n value="/videos/trending?alg=hot" [disabled]="!trendingVideosAlgorithmsEnabledIncludes('hot')">Hot videos</option> 275 <option i18n value="/videos/trending?alg=hot" [disabled]="!trendingVideosAlgorithmsEnabledIncludes('hot')">Hot videos</option>
275 <option i18n value="/videos/trending?alg=most-viewed" [disabled]="!trendingVideosAlgorithmsEnabledIncludes('most-viewed')">Most viewed videos</option> 276 <option i18n value="/videos/trending?alg=most-viewed" [disabled]="!trendingVideosAlgorithmsEnabledIncludes('most-viewed')">Most viewed videos</option>
276 <option i18n value="/videos/trending?alg=most-liked" [disabled]="!trendingVideosAlgorithmsEnabledIncludes('most-liked')">Most liked videos</option> 277 <option i18n value="/videos/trending?alg=most-liked" [disabled]="!trendingVideosAlgorithmsEnabledIncludes('most-liked')">Most liked videos</option>
@@ -288,6 +289,7 @@
288 <label i18n for="trendingVideosAlgorithmsDefault">Default trending page</label> 289 <label i18n for="trendingVideosAlgorithmsDefault">Default trending page</label>
289 <div class="peertube-select-container"> 290 <div class="peertube-select-container">
290 <select id="trendingVideosAlgorithmsDefault" formControlName="default" class="form-control"> 291 <select id="trendingVideosAlgorithmsDefault" formControlName="default" class="form-control">
292 <option i18n value="best">Best videos</option>
291 <option i18n value="hot">Hot videos</option> 293 <option i18n value="hot">Hot videos</option>
292 <option i18n value="most-viewed">Most viewed videos</option> 294 <option i18n value="most-viewed">Most viewed videos</option>
293 <option i18n value="most-liked">Most liked videos</option> 295 <option i18n value="most-liked">Most liked videos</option>
diff --git a/client/src/app/+videos/video-list/trending/video-trending-header.component.ts b/client/src/app/+videos/video-list/trending/video-trending-header.component.ts
index 33eaa2c1e..a4a1e358f 100644
--- a/client/src/app/+videos/video-list/trending/video-trending-header.component.ts
+++ b/client/src/app/+videos/video-list/trending/video-trending-header.component.ts
@@ -36,6 +36,13 @@ export class VideoTrendingHeaderComponent extends VideoListHeaderComponent imple
36 36
37 this.buttons = [ 37 this.buttons = [
38 { 38 {
39 label: $localize`:A variant of Trending videos based on the number of recent interactions, minus user history:Best`,
40 iconName: 'award',
41 value: 'best',
42 tooltip: $localize`Videos totalizing the most interactions for recent videos, minus user history`,
43 hidden: true
44 },
45 {
39 label: $localize`:A variant of Trending videos based on the number of recent interactions:Hot`, 46 label: $localize`:A variant of Trending videos based on the number of recent interactions:Hot`,
40 iconName: 'flame', 47 iconName: 'flame',
41 value: 'hot', 48 value: 'hot',
diff --git a/client/src/app/core/server/server.service.ts b/client/src/app/core/server/server.service.ts
index 39739afd0..11288fc54 100644
--- a/client/src/app/core/server/server.service.ts
+++ b/client/src/app/core/server/server.service.ts
@@ -131,7 +131,7 @@ export class ServerService {
131 videos: { 131 videos: {
132 intervalDays: 0, 132 intervalDays: 0,
133 algorithms: { 133 algorithms: {
134 enabled: [ 'hot', 'most-viewed', 'most-liked' ], 134 enabled: [ 'best', 'hot', 'most-viewed', 'most-liked' ],
135 default: 'most-viewed' 135 default: 'most-viewed'
136 } 136 }
137 } 137 }
diff --git a/client/src/app/shared/shared-icons/global-icon.component.ts b/client/src/app/shared/shared-icons/global-icon.component.ts
index def488df0..3af517927 100644
--- a/client/src/app/shared/shared-icons/global-icon.component.ts
+++ b/client/src/app/shared/shared-icons/global-icon.component.ts
@@ -71,7 +71,8 @@ const icons = {
71 'live': require('!!raw-loader?!../../../assets/images/feather/live.svg').default, 71 'live': require('!!raw-loader?!../../../assets/images/feather/live.svg').default,
72 'repeat': require('!!raw-loader?!../../../assets/images/feather/repeat.svg').default, 72 'repeat': require('!!raw-loader?!../../../assets/images/feather/repeat.svg').default,
73 'message-circle': require('!!raw-loader?!../../../assets/images/feather/message-circle.svg').default, 73 'message-circle': require('!!raw-loader?!../../../assets/images/feather/message-circle.svg').default,
74 'codesandbox': require('!!raw-loader?!../../../assets/images/feather/codesandbox.svg').default 74 'codesandbox': require('!!raw-loader?!../../../assets/images/feather/codesandbox.svg').default,
75 'award': require('!!raw-loader?!../../../assets/images/feather/award.svg').default
75} 76}
76 77
77export type GlobalIconName = keyof typeof icons 78export type GlobalIconName = keyof typeof icons
diff --git a/client/src/assets/images/feather/award.svg b/client/src/assets/images/feather/award.svg
new file mode 100644
index 000000000..be70d5a13
--- /dev/null
+++ b/client/src/assets/images/feather/award.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-award"><circle cx="12" cy="8" r="7"></circle><polyline points="8.21 13.89 7 23 12 20 17 23 15.79 13.88"></polyline></svg> \ No newline at end of file