Skip to content

Commit

Permalink
fix highlighting of genericVideos & movies with custom images
Browse files Browse the repository at this point in the history
  • Loading branch information
dularion committed Feb 28, 2021
1 parent 2dfde79 commit 28142de
Show file tree
Hide file tree
Showing 14 changed files with 69 additions and 14 deletions.
Expand Up @@ -21,6 +21,7 @@ angular.module('streama').controller('adminVideoCtrl', [
var data = response.data;
$scope.video = data;
$scope.loading = false;
$scope.highlightOnDashboard = modalService.newReleaseModal.bind(modalService, $scope.video, 'genericVideo');
});
}

Expand Down
Expand Up @@ -10,6 +10,7 @@ angular.module('streama').controller('dashCtrl',
vm.loadingRecommendations = true;
vm.isDashSectionHidden = isDashSectionHidden;
vm.isDashType = isDashType;
vm.getNewReleaseBackdrop = getNewReleaseBackdrop;

$scope.$on('changedGenre', onChangedGenre);
$scope.$on('video.updateWatchlist', onVideoUpdateWatchlist);
Expand Down Expand Up @@ -259,4 +260,12 @@ angular.module('streama').controller('dashCtrl',
updateWatchlist(data.action, _.get(vm.watchlistEntry, 'list'), data.media, _.get(data.response, 'data'));
}

function getNewReleaseBackdrop(media){
if(media.backdrop_path){
return 'https://image.tmdb.org/t/p/original' + media.backdrop_path;
}else if(media.backdrop_image_src){
return media.backdrop_image_src;
}
}

});
Expand Up @@ -23,8 +23,7 @@ angular.module('streama').controller('modalNewReleaseCtrl', [
.then(function () {
alertify.success('Highlight complete.');
$uibModalInstance.close();
})
.error(function (err, status) {
}, function (err, status) {
console.log('%c error', 'color: deeppink; font-weight: bold; text-shadow: 0 0 5px deeppink;');
alertify.error(err.message);
});
Expand Down
Expand Up @@ -114,7 +114,6 @@ <h1>
<div class="col-sm-4 col-lg-3" >
<img ng-if="!movie.poster_path && !movie.poster_image_src" ng-src="{{basePath}}assets/poster-not-found.png"/>
<img ng-if="movie.poster_path" ng-src="{{movie.poster_path}}"/>
<img ng-if="movie.poster_image_src" ng-src="{{movie.poster_image_src}}"/>
</div>
</div>

Expand Down
Expand Up @@ -25,7 +25,8 @@ <h1>Dashboard Highlights</h1>
<td>{{notification.dateCreated | date:'short'}}</td>
<td>
<img ng-if="notification.media.poster_path" ng-src="{{notification.media.poster_path}}" style="max-width: 50px; margin-right: 10px;"/>
{{notification.media.title || notification.media.name}} <span ng-if="notification.media.release_date">({{notification.media.release_date.substring(0,4)}})</span>
{{notification.media.title || notification.media.name}}
<span ng-if="notification.media.release_date">({{notification.media.release_date.substring(0,4)}})</span>
</td>
<td>
{{notification.description}}</span>
Expand Down
Expand Up @@ -37,6 +37,7 @@ <h1>
<li><a ng-click="openVideoModal()">Edit info</a></li>
<li><a ng-click="manageFiles(video)">Manage Files</a></li>
<li><a ng-click="delete()">Delete Video</a></li>
<li><a ng-click="highlightOnDashboard()">Highlight on Dashboard</a></li>
</ul>
</span>
</div>
Expand Down
Expand Up @@ -10,7 +10,7 @@ <h3 class="new_releases_header">{{'DASHBOARD.NEW_RELEASES' | translate}}</h3>
<img class="poster-image" ng-src="{{newRelease.media.poster_path}}" class="pull-left">
</div>

<div class="image-background" style="background: url('https://image.tmdb.org/t/p/original{{newRelease.media.backdrop_path}}') no-repeat center; background-size: cover;">
<div class="image-background" style="background: url('{{vm.getNewReleaseBackdrop(newRelease.media)}}') no-repeat center; background-size: cover;">
<div>
<i ng-class="newRelease.media.inWatchlist ? 'remove-icon ion-android-remove-circle' : 'add-icon ion-android-add-circle'"
ng-click="vm.handleWatchlistUpdate(newRelease.media.inWatchlist ? 'removed' : 'added', newRelease.media)"></i>
Expand Down
Expand Up @@ -159,6 +159,26 @@
</div>
</div>


<div class="form-group">
<div class="col-sm-12">
<label>Backdrop Image</label>
<br/>
<div class="row">
<div class="col-sm-8">
<div class="upload-poster" ng-class="{'update-poster': movie.backdrop_image_src}" ng-model="manualPoster" class="btn btn-primary btn-block btn-lg"
ngf-change="uploadImage($files, 'backdrop_image')" ngf-select ngf-drop ngf-drag-over-class="dragover">
<span class="main-text">Upload Backdrop</span>
<span class="size-info">600x340 px</span>
<span ng-show="imageUpload.percentage">{{imageUpload.percentage}}%</span>
</div>
</div>
<div class="col-sm-4">
<img ng-show="movie.backdrop_image_src" ng-src="{{movie.backdrop_image_src}}"/>
</div>
</div>
</div>
</div>
</div>
</div>

Expand Down
2 changes: 1 addition & 1 deletion grails-app/assets/stylesheets/_dash.scss
Expand Up @@ -127,7 +127,7 @@ div.watchlist-button.ng-scope {
}
.owl-item{
.poster-image{
width: auto;
width: 342px;
}
}

Expand Down
14 changes: 12 additions & 2 deletions grails-app/controllers/streama/NotificationQueueController.groovy
Expand Up @@ -138,12 +138,18 @@ class NotificationQueueController {
def data = request.JSON
def movie
def tvShow
def genericVideo
def id = data.mediaId
def mediaType = data.mediaType
def videoToPlay = Video.get(data.videoToPlay?.id ?: data.mediaId)

if(mediaType == 'movie'){
movie = Movie.get(id)
}else{
}
else if(mediaType == 'genericVideo'){
genericVideo = GenericVideo.get(id)
}
else{
tvShow = TvShow.get(id)
}

Expand All @@ -159,7 +165,7 @@ class NotificationQueueController {
return
}

if(!movie && !tvShow){
if(!movie && !tvShow && !genericVideo){
render status: NOT_ACCEPTABLE
return
}
Expand All @@ -169,6 +175,9 @@ class NotificationQueueController {
if(movie){
movie == movie
}
if(genericVideo){
genericVideo == genericVideo
}
if(tvShow){
tvShow == tvShow
}
Expand All @@ -187,6 +196,7 @@ class NotificationQueueController {
notification.description = data.description
notification.movie = movie
notification.tvShow = tvShow
notification.genericVideo = genericVideo
notification.videoToPlay = videoToPlay
notification.save(failOnError: true)

Expand Down
1 change: 1 addition & 0 deletions grails-app/domain/streama/NotificationQueue.groovy
Expand Up @@ -8,6 +8,7 @@ class NotificationQueue {
Boolean isCompleted = false

Movie movie
GenericVideo genericVideo
TvShow tvShow
Video videoToPlay

Expand Down
8 changes: 4 additions & 4 deletions grails-app/domain/streama/Video.groovy
Expand Up @@ -166,14 +166,14 @@ class Video implements SimpleInstance{
String TMDB_BASE_PATH = "https://image.tmdb.org/t/p/w${width}/"

if(this instanceof Episode){
if(this.show.poster_path?.startsWith('http')){
return this.show.poster_path
}
return TMDB_BASE_PATH + this.show.poster_path
return this.show?.getPosterPath()
}else if(this instanceof GenericVideo){
return this.poster_image?.getSrc()
}

if(this instanceof Movie && this.poster_image){
return this.poster_image?.getSrc()
}
if(this.poster_path?.startsWith('http')){
return this.poster_path
}
Expand Down
17 changes: 15 additions & 2 deletions grails-app/services/streama/marshallers/MarshallerService.groovy
Expand Up @@ -95,9 +95,17 @@ class MarshallerService {

returnArray['id'] = notificationQueue.id
returnArray['dateCreated'] = notificationQueue.dateCreated
returnArray['movie'] = notificationQueue.movie
returnArray['movie'] = notificationQueue.movie ?: notificationQueue.genericVideo
returnArray['tvShow'] = notificationQueue.tvShow
returnArray['media'] = notificationQueue.tvShow ? notificationQueue.tvShow : notificationQueue.movie
if(notificationQueue.tvShow){
returnArray['media'] = notificationQueue.tvShow
}
else if(notificationQueue.movie){
returnArray['media'] = notificationQueue.movie
}
else if(notificationQueue.genericVideo){
returnArray['media'] = notificationQueue.genericVideo
}
returnArray['description'] = notificationQueue.description
returnArray['videoToPlayId'] = notificationQueue.videoToPlay?.id
returnArray['isCompleted'] = notificationQueue.isCompleted
Expand All @@ -123,6 +131,7 @@ class MarshallerService {
returnArray['popularity'] = movie.popularity
returnArray['imdb_id'] = movie.imdb_id
returnArray['poster_image_src'] = movie.poster_image?.src
returnArray['backdrop_image_src'] = movie.backdrop_image?.src
returnArray['genre'] = movie.genre

returnArray['files'] = movie.files.findAll { it.extension != '.srt' && it.extension != '.vtt' }
Expand Down Expand Up @@ -156,6 +165,7 @@ class MarshallerService {
returnArray['release_date'] = genericVideo.release_date
returnArray['poster_image_src'] = genericVideo.poster_image?.src
returnArray['backdrop_image_src'] = genericVideo.backdrop_image?.src
returnArray['poster_path'] = genericVideo.getPosterPath()
returnArray['trailerKey'] = genericVideo.trailerKey

returnArray['files'] = genericVideo.files.findAll { it.extension != '.srt' && it.extension != '.vtt' }
Expand Down Expand Up @@ -397,6 +407,7 @@ class MarshallerService {
returnArray['tags'] = movie.tags
returnArray['genre'] = movie.genre
returnArray['poster_image_src'] = movie.poster_image?.src
returnArray['backdrop_image_src'] = movie.backdrop_image?.src
returnArray['status'] = movie.getStatus()

returnArray['inWatchlist'] = movie.inWatchlist()
Expand Down Expand Up @@ -512,6 +523,7 @@ class MarshallerService {
returnArray['files'] = movie.files.findAll { it.extension != '.srt' && it.extension != '.vtt' }
returnArray['subtitles'] = movie.files.findAll { it.extension == '.srt' || it.extension == '.vtt' }
returnArray['poster_image_src'] = movie.poster_image?.src
returnArray['backdrop_image_src'] = movie.backdrop_image?.src

if (movie.apiId) {
returnArray['similarMovies'] = movie.similarMovies
Expand Down Expand Up @@ -666,6 +678,7 @@ class MarshallerService {

returnArray['title'] = genericVideo.title
returnArray['release_date'] = genericVideo.release_date
returnArray['poster_path'] = genericVideo.getPosterPath()
returnArray['poster_image_src'] = genericVideo.poster_image?.src
returnArray['backdrop_image_src'] = genericVideo.backdrop_image?.src
returnArray['trailerKey'] = genericVideo.trailerKey
Expand Down
Expand Up @@ -58,6 +58,7 @@ class MediaDetailMarshallerService {
result['popularity'] = movie.popularity
result['imdb_id'] = movie.imdb_id
result['poster_image_src'] = movie.poster_image?.src
result['backdrop_image_src'] = movie.backdrop_image?.src
result['genre'] = movie.genre

result['files'] = movie.files.findAll{it.extension != '.srt' && it.extension != '.vtt'}
Expand Down

0 comments on commit 28142de

Please sign in to comment.