Skip to content

Commit

Permalink
Video player doesn't load or play movies #206
Browse files Browse the repository at this point in the history
Movie source file doesn't get attached #207
  • Loading branch information
dularion committed Aug 9, 2016
1 parent 6a50dab commit 72c5927
Show file tree
Hide file tree
Showing 14 changed files with 128 additions and 8 deletions.
6 changes: 2 additions & 4 deletions grails-app/controllers/streama/MovieController.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,8 @@ class MovieController {
respond movieInstance, [status: CREATED]
}

def show(Movie movieInstance) {
JSON.use('fullMovie') {
respond movieInstance, [status: OK]
}
def show(Movie movie) {
respond movie, [status: OK]
}

@Transactional
Expand Down
5 changes: 3 additions & 2 deletions grails-app/controllers/streama/VideoController.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ class VideoController {

def show(Video videoInstance){
JSON.use('player') {
respond videoInstance, [status: OK]
render (videoInstance as JSON)
}
}

Expand Down Expand Up @@ -218,8 +218,9 @@ class VideoController {
file.size = Files.size(givenPath)
def extensionIndex = params.localFile.lastIndexOf('.')
file.extension = params.localFile[extensionIndex..-1];
file.save()
file.save(failOnError: true, flush: true)
videoInstance.addToFiles(file)
videoInstance.save(failOnError: true, flush: true)
respond file
}
}
27 changes: 27 additions & 0 deletions grails-app/domain/streama/Video.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ package streama

class Video {

def springSecurityService

Date dateCreated
Date lastUpdated

Expand Down Expand Up @@ -39,4 +41,29 @@ class Video {
}
return false
}

def getViewingStatus(){
ViewingStatus.findByVideoAndUser(this, springSecurityService.currentUser)
}

def getNextEpisode(){
if(!(this instanceof Episode)){
return
}

Episode episode = (Episode) this

Video nextEpisode = episode.show.episodes?.find{
return (it.episode_number == episode.episode_number+1 && it.season_number == episode.season_number)
}
if(!nextEpisode){
nextEpisode = episode.show.episodes?.find{
return (it.season_number == episode.season_number+1 && it.episode_number == 1)
}
}

if(nextEpisode && nextEpisode.files){
return nextEpisode
}
}
}
7 changes: 7 additions & 0 deletions grails-app/views/episode/_episode.gson
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import streama.Episode

model {
Episode episode
}

json g.render(episode)
8 changes: 8 additions & 0 deletions grails-app/views/episode/index.gson
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import streama.Episode

model {
Iterable<Episode> episodeList
}

json tmpl.episode(episodeList ?: [])

13 changes: 13 additions & 0 deletions grails-app/views/episode/show.gson
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import streama.Episode

model {
Episode episode
}

json g.render(episode, [deep:true, excludes: ['files']]){
files episode.files.findAll{it.extension != '.srt' && it.extension != '.vtt'}
subtitles episode.files.findAll{it.extension == '.srt' || it.extension == '.vtt'}
hasFiles episode.files ? true : false
nextEpisode {id episode.getNextEpisode()?.id }
viewedStatus episode.getViewingStatus()
}
10 changes: 10 additions & 0 deletions grails-app/views/file/_file.gson
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import streama.File

model {
File file
}

json g.render(file){

src file.getSrc()
}
8 changes: 8 additions & 0 deletions grails-app/views/file/index.gson
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import streama.File

model {
Iterable<File> fileList
}

json tmpl.file(fileList ?: [])

7 changes: 7 additions & 0 deletions grails-app/views/file/show.gson
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import streama.File

model {
File file
}

json tmpl.file(file)
4 changes: 3 additions & 1 deletion grails-app/views/movie/_movie.gson
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@ model {
Movie movie
}

json g.render(movie, [deep:true])
json g.render(movie, [deep:true]){
hasFiles movie.files ? true : false
}
6 changes: 5 additions & 1 deletion grails-app/views/movie/show.gson
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,8 @@ model {
Movie movie
}

json tmpl.movie(movie)
json g.render(movie, [deep: true, excludes: ['files']]){
hasFiles movie.files ? true : false
files movie.files.findAll{it.extension != '.srt' && it.extension != '.vtt'}
subtitles movie.files.findAll{it.extension == '.srt' || it.extension == '.vtt'}
}
7 changes: 7 additions & 0 deletions grails-app/views/video/_video.gson
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import streama.Video

model {
Video video
}

json g.render(video)
8 changes: 8 additions & 0 deletions grails-app/views/video/index.gson
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import streama.Video

model {
Iterable<Video> videoList
}

json tmpl.video(videoList ?: [])

20 changes: 20 additions & 0 deletions grails-app/views/video/show.gson
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import streama.Episode
import streama.Video

model {
Video video
}

json g.render(video, [deep:true, excludes: ['files']]){
files video.files.findAll{it.extension != '.srt' && it.extension != '.vtt'}
subtitles video.files.findAll{it.extension == '.srt' || it.extension == '.vtt'}
hasFiles video.files ? true : false
viewedStatus video.getViewingStatus()

// if(video instanceof Episode){
//// nextEpisode {
//// id video.nextEpisode?.id
//// }
// }
}

0 comments on commit 72c5927

Please sign in to comment.