Media Rover

Got a program that plays well with SABnzbd? Share it here!
avatarr
Newbie
Newbie
Posts: 29
Joined: April 17th, 2010, 9:46 pm

Re: Media Rover

Post by avatarr »

I figured it out. The reason I was having issues was because I never configured a post-processing scripts folder for sabnzbd since I wasn't running any scripts. What was confusing me was the fact that if you leave that particular part blank, the categories tab doesn't show a column for scripts (this is why I wasn't seeing this option). I changed the mediarover.conf file to make the category mediarover and created a category in sabnzbd called "mediarover" with the post-processing script episodesort.py and it seems to be working wonderfully. The last step is to set up a cron job to periodically scan for new shows. This is great. I love that it works so seamlessly. Great work and I look forward to the upcoming enhancements.
jkristoph
Newbie
Newbie
Posts: 19
Joined: June 6th, 2009, 1:59 pm

Re: Media Rover

Post by jkristoph »

Just letting y'all know how excited I am about the upcoming Media Rover release!!
Zypher82
Newbie
Newbie
Posts: 26
Joined: April 6th, 2010, 5:03 pm

Re: Media Rover

Post by Zypher82 »

Hi Everyone,

I have finished my config file as follows:

Code: Select all

[tv]
	# tv root directory
	# directory containing all tv shows to watch for
	# NOTE: multiple directories can be specified but must be comma separated 
	tv_root = "/volume1/video/TV",
I am getting an error when trying to install mediarover that I haven't defined a tv root directory, but as you see above, I have. Here is the error:

Code: Select all

DiskStation> python2.6 mediarover.py
2010-04-20 16:17 INFO - --- STARTING --- - __init__.py:93
2010-04-20 16:17 ERROR - You must declare at least one tv_root directory! - error.py:45
2010-04-20 16:17 ERROR - You must declare at least one tv_root directory! - __init__.py:99
Traceback (most recent call last):
  File "/volume1/MediaRover/mediarover/__init__.py", line 97, in main
    _process(config, options, args)
  File "/volume1/MediaRover/mediarover/__init__.py", line 129, in _process
    raise ConfigurationError("You must declare at least one tv_root directory!")
ConfigurationError: You must declare at least one tv_root directory!
Traceback (most recent call last):
  File "mediarover.py", line 19, in <module>
    mediarover.main()
  File "/volume1/MediaRover/mediarover/__init__.py", line 97, in main
    _process(config, options, args)
  File "/volume1/MediaRover/mediarover/__init__.py", line 129, in _process
    raise ConfigurationError("You must declare at least one tv_root directory!")
mediarover.error.ConfigurationError: You must declare at least one tv_root directory!
DiskStation>
You can see that I'm trying to install this on my Synology DS210j, which runs Linux.

Thanks for your help everyone!

- mike
Zypher82
Newbie
Newbie
Posts: 26
Joined: April 6th, 2010, 5:03 pm

Re: Media Rover

Post by Zypher82 »

Zypher82 wrote: Hi Everyone,

I have finished my config file as follows:

Code: Select all

[tv]
	# tv root directory
	# directory containing all tv shows to watch for
	# NOTE: multiple directories can be specified but must be comma separated 
	tv_root = "/volume1/video/TV",
I am getting an error when trying to install mediarover that I haven't defined a tv root directory, but as you see above, I have. Here is the error:

Code: Select all

DiskStation> python2.6 mediarover.py
2010-04-20 16:17 INFO - --- STARTING --- - __init__.py:93
2010-04-20 16:17 ERROR - You must declare at least one tv_root directory! - error.py:45
2010-04-20 16:17 ERROR - You must declare at least one tv_root directory! - __init__.py:99
Traceback (most recent call last):
  File "/volume1/MediaRover/mediarover/__init__.py", line 97, in main
    _process(config, options, args)
  File "/volume1/MediaRover/mediarover/__init__.py", line 129, in _process
    raise ConfigurationError("You must declare at least one tv_root directory!")
ConfigurationError: You must declare at least one tv_root directory!
Traceback (most recent call last):
  File "mediarover.py", line 19, in <module>
    mediarover.main()
  File "/volume1/MediaRover/mediarover/__init__.py", line 97, in main
    _process(config, options, args)
  File "/volume1/MediaRover/mediarover/__init__.py", line 129, in _process
    raise ConfigurationError("You must declare at least one tv_root directory!")
mediarover.error.ConfigurationError: You must declare at least one tv_root directory!
DiskStation>
You can see that I'm trying to install this on my Synology DS210j, which runs Linux.

Thanks for your help everyone!

- mike
Figured this out. I had to move my mediarover.config file to my /root/.mediarover directory. Anyways, now comes a different error. Any help?

Code: Select all

DiskStation> python2.6 mediarover.py
Traceback (most recent call last):
  File "mediarover.py", line 19, in <module>
    mediarover.main()
  File "/volume1/MediaRover/mediarover/__init__.py", line 75, in main
    config = read_config(config_dir)
  File "/volume1/MediaRover/mediarover/config.py", line 562, in read_config
    config = ConfigObj(os.path.join(path, "mediarover.conf"), configspec=spec)
  File "/volume1/MediaRover/mediarover/utils/configobj.py", line 1272, in __init__
    self._load(infile, configspec)
  File "/volume1/MediaRover/mediarover/utils/configobj.py", line 1355, in _load
    raise error
mediarover.utils.configobj.DuplicateError: Duplicate section name at line 169.
DiskStation>
Poag
Newbie
Newbie
Posts: 5
Joined: April 22nd, 2010, 6:02 am

Re: Media Rover

Post by Poag »

Very similar to the above. Running MR on OSX.

I get the following error when executing `python mediarover.py`

Traceback (most recent call last):
  File "mediarover.py", line 19, in
    mediarover.main()
  File "/Applications/mediarover/mediarover/__init__.py", line 75, in main
    config = read_config(config_dir)
  File "/Applications/mediarover/mediarover/config.py", line 562, in read_config
    config = ConfigObj(os.path.join(path, "mediarover.conf"), configspec=spec)
  File "/Applications/mediarover/mediarover/utils/configobj.py", line 1272, in __init__
    self._load(infile, configspec)
  File "/Applications/mediarover/mediarover/utils/configobj.py", line 1355, in _load
    raise error
mediarover.utils.configobj.DuplicateError: Duplicate keyword name at line 292.

Running against python version 2.6.4. But I have also tried against 2.5.1 and v3.
Poag
Newbie
Newbie
Posts: 5
Joined: April 22nd, 2010, 6:02 am

Re: Media Rover

Post by Poag »

I stand corrected. It seems OSX doesn't like files built on windows machines and copied to it remotly. Redid my config on the machine itself and it works ok now.


Except for the sorting script which gives the following error :(


2010-04-22 20:55 INFO - cleaning path '/Users/Pog/downloads/complete/Show of Nom/Season 8' of the extensions ['nfo', 'txt', 'sfv', 'srt', 'nzb', 'idx', 'log', 'par', 'par2', 'exe', 'bat', 'com', 'tbn', 'jpg', 'png', 'gif', 'info'] - filesystem.py:98
2010-04-22 20:55 DEBUG - deleting '/Users/Pog/downloads/complete/Show of Nom/Season 8/Show of Nom - 8x16.nzb'... - filesystem.py:148
2010-04-22 20:55 DEBUG - deleting '/Users/Pog/downloads/complete/Show of Nom/Season 8/Show.of.Nom.816.hr-dimension.nfo'... - filesystem.py:148
2010-04-22 20:55 DEBUG - deleting '/Users/Pog/downloads/complete/Show of Nom/Season 8/Show.of.Nom.816.hr-dimension.sfv'... - filesystem.py:148
2010-04-22 20:55 DEBUG - skipping '/Users/Pog/downloads/complete/Show of Nom/Season 8/Show.of.Nom.816.hr-dimension.srr'... - filesystem.py:152
2010-04-22 20:55 WARNING - unable to delete '/Users/Pog/downloads/complete/Show of Nom/Season 8' - filesystem.py:128
2010-04-22 20:55 ERROR - unable to remove download directory '/Users/Pog/downloads/complete/Show of Nom/Season 8' - episode.py:385
2010-04-22 20:55 INFO - moving download directory '/Users/Pog/downloads/complete/Show of Nom/Season 8' to '/Volumes/USB1/.trash/Season 8' - episode.py:389
Traceback (most recent call last):
File "/Applications/mediarover/episodesort.py", line 31, in
  episode.sort()
File "/Applications/mediarover/mediarover/scripts/sabnzbd/episode.py", line 129, in sort
  exit(fatal)
NameError: global name 'exit' is not defined

Now i assume it wont/can't delete the folder due to their being a srr file in the folder.

Would adding srr to the file list in the config resolve this problem?
Last edited by Poag on April 23rd, 2010, 2:34 am, edited 1 time in total.
jansverre
Newbie
Newbie
Posts: 14
Joined: January 11th, 2010, 8:11 pm

Re: Media Rover

Post by jansverre »

Hi. I have been using mediarover for some time now and love it. However after the crap with newzbin nothing is downloaded for me anymore. Therefore I tried seting up with nzbs.org and nzbmatrix.com - I make rss feed with api keys and everything as I think I am supposed to after reading on their websites, but I get many errors like unsupported item title format and when it finds series Im watchin it givves me a socket error (??) error no 10061 can't conect to target host and then a lot of error messages ..

Anyone knows what Im doing wrong here?

never mind :p it helps to set root to localhost instead of loalhost :D
Last edited by jansverre on April 23rd, 2010, 1:28 pm, edited 1 time in total.
jmagg
Newbie
Newbie
Posts: 5
Joined: April 21st, 2010, 5:54 pm

Re: Media Rover

Post by jmagg »

MR is not using my .ignore files. I'm sure it is probably user error. I woke up to a whole season downloaded that I already have. (I move past seasons to a different drive.) I have the .ignore file in the series folder. Should it be in the season folder?
e.g. Show name/.ignore/Season 4 or Show name/Season 4/.ignore?

BTW, Kierse, you rock.

jmagg
wally007
Release Testers
Release Testers
Posts: 155
Joined: August 28th, 2009, 5:24 pm

Re: Media Rover

Post by wally007 »

jmagg wrote: MR is not using my .ignore files. I'm sure it is probably user error. I woke up to a whole season downloaded that I already have. (I move past seasons to a different drive.) I have the .ignore file in the series folder. Should it be in the season folder?
e.g. Show name/.ignore/Season 4 or Show name/Season 4/.ignore?

BTW, Kierse, you rock.

jmagg
no. .ignore file has to be in /tv/show_name/.ignore

you specify which seasons you want to ignore INSIDE the file. re-read kierse' instructions.

When u run python -mediarover.py in Terminal you'll see in the beginning how many and which .ignore files MR found.
User avatar
kierse
Sr. Member
Sr. Member
Posts: 254
Joined: March 5th, 2009, 11:59 pm
Location: Canada
Contact:

Re: Media Rover

Post by kierse »

Hey Zypher82,
Zypher82 wrote:

Code: Select all

DiskStation> python2.6 mediarover.py
Traceback (most recent call last):
  File "mediarover.py", line 19, in <module>
    mediarover.main()
  File "/volume1/MediaRover/mediarover/__init__.py", line 75, in main
    config = read_config(config_dir)
  File "/volume1/MediaRover/mediarover/config.py", line 562, in read_config
    config = ConfigObj(os.path.join(path, "mediarover.conf"), configspec=spec)
  File "/volume1/MediaRover/mediarover/utils/configobj.py", line 1272, in __init__
    self._load(infile, configspec)
  File "/volume1/MediaRover/mediarover/utils/configobj.py", line 1355, in _load
    raise error
mediarover.utils.configobj.DuplicateError: Duplicate section name at line 169.
DiskStation>
MR uses a third part library to parse the config file.  It appears to be dying because you have a duplicate section name in your config file.  Make sure you don't have have any duplicate sections names (lines wrapped in [ ] are sections, ie. [tv], [source], etc).  If you can't find any problems, post your config and I'll have a look at it.

Kierse
User avatar
kierse
Sr. Member
Sr. Member
Posts: 254
Joined: March 5th, 2009, 11:59 pm
Location: Canada
Contact:

Re: Media Rover

Post by kierse »

Poag wrote:

Code: Select all

...
2010-04-22 20:55 DEBUG - skipping '/Users/Pog/downloads/complete/Show of Nom/Season 8/Show.of.Nom.816.hr-dimension.srr'... - filesystem.py:152
...
2010-04-22 20:55 INFO - moving download directory '/Users/Pog/downloads/complete/Show of Nom/Season 8' to '/Volumes/USB1/.trash/Season 8' - episode.py:389
Traceback (most recent call last):
 File "/Applications/mediarover/episodesort.py", line 31, in <module>
   episode.sort()
 File "/Applications/mediarover/mediarover/scripts/sabnzbd/episode.py", line 129, in sort
   exit(fatal)
NameError: global name 'exit' is not defined
Are you running the latest release of Media Rover, 0.4.1?  I thought this problem had been corrected.  In any case, you can ignore it as MR has already successfully sorted the episode.
Poag wrote: Now i assume it wont/can't delete the folder due to their being a srr file in the folder.
Would adding srr to the file list in the config resolve this problem?
Yes, that's correct.  MR consults the list of ignored_extensions (in your config file) when cleaning up after an episode is sorted.  It deletes any/all files with an extensions found in this list.  If it finds a file that isn't in the list, it moves the containing directory to a special .trash directory located in your first configured tv root folder.  If you add srr to the ignored_extensions list, it will be able to delete the original download folder in the future.

Kierse
User avatar
kierse
Sr. Member
Sr. Member
Posts: 254
Joined: March 5th, 2009, 11:59 pm
Location: Canada
Contact:

Re: Media Rover

Post by kierse »

jmagg wrote: MR is not using my .ignore files. I'm sure it is probably user error. I woke up to a whole season downloaded that I already have. (I move past seasons to a different drive.) I have the .ignore file in the series folder. Should it be in the season folder?
e.g. Show name/.ignore/Season 4 or Show name/Season 4/.ignore?

BTW, Kierse, you rock.

jmagg
Hey jmagg,

As wally007 already mentioned, the .ignore files go in the series directory, not the season.  This feature is (I suspect) little used and poorly documented (as most things are with MR :( ) so let me try and improve that a bit:

.ignore files
  • go in the series directory
  • allow you to ignore an entire series by placing a * in the file, or
  • allow you to ignore specific seasons by placing each season number on its own line
Kierse
Poag
Newbie
Newbie
Posts: 5
Joined: April 22nd, 2010, 6:02 am

Re: Media Rover

Post by Poag »

kierse wrote:
Are you running the latest release of Media Rover, 0.4.1?  I thought this problem had been corrected.  In any case, you can ignore it as MR has already successfully sorted the episode.
Thanks Kierse,

I am indeed using the 0.4.1 release. Although the error occurs all the files get moved  correctly. So it doesn't appear to be a problem :s


Works great tho :) I was previously running RSS feeds to keep my shows updated, but i kept getting duplicates, MR saves my bandwidth! \o/
mrgreaper
Newbie
Newbie
Posts: 21
Joined: April 17th, 2008, 11:39 am

Re: Media Rover

Post by mrgreaper »

ok i have just ditched episode butler (rip little butler) due to the delay in getting episodes from newzbin now

i emailed the creator of media rover with some questions but got no reply (not surprising or annoying, people are busy)
so i thought "ill quickly try it"
4 hours later im pulling my hair out

heres my config file,

Code: Select all

[ui]
	#templates_dir = templates/
	#template = default

	[[server]]

		# NOTE: defaults to 8081
		#server.socket_port = 8081

[logging]

	# sorting error log
	# when sorting a download and a fatal error is encountered,
	# produce an error log containing all logged data.
	# NOTE: defaults to True
	#generate_sorting_log = True

[tv]

	# tv root directory
	# directory containing all tv shows to watch for
	# NOTE: multiple directories can be specified but must be comma separated 
	tv_root = /media/filehouse/complete/TV/

	# umask value used when creating any files or folders.  This option is 
	# used by the sorting script when creating series or season directories
	# NOTE: defaults to 022
	#umask = 022

	# download category
	# NOTE: defaults to 'tv'
	#category = tv

	# download priority
	# OPTIONS: normal, high, low, force
	# NOTE: defaults to normal
	#priority = normal

	# ignore series metadata
	# ie. ignore year, country of origin, etc commonly found between ()
	#	Lost (2004)
	#	Battlestar Galactica (2004) or Battlestar Galactica (1978)
	#	The Office (US)
	# NOTE: defaults to True
	#ignore_series_metadata = True

	# ignored file extensions (used when sorting downloads)
	# NOTE: defaults to: nfo,txt,sfv,srt,nzb,idx,log,par,par2,exe,bat,com,tbn,jpg,png,gif,info
	#ignored_extensions = nfo,txt,sfv,srt,nzb,idx,log,par,par2,exe,bat,com,tbn,jpg,png,gif,info

	[[multiepisode]]

		# allow multiepisode downloads
		# NOTE: defaults to True
		#allow = True

		# aggressively schedule downloads based on prefer flag
		# WARNING: SETTING THIS OPTION TO TRUE MAY RESULT IN EPISODES BEING DELETED
		#
		# when set to True, Media Rover becomes more aggressive in scheduling downloads and 
		# cleaning up unnecessary data.  Here's how it's used:
		#
		#   If you prefer single episodes =>
		#      aggresive = True
		#      prefer = False
		#    
		#    - this will cause Media Rover to download single episodes that already exist on disk 
		#      as part of a multiepisode.  Once all the individual parts are on disk, Media Rover
		#      will attempt to delete the multiepisode
		#
		#  If you prefer multiepisodes =>
		#     aggressive = True
		#     prefer = True
		#
		#   - this will cause Media Rover to download multiepisodes when available and attempt
		#     to delete any/all individual episodes.
		#
		# NOTE: defaults to False
		#aggressive = False

		# prefer multiepisode files over individual files
		#
		# ATTENTION: this flag works in conjunction with the aggressive flag above.  It is ignored
		# unless the aggressive flag is set.  A value of True indicates that you prefer multiepisodes
		# over single episodes whenever possible.  A value of False indicates that you prefer single
		# episodes over multiepisodes whenever possible.  When the aggressive flag is set, Media 
		# Rover will make all attempts to see that your specified preference (single or multi episodes)
		# is met.
		#
		# NOTE: defaults to False
		#prefer = False

	# series specific filter options
	# usage: in order to specify filters for a given series, define
	# a new subsection with the series name.  Define all filter rules
	# within it.
	#
	# Section layout:
	#
	#  [[ filter ]]
	#
	#     [[[ series_name_1 ]]]
	#        skip = <boolean>
	#        ignore = <list>
	#        alias = <list>
	#
	#     [[[ series_name_2 ]]]
	#        skip = <boolean>
	#        ignore = <list>
	#        alias = <list>
	#
	#     ...
	#     ..
	#
	#     [[[ series_name_N ]]]
	#        skip = <boolean>
	#        ignore = <list>
	#        alias = <list>
	#
	# Options:
	#  filter:      skip
	#  values:      True or False
	#  default:     False
	#  description: ignore TV series entirely (won't download any new episodes).
	#
	#  filter:      ignore
	#  values:      comma separated list (ie. 1,2,3,4)
	#  default:     none (empty list)
	#  description: comma separated list of seasons to ignore when downloading new episode
	#
	#  filter:      alias
	#  values:      comma separated list (ie. 1,2,3,4)
	#  default:     none (empty list)
	#  description: comma separated list of aliases that will be used to match nzb titles 
	#               when downloading new episodes. For example:
	#
   #               [[ filter ]]
	#                  [[[ The Show Name ]]]
	#                    alias = "Show Name", "Show Name, The"
	#
	# ATTENTION: subsection names should exactly match series folder on disk in order to
	#            guarantee consistent application of filters
	#
	# NOTE: SOME filters can optionally be stored on the filesystem in the series directory.  See
	#       http://wiki.github.com/kierse/mediarover/config-filter for more details
	#
	# See http://wiki.github.com/kierse/mediarover/config-filter for examples
	# 
	[[filter]]
		
	[[template]]

		#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
		# NOTE: Replacing a template variable with its uppercase equivalent 
		# (ie. $(series)s vs $(SERIES)s) will cause Media Rover to output 
		# uppercase data (where relevant).  For example:
		#
		#  $(season_episode_1)s => s01e03
		#  $(SEASON_EPISODE_1)s => S01E03
		#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#

		# series naming pattern
		# used when creating series directories
		# 
		#  $(series)s  => "Series Name"
		#  $(series.)s => "Series.Name"
		#  $(series_)s => "Series_Name"
		#
		# NOTE: defaults to '$(series)s'
		#series = $(series)s

		# series season naming pattern
		# used when creating season directories
		#
		#  $(season)d          => 1
		#  $(season)02d        => 01
		#  Season $(season)02d => Season 01
		#
		# NOTE: defaults to 's$(season)02d'
		#season = s$(season)02d

		# episode title pattern
		# used when renaming downloaded episodes
		#
		#  $(title)s  => 'Hello World!'
		#  $(title.)s => 'Hello.World!'
		#  $(title_)s => 'Hello_World!'
		# 
		# NOTE: defaults to '$(title)s'
		#title = $(title)s

		# smart episode title options: (used in conjunction with above title pattern option)
		# NOTE: this variable can be used to generate an intelligent episode title.  If an 
		#       episode title has been found, the pattern will be honoured.  Otherwise, it 
		#       will be replaced with an empty string.
		#
		#  $(smart_title)s = ' - $(title)s' => ' - Hello World!'
		#
		# NOTE: defaults to ' - $(title)s'
		#smart_title = ' - $(title)s'

		# series episode naming pattern
		# this pattern is the template used when renaming SERIES episodes. You may use any
		# of the above naming patterns in constructing the file naming pattern 
		#
		#  $(episode)d          => 3
		#  $(episode)02d        => 03
		#  $(season_episode_1)s => s01e03
		#  $(season_episode_2)s => 1x03
		#
		# NOTE: as a bare minimum, the pattern must contain ONE of the above episode numbering 
		#       patterns in order to be valid.  Without this restriction, accurately identifying
		#       episodes on disk would be next to impossible
		#
		# NOTE: defaults to '$(series)s - $(season_episode_1)s$(smart_title)s'
		#series_episode = '$(series)s - $(season_episode_1)s$(smart_title)s'

		# daily episode naming pattern
		# this pattern is the template used when renaming DAILY episodes.  You may use any
		# of the above naming patterns to constructing the file naming pattern
		#
		#  $(daily)s  => 20090112
		#  $(daily.)s => 2009.01.12
		#  $(daily-)s => 2009-01-12
		#  $(daily_)s => 2009_01_12
		#
		# NOTE: as a bare minimum, the pattern must contain ONE of the above daily numbering
		#       patterns in order to be valid.  Without this restriction, accurately identifying
		#       daily episodes on disk would be next to impossible
		#
		# NOTE: defaults to '$(series)s - $(daily-)s$(smart_title)s'
		#daily_episode = '$(series)s - $(daily-)s$(smart_title)s'

# consumable nzb RSS source feeds
# usage: define one or more new subsections under the appropriate plugin.  Each subsection consists
# of a user defined text label, a url pointing to a RSS feed, and zero or more optional arguments.
#
# Section layout:
#
#  [ source ]
#
#     [[ plugin_1 ]]
#
#        # source 1
#        [[[ user_label_1 ]]]
#        
#        	# required
#        	url = http://path/to/rss/feed/...
#        
#        	# optional
#        	timeout = 60 # in seconds
#        
#        # source 2
#        [[[ user_label_2 ]]]
#        	url = http://path/to/rss/feed/...
#        	timeout = 60 # in seconds
#
#     [[ plugin_2 ]]
#        ...
#        ..
#
# Available source plugins:
#
#  newzbin   - http://newzbin.com
#  tvnzb     - http://www.tvnzb.com
#  mytvznb   - any version 2.5 site
#  nzbs      - http://www.nzbs.org
#  nzbmatrix - http://nzbmatrix.com
#
# See http://wiki.github.com/kierse/mediarover/config-source for examples
#
# ATTENTION: you must declare at least one source
[source]

	# default timeout
	# NOTE defaults to 60 seconds
	#default_timeout = 60

	# newzbin.com RSS feeds go here
	[[ newzbin ]]

	# tvnzb.com RSS feeds go here
	[[ tvnzb ]]

	# mytvnzb RSS feeds go here
	[[ mytvnzb ]]

	# nzbs.org RSS feeds go here
	[[ nzbs ]]
[[[ divx ]]]
url = http://nzbs.org/rss.php?catid=1&i=XXXXXX&h=XXXXXXXXXXXXXXXXXXXX&dl=1

	# nzbmatrix.com RSS feeds go here
	[[ nzbmatrix ]]
[[[ tv ]]]
url = http://rss.nzbmatrix.com/rss.php?page=download&username=XXXXXX&apikey=XXXXXXXXXXXXXXXXXX&subcat=6

# binary newsreader consumable queue
# ATTENTION: you must declare at least one queue
#
#  [[sabnzbd]]
#
#    # required
#    root = http://localhost[:PORT]/sabnzbd
#    api_key = <key> # SABnzbd+ 0.4.9 and greater!
#
#    # optional 
#    username = <username>
#    password = <password>
#    backup_dir = /path/to/sabnzbd/nzb_backup_dir
#
# NOTE: if backup_dir is not specified, failed downloads may be rescheduled by Media Rover
[queue]
	
	[[sabnzbd]]
		root = http://192.168.1.119:8083/sabnzbd    (NOTE i tried localhost here)
		api_key = xxxxxxxxxxxxxxxxxxxxxxxxx (NOTE my api is here i have XXXXXX out all private data)
		backup_dir = 
		#username = xxxx
		#password = xxxxxxx

[__SYSTEM__]
	__version__ = 3 
this is my sort_script which is chmod 777 ed and in the script folder of sabnzbd and selected inside sabnzbd for the tv section

Code: Select all

#!/bin/sh

#OSX hack: SABnzbd on Mac OSX comes bundled with all Python libraries
#necessary for its function. Because of this, SABnzbd sets PYTHONHOME
#to point to its own Python libraries. This causes a problem for Media
#Rover due to the fact that some of the key Python libraries are not
#bundled. Therefore, we delete PYTHONHOME before invoking Media Rover
unset PYTHONHOME

#filesystem path where Media Rover is installed
ROOT=/home/mrgreaper/mediarover/

#filesystem path to configuration directory
CONFIG=/home/mrgreaper/.mediarover/ (NOTE i did have this set to the default but got the same error)

python $ROOT/episodesort.py -c “$CONFIG” “$1” “$2” “$3” “$4” “$5” “$6” “$7”

my sabnzbd is 5.2rc1 (ubuntu updated it to that today as i was using 4.12)

ok my problems

1) the sorting script errors with ,
ERROR: configuration directory (“/home/mrgreaper/.mediarover/”) does not exist. Do you need to run `python mediarover.py --write-configs`?
when i had it set to default it errored with ...
ERROR: configuration directory (“/home/mrgreaper/.mediarover”) does not exist. Do you need to run `python mediarover.py --write-configs`?

.mediarover folder does exist
python mediarover.py --write-configs was run

2) every time i run it, it send the same episodes to sabnzbd (even though they have already been downloaded and are sitting in the root of my tv folder then exits ! i now have 4 copys of 3 identacle episodes with .1 .2 .3 after there name

3)its downloading episodes older then the ones i have (ie im on season 9 of small ville its downloaded two eps of season 2!

4) as it exits i cant get into the UI (192.168.1.119:8081 shows failed to connect)

so umm how do i fix these and how do i get it to stop quiting so i can view the UI?

also how do i make it start at boot up?
wally007
Release Testers
Release Testers
Posts: 155
Joined: August 28th, 2009, 5:24 pm

Re: Media Rover

Post by wally007 »

There's no UI. Just conf file you need to set up.

If MR is downloading duplicated , it means it cant recognize your previous files. I've yet to get duplicate with MR and i've been using it for almost 6 months.

My file naming scheme matches that of MR file naming scheme i chose ( you can choose how MR will rename your files in conf file )

TV ROOT/BEST TV SHOW/SEASON 1/best tv show - S01E01.avi

Here's my config file , compare it to yours

Code: Select all

[ui]
	#templates_dir = templates/
	#template = default

	[[server]]

		# NOTE: defaults to 8081
		#server.socket_port = 8081

[logging]

	# sorting error log
	# when sorting a download and a fatal error is encountered,
	# produce an error log containing all logged data.
	# NOTE: defaults to True
	#generate_sorting_log = True

[tv]

	# tv root directory
	# directory containing all tv shows to watch for
	# NOTE: multiple directories can be specified but must be comma separated 
	tv_root = /TV ROOT/

	# umask value used when creating any files or folders.  This option is 
	# used by the sorting script when creating series or season directories
	# NOTE: defaults to 022
	umask = 000

	# download category
	# NOTE: defaults to 'tv'
	category = tv2

	# ignore series metadata
	# ie. ignore year, country of origin, etc commonly found between ()
	#	Lost (2004)
	#	Battlestar Galactica (2004) or Battlestar Galactica (1978)
	#	The Office (US)
	# NOTE: defaults to True
	#ignore_series_metadata = False

	# ignored file extensions (used when sorting downloads)
	# NOTE: defaults to: nfo,txt,sfv,srt,nzb,idx,log,par,par2,exe,bat,com
	ignored_extensions = txt,nzb,log,par,par2,exe,bat,com,.nfo,.svf,.sfv,.idx,.md5,.srr,.scc,.rar,.r01,.r00,.001,.000

	[[multiepisode]]

		# allow multiepisode downloads
		# NOTE: defaults to True
		#allow = True

		# aggressively schedule downloads based on prefer flag
		# WARNING: SETTING THIS OPTION TO TRUE MAY RESULT IN EPISODES BEING DELETED
		#
		# when set to True, Media Rover becomes more aggressive in scheduling downloads and 
		# cleaning up unnecessary data.  Here's how it's used:
		#
		#   If you prefer single episodes =>
		#      aggresive = True
		#      prefer = False
		#    
		#    - this will cause Media Rover to download single episodes that already exist on disk 
		#      as part of a multiepisode.  Once all the individual parts are on disk, Media Rover
		#      will attempt to delete the multiepisode
		#
		#  If you prefer multiepisodes =>
		#     aggressive = True
		#     prefer = True
		#
		#   - this will cause Media Rover to download multiepisodes when available and attempt
		#     to delete any/all individual episodes.
		#
		# NOTE: defaults to False
		#aggressive = False

		# prefer multiepisode files over individual files
		#
		# ATTENTION: this flag works in conjunction with the aggressive flag above.  It is ignored
		# unless the aggressive flag is set.  A value of True indicates that you prefer multiepisodes
		# over single episodes whenever possible.  A value of False indicates that you prefer single
		# episodes over multiepisodes whenever possible.  When the aggressive flag is set, Media 
		# Rover will make all attempts to see that your specified preference (single or multi episodes)
		# is met.
		#
		# NOTE: defaults to False
		#prefer = True

	# series specific filter options
	# usage: in order to specify filters for a given series, define
	# a new subsection with the series name.  Define all filter rules
	# within it.
	#
	# Section layout:
	#
	#  [[ filter ]]
	#
	#     [[[ series_name_1 ]]]
	#        skip = <boolean>
	#        ignore = <list>
	#        alias = <list>
	#
	#     [[[ series_name_2 ]]]
	#        skip = <boolean>
	#        ignore = <list>
	#        alias = <list>
	#
	#     ...
	#     ..
	#
	#     [[[ series_name_N ]]]
	#        skip = <boolean>
	#        ignore = <list>
	#        alias = <list>
	#
	# Options:
	#  filter:      skip
	#  values:      True or False
	#  default:     False
	#  description: ignore TV series entirely (won't download any new episodes).
	#
	#  filter:      ignore
	#  values:      comma separated list (ie. 1,2,3,4)
	#  default:     none (empty list)
	#  description: comma separated list of seasons to ignore when downloading new episode
	#
	#  filter:      alias
	#  values:      comma separated list (ie. 1,2,3,4)
	#  default:     none (empty list)
	#  description: comma separated list of aliases that will be used to match nzb titles 
	#               when downloading new episodes. For example:
	#
   	#               [[ filter ]]
	#                  [[[ The Show Name ]]]
	#                    alias = "Show Name", "Show Name, The"
	#
	# ATTENTION: subsection names should exactly match series folder on disk in order to
	#            guarantee consistent application of filters
	#
	# NOTE: SOME filters can optionally be stored on the filesystem in the series directory.  See
	#       http://wiki.github.com/kierse/mediarover/config-filter for more details
	#
	# See http://wiki.github.com/kierse/mediarover/config-filter for examples
	# 
	[[filter]]
		[[[ The Biggest Loser ]]]
			alias = "The Biggest Loser US", "The Biggest Loser"
		[[[ The Biggest Loser AU ]]]
			alias = "Biggest Loser AU", "Biggest Loser AU, The"
		[[[ The Office ]]]
			alias = "The Office US", "The Office"
		[[[ Wipeout ]]]
			alias = "Wipeout US", "Wipeout"		
	[[template]]

		#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
		# NOTE: Replacing a template variable with its uppercase equivalent 
		# (ie. $(series)s vs $(SERIES)s) will cause Media Rover to output 
		# uppercase data (where relevant).  For example:
		#
		#  $(season_episode_1)s => s01e03
		#  $(SEASON_EPISODE_1)s => S01E03
		#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#

		# series naming pattern
		# used when creating series directories
		# 
		#  $(series)s  => "Series Name"
		#  $(series.)s => "Series.Name"
		#  $(series_)s => "Series_Name"
		#
		# NOTE: defaults to '$(series)s'
		#series = $(series)s

		# series season naming pattern
		# used when creating season directories
		#
		#  $(season)d          => 1
		#  $(season)02d        => 01
		#  Season $(season)02d => Season 01
		#
		# NOTE: defaults to 's$(season)02d'
		season = Season $(season)d

		# episode title pattern
		# used when renaming downloaded episodes
		#
		#  $(title)s  => 'Hello World!'
		#  $(title.)s => 'Hello.World!'
		#  $(title_)s => 'Hello_World!'
		# 
		# NOTE: defaults to '$(title)s'
		#title = $(title)s

		# smart episode title options: (used in conjunction with above title pattern option)
		# NOTE: this variable can be used to generate an intelligent episode title.  If an 
		#       episode title has been found, the pattern will be honoured.  Otherwise, it 
		#       will be replaced with an empty string.
		#
		#  $(smart_title)s = ' - $(title)s' => ' - Hello World!'
		#
		# NOTE: defaults to ' - $(title)s'
		#smart_title = ' - $(title)s'

		# series episode naming pattern
		# this pattern is the template used when renaming SERIES episodes. You may use any
		# of the above naming patterns in constructing the file naming pattern 
		#
		#  $(episode)d          => 3
		#  $(episode)02d        => 03
		#  $(season_episode_1)s => s01e03
		#  $(season_episode_2)s => 1x03
		#
		# NOTE: as a bare minimum, the pattern must contain ONE of the above episode numbering 
		#       patterns in order to be valid.  Without this restriction, accurately identifying
		#       episodes on disk would be next to impossible
		#
		# NOTE: defaults to '$(series)s - $(season_episode_1)s$(smart_title)s'
		series_episode = '$(series)s - $(SEASON_EPISODE_1)s'

		# daily episode naming pattern
		# this pattern is the template used when renaming DAILY episodes.  You may use any
		# of the above naming patterns to constructing the file naming pattern
		#
		#  $(daily)s  => 20090112
		#  $(daily.)s => 2009.01.12
		#  $(daily-)s => 2009-01-12
		#  $(daily_)s => 2009_01_12
		#
		# NOTE: as a bare minimum, the pattern must contain ONE of the above daily numbering
		#       patterns in order to be valid.  Without this restriction, accurately identifying
		#       daily episodes on disk would be next to impossible
		#
		# NOTE: defaults to '$(series)s - $(daily-)s$(smart_title)s'
		#daily_episode = '$(series)s - $(daily-)s$(smart_title)s'

# consumable nzb RSS source feeds
# usage: define one or more new subsections under the appropriate plugin.  Each subsection consists
# of a user defined text label, a url pointing to a RSS feed, and zero or more optional arguments.
#
# Section layout:
#
#  [ source ]
#
#     [[ plugin_1 ]]
#
#        # source 1
#        [[[ user_label_1 ]]]
#        
#        	# required
#        	url = http://path/to/rss/feed/...
#        
#        	# optional
#        	timeout = 60 # in seconds
#        
#        # source 2
#        [[[ user_label_2 ]]]
#        	url = http://path/to/rss/feed/...
#        	timeout = 60 # in seconds
#
#     [[ plugin_2 ]]
#        ...
#        ..
#
# Available source plugins:
#
#  newzbin   - http://newzbin.com
#  tvnzb     - http://www.tvnzb.com
#  mytvznb   - any version 2.5 site
#  nzbs      - http://www.nzbs.org
#  nzbmatrix - http://nzbmatrix.com
#
# See http://wiki.github.com/kierse/mediarover/config-source for examples
#
# ATTENTION: you must declare at least one source
[source]

	# default timeout
	# NOTE defaults to 60 seconds
	#default_timeout = 60

	# newzbin.com RSS feeds go here
	[[ newzbin ]]
		[[[tv]]]
			url = http://www.newzbin.com/RSS_FEED_HERE

	# tvnzb.com RSS feeds go here
	[[ tvnzb ]]

	# mytvnzb RSS feeds go here
	[[ mytvnzb ]]

	# nzbs.org RSS feeds go here
	[[ nzbs ]]
		[[[ nzbs ]]]
			url = http://nzbs.org/RSS_FEED_HERE

	# nzbmatrix.com RSS feeds go here
	[[ nzbmatrix ]]
		[[[ nzbmatrix ]]]
			url = http://rss.nzbmatrix.com/RSS_FEED_HERE

# binary newsreader consumable queue
# ATTENTION: you must declare at least one queue
#
#  [[sabnzbd]]
#
#    # required
#    root = http://localhost[:PORT]/sabnzbd
#    api_key = <key> # SABnzbd+ 0.4.9 and greater!
#
#    # optional 
#    username = <username>
#    password = <password>
#    backup_dir = /path/to/sabnzbd/nzb_backup_dir
#
# NOTE: if backup_dir is not specified, failed downloads may be rescheduled by Media Rover
[queue]
	
	[[sabnzbd]]
		root = http://192.168.1.10:8080
		#api_key = I_DONT_USE_API
		backup_dir = /Users/MY_USERNAME/Documents/nzbs
		username = MY_SABNZBD_USERNAME
		password = MY_SABNZBD_PASSWORD

[__SYSTEM__]
	__version__ = 3 
And here's my sorting script ( MAC OSX )

Code: Select all

#!/bin/sh

# Copyright 2009 Kieran Elliott <[email protected]>
#
# Media Rover is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# 
# Media Rover is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

# OSX hack: SABnzbd on Mac OSX comes bundled with all Python libraries
# necessary for its function.  Because of this, SABnzbd sets PYTHONHOME
# to point to its own Python libraries.  This causes a problem for Media
# Rover due to the fact that some of the key Python libraries are not
# bundled.  Therefore, we delete PYTHONHOME before invoking Media Rover
unset PYTHONHOME


python /Users/MY_USERNAME/Downloads/mediarover/episodesort.py -c /Users/MY_USERNAME/.mediarover/ "$1" "$2" "$3" "$4" "$5" "$6" "$7"
Post Reply