Advertisement
Guest User

Untitled

a guest
Dec 21st, 2011
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.35 KB | None | 0 0
  1. // filebot -script "http://filebot.sourceforge.net/data/shell/banners.groovy" -trust-script /path/to/media/
  2.  
  3. /*
  4. * Fetch series and season banners for all tv shows
  5. */
  6. import static net.sourceforge.filebot.WebServices.*
  7.  
  8.  
  9. def fetchBanner(outputDir, outputName, series, bannerType, bannerType2, season = null) {
  10. // select and fetch banner
  11. def banner = TheTVDB.getBanner(series, bannerType, bannerType2, season, Locale.ENGLISH, 0)
  12. if (banner == null) {
  13. println "Banner not found: $outputName"
  14. return null
  15. }
  16.  
  17. println "Fetching banner $banner"
  18. return banner.url.saveAs(new File(outputDir, outputName + ".jpg"))
  19. }
  20.  
  21.  
  22. def fetchNfo(outputDir, outputName, series) {
  23. def info = TheTVDB.getSeriesInfo(series, Locale.ENGLISH)
  24. println "Writing nfo $info"
  25.  
  26. new File(outputDir, outputName + ".nfo").withWriter{ out ->
  27. out.println("Name: $info.name")
  28. out.println("IMDb: http://www.imdb.com/title/tt${info.imdbId.pad(7)}")
  29. out.println("Actors: ${info.actors.join(', ')}")
  30. out.println("Genere: ${info.genre.join(', ')}")
  31. out.println("Language: ${info.language.displayName}")
  32. out.println("Overview: $info.overview")
  33. }
  34. }
  35.  
  36.  
  37. def fetchSeriesBannersAndNfo(dir, series, seasons) {
  38. println "Fetch nfo and banners for $series / Season $seasons"
  39.  
  40. // fetch nfo
  41. fetchNfo(dir, series.name, series)
  42.  
  43. // fetch series banner, fanart, posters, etc
  44. fetchBanner(dir, "folder", series, "poster", "680x1000")
  45. fetchBanner(dir, "banner", series, "series", "graphical")
  46.  
  47. // fetch highest resolution fanart
  48. ["1920x1080", "1280x720"].findResult{ bannerType2 -> fetchBanner(dir, "fanart", series, "fanart", bannerType2) }
  49.  
  50. // fetch season banners
  51. seasons.each { s ->
  52. fetchBanner(dir, "folder-S${s.pad(2)}", series, "season", "season", s)
  53. fetchBanner(dir, "banner-S${s.pad(2)}", series, "season", "seasonwide", s)
  54. }
  55. }
  56.  
  57.  
  58. args.eachMediaFolder() { dir ->
  59. println "Processing $dir"
  60. def videoFiles = dir.listFiles{ it.isVideo() }
  61.  
  62. def seriesName = detectSeriesName(videoFiles)
  63. def seasons = videoFiles.findResults { guessEpisodeNumber(it)?.season }.unique()
  64.  
  65. if (seriesName == null) {
  66. print "Enter Query: "
  67. seriesName = console.readLine()
  68. }
  69.  
  70. def options = TheTVDB.search(seriesName)
  71. if (options.isEmpty()) {
  72. println "TV Series not found: $seriesName"
  73. return;
  74. }
  75.  
  76. fetchSeriesBannersAndNfo(dir, options[0], seasons)
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement