Media Rover

Got a program that plays well with SABnzbd? Share it here!
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 »

avatarr wrote:
The links don't seem to be working for me. Did you get tired? :)

http://github.com/kierse/mediarover/zipball/v0.5.3
http://nodeload.github.com/kierse/media ... all/v0.5.3
Sorry, my fault.  I didn't actually push the tag to Github  :o.  It should be working now.

Kierse

avatarr
Newbie
Newbie
Posts: 29
Joined: April 17th, 2010, 9:46 pm

Re: Media Rover

Post by avatarr »

kierse wrote:
avatarr wrote: As I am obsessive over issues such as these I just couldn't go to bed and leave it hanging. I downloaded 0.5.2, copied it to my .mediarover folder, and still no dice.
Found the bug.  I've release a patch in the form of MR 0.5.3.  Give it a whirl and let me know if you have any problems.

Kierse
Awesome - the sorting works now.

One final question (maybe I'm just not reading the .conf file right) how can I change it from naming them s01e01 to S01E01 (which is to say use caps instead of lowercase)? I'm probably just missing something incredibly obvious.
Last edited by avatarr on August 26th, 2010, 3:55 pm, edited 1 time in total.

jansverre
Newbie
Newbie
Posts: 14
Joined: January 11th, 2010, 8:11 pm

Re: Media Rover

Post by jansverre »

exellent work ! :) it is now checking for free space as you described :) It is perfect yet again :D

jansverre

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 »

avatarr wrote: One final question (maybe I'm just not reading the .conf file right) how can I change it from naming them s01e01 to S01E01 (which is to say use caps instead of lowercase)? I'm probably just missing something incredibly obvious.
You can replace the template variable with its uppercase equivalent (ie. instead of $(season_episode_1) use $(SEASON_EPISODE_1)).  You can do this for all the template variables.

Kierse

Lockzi
Newbie
Newbie
Posts: 30
Joined: October 10th, 2009, 7:08 am

Re: Media Rover

Post by Lockzi »

Hi Kierse,

let me begin by saying thank you!

I've been away for 4 months, meanwhile MR 0.4.1 was running flawlessly.
I just updated to the latest version and was amazed by the new quality feature, I love it!

My problem though is that I had "medium" quality of a mini-show (1 season).
It started and finished downloading S01E01 of "high" quality, I had a problem with episode sort, so it didn't place it in the TV folder structure that get's scanned.

Hence, it started the download again for another NZB post for the same episode in "high" quality.

All that I can find a reasonable explanation to, but here comes the weird thing.

It also queued the rest of the episodes for the show, like S01E03 for instance.
Since these are all of "high" quality, it didn't finish before the next "mediarover.py schedule" run.
And it queued another NZB post for the same episode again (S01E03).

Therefore, my conclusion is that it doesn't check the queue anymore?

Any advice on how to proceed?

Thanks,
Lockzi

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 Lockzi,
Lockzi wrote: Therefore, my conclusion is that it doesn't check the queue anymore?
Hmm, at this point all I can say is that it should be checking the queue :P.  The quality management code is a little more complex so its entirely possible there is a logic flaw somewhere in there.  Can you send me your log files?  They might contain something useful...
Lockzi wrote: It also queued the rest of the episodes for the show, like S01E03 for instance.
Since these are all of "high" quality, it didn't finish before the next "mediarover.py schedule" run.
And it queued another NZB post for the same episode again (S01E03).
Just to clarify, when it scheduled s01e03 for a second time, was the first nzb still in the queue?  Or had it been successfully downloaded?  When s01e03 was scheduled for a second time, was the first removed from the queue?

Kierse

Lockzi
Newbie
Newbie
Posts: 30
Joined: October 10th, 2009, 7:08 am

Re: Media Rover

Post by Lockzi »

kierse wrote:
Lockzi wrote: It also queued the rest of the episodes for the show, like S01E03 for instance.
Since these are all of "high" quality, it didn't finish before the next "mediarover.py schedule" run.
And it queued another NZB post for the same episode again (S01E03).
Just to clarify, when it scheduled s01e03 for a second time, was the first nzb still in the queue?  Or had it been successfully downloaded?  When s01e03 was scheduled for a second time, was the first removed from the queue?

Kierse
I had S01E03 in xvid quality on harddrive.
My scheduled "mediarover.py schedule" (through task scheduler on Windows) ran, and found HDTV quality for S01E03 and queued it.
Another run of "mediarover.py schedule" happend (scheduled for every 45 min), and it re-queued it. The same episode, but different NZB.

This could be related to me not getting the new episode_sort.bat to work!

Ever since I upgraded SABNZBD to 0.5.4 (I was at 0.5.1 before with MR 0.4.1

My Media Rover seems to be all over the place after upgrading,
woke up and found this in the queue:

Code: Select all

+  	2010-09-08 07:36:03  	Random.Show.About.White.Collar.S02E09.Point.Blank.HDTV.XviD-FQM  	364.40 MB	Completed  	
+ 	2010-09-08 06:29:13 	Random.Show.About.White.Collar.S02E09.720p.HDTV.x264-IMMERSE 	1.14 GB	Completed
In the directory where the files ended up (not in my series directory), the sort.log reads:

Code: Select all

2010-09-08 06:29:12,921 INFO - --- STARTING --- - __init__.py:622
2010-09-08 06:29:12,967 DEBUG - using config directory: T:\Pre-Process\Media Rover\conf - __init__.py:623
2010-09-08 06:29:12,983 DEBUG - T:\Pre-Process\Media Rover\mediarover.py episode-sort 'T:\Usenet\complete\TV\Random.Show.About.White.Collar.S02E09.720p.HDTV.x264-IMMERSE' 'Random.Show.About.White.Collar.S02E09.720p.HDTV.x264-IMMERSE.nzb' 'Random.Show.About.White.Collar.S02E09.720p.HDTV.x264-IMMERSE' 'tv' 'alt.binaries.teevee' '0' '' - __init__.py:625
2010-09-08 06:29:13,029 ERROR - invalid literal for int() with base 10: '' - __init__.py:671
Traceback (most recent call last):
  File "T:\Pre-Process\Media Rover\mediarover\__init__.py", line 668, in episode_sort
    __episode_sort(broker, options, **params)
  File "T:\Pre-Process\Media Rover\mediarover\__init__.py", line 734, in __episode_sort
    elif os.path.basename(path).startswith("_FAILED_") or int(status) > 0:
ValueError: invalid literal for int() with base 10: ''
My episode_sort.bat looks like this:

Code: Select all

@ECHO OFF

REM Copyright 2009 Kieran Elliott <[email protected]>
REM
REM Media Rover is free software: you can redistribute it and/or modify
REM it under the terms of the GNU General Public License as published by
REM the Free Software Foundation, either version 3 of the License, or
REM (at your option) any later version.
REM 
REM Media Rover is distributed in the hope that it will be useful,
REM but WITHOUT ANY WARRANTY; without even the implied warranty of
REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
REM GNU General Public License for more details.
REM 
REM You should have received a copy of the GNU General Public License
REM along with this program.  If not, see <http://www.gnu.org/licenses/>.
REM
REM OSX hack: SABnzbd on Mac OSX comes bundled with all Python libraries
REM necessary for its function.  Because of this, SABnzbd sets PYTHONHOME
REM to point to its own Python libraries.  This causes a problem for Media
REM Rover due to the fact that some of the key Python libraries are not
REM bundled.  Therefore, we delete PYTHONHOME before invoking Media Rover

REM filesystem path where Media Rover is installed
SET ROOT=T:\Pre-Process\Media Rover

echo %ROOT%

REM filesystem path to python installation
SET PYTHON=%HOMEDRIVE%\Python26\pythonw.exe

REM filesystem path to configuration directory
IF DEFINED LOCALAPPDATA (
	REM Vista and newer
	SET CONFIG="T:\Pre-Process\Media Rover\conf"
) ELSE (
	REM XP
	SET CONFIG="T:\Pre-Process\Media Rover\conf"
)

ECHO Argument 1: %1
ECHO Argument 2: %2
ECHO Argument 3: %3
ECHO Argument 4: %4
ECHO Argument 5: %5
ECHO Argument 6: %6
ECHO Argument 7: %7

REM invoke Media Rover episode sorting script
%PYTHON% "%ROOT%\mediarover.py" episode-sort -c %CONFIG% "%1" "%2" "%3" "%4" 

"%5" "%6" "%7"

And in the history page of SAB, it reads:

Code: Select all

-  	2010-09-08 06:29:13  	Random.Show.About.White.Collar.S02E09.720p.HDTV.x264-IMMERSE  	1.14 GB	Completed  	
		

Download
    Downloaded in 31 minutes 8 seconds at an average of 637.37 KB/s
Repair
    [Random.Show.About.white.collar.s02e09.720p.hdtv.x264-immerse] Quick Check OK
Unpack
    [Random.Show.About.white.collar.s02e09.720p.hdtv.x264-immerse] Unpacked 1 files/folders in 2 mins 5 seconds
Script
    Exit(1) FAILURE, unable to sort downloaded episode! See log file at 'T:\\Pre-Process\\Media Rover\\conf\\logs\\sabnzbd_episode_sort.log' for more details! (More)
Category
    tv
Path
    T:\Usenet\complete\TV\Random.Show.About.White.Collar.S02E09.720p.HDTV.x264-IMMERSE
When I click the (More) link in the script section it brings up this:

Code: Select all

Random.Show.About.White.Collar.S02E09.720p.HDTV.x264-IMMERSE

Argument 1: T:\Usenet\complete\TV\Random.Show.About.White.Collar.S02E09.720p.HDTV.x264-IMMERSE
Argument 2: Random.Show.About.White.Collar.S02E09.720p.HDTV.x264-IMMERSE.nzb
Argument 3: Random.Show.About.White.Collar.S02E09.720p.HDTV.x264-IMMERSE
Argument 4: tv
Argument 5: alt.binaries.teevee
Argument 6: 0
Argument 7: 
2010-09-08 06:29 INFO - --- STARTING --- - __init__.py:622
2010-09-08 06:29 ERROR - invalid literal for int() with base 10: '' - __init__.py:671
Traceback (most recent call last):
  File "T:\Pre-Process\Media Rover\mediarover\__init__.py", line 668, in episode_sort
    __episode_sort(broker, options, **params)
  File "T:\Pre-Process\Media Rover\mediarover\__init__.py", line 734, in __episode_sort
    elif os.path.basename(path).startswith("_FAILED_") or int(status) > 0:
ValueError: invalid literal for int() with base 10: ''
FAILURE, unable to sort downloaded episode! See log file at 'T:\\Pre-Process\\Media Rover\\conf\\logs\\sabnzbd_episode_sort.log' for more details!

Any ideas? I believe I've tried everything the last 3 days... And it takes a while to test since something in my RSS: s has to be released for it to be scheduled and to test the next thing...

EDIT:
Oh, and I did re-create the configuration files through command line, and then changed all values to my previous ones that still applied.
Last edited by Lockzi on September 8th, 2010, 4:56 am, edited 1 time in total.

Lockzi
Newbie
Newbie
Posts: 30
Joined: October 10th, 2009, 7:08 am

Re: Media Rover

Post by Lockzi »

Is there anyone running MR in an Windows environment, with quality level active, and has sorting figured out?
I constantly run into errors and has to do manual sorting whenever the source for the NZB isn't Newzbin...

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 Lockzi,
Lockzi wrote: Is there anyone running MR in an Windows environment, with quality level active, and has sorting figured out?
I constantly run into errors and has to do manual sorting whenever the source for the NZB isn't Newzbin...
I believe the problem lies with how Windows batch scripts interpret empty string arguments.  For some reason they seem to drop them (unlike ba/sh in Linux/OS X) which causes problems whenever you aren't downloading from newzbin (as you've noticed).  The good news is that I've got a solution and its available on the dev branch.  The bad news is that the dev branch might be a little unstable right now and you may run into other issues.  If you'd prefer to stick with the 0.5.x release until 0.6 is available, there is a work around:

modify your episode_sort.bat script and make the following change:

Code: Select all

%PYTHON% %ROOT%\mediarover.py episode-sort -c "%CONFIG%" %1 %2 %3 %4 %5 %6 %7
to

Code: Select all

%PYTHON% %ROOT%\mediarover.py episode-sort -c "%CONFIG%" %1
MR only really needs the first argument (the location of the download folder) in order to sort the episode.  Hopefully you shouldn't have any troubles with this.

I'm still looking into your other problem, I'll let you know as soon as I have more information.

Kierse

Lockzi
Newbie
Newbie
Posts: 30
Joined: October 10th, 2009, 7:08 am

Re: Media Rover

Post by Lockzi »

Thanks Kierse,

I've spent over 5 hours trying to fix this problem (thinking that it only occured on my setup).

I can't believe I didn't try to eliminate the amount of arguments, even though I went through all the code in MR.

My god...

Anyhow, thanks (even though I'm yet to see the fix actually works)! :)

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 »

My fault, I've been sitting on the fix for a little while now. I hadn't heard much grumbling so didn't think it was an issue that was affecting anyone.  I'll try and get 0.6 out ASAP or at least back port the fix to 0.5.x.

Kierse

Maverick519
Newbie
Newbie
Posts: 15
Joined: January 16th, 2010, 9:59 pm

Re: Media Rover

Post by Maverick519 »

Downloaded the updated code from the dev branch. Now I am getting the following error.

Code: Select all

2010-09-14 19:30 DEBUG - skipping 'Show Name S07E11', older than newest episode already on disk - schedule.py:390
But that is the latest episode and it is not already downloaded.

If you require further information feel free to ask.

Maverick519

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 Maverick519,
Maverick519 wrote: Downloaded the updated code from the dev branch. Now I am getting the following error.

Code: Select all

2010-09-14 19:30 DEBUG - skipping 'Show Name S07E11', older than newest episode already on disk - schedule.py:390
But that is the latest episode and it is not already downloaded.

If you require further information feel free to ask.

Maverick519
Yes, I've noticed that problem myself.  I recently introduced support for only downloading new episodes and there's obviously a problem there.  Setting [tv] only_schedule_newer = False fixes the problem.

Kierse

Maverick519
Newbie
Newbie
Posts: 15
Joined: January 16th, 2010, 9:59 pm

Re: Media Rover

Post by Maverick519 »

kierse wrote: Hey Maverick519,
Maverick519 wrote: Downloaded the updated code from the dev branch. Now I am getting the following error.

Code: Select all

2010-09-14 19:30 DEBUG - skipping 'Show Name S07E11', older than newest episode already on disk - schedule.py:390
But that is the latest episode and it is not already downloaded.

If you require further information feel free to ask.

Maverick519
Yes, I've noticed that problem myself.  I recently introduced support for only downloading new episodes and there's obviously a problem there.  Setting [tv] only_schedule_newer = False fixes the problem.

Kierse
Ok, updated the setting in config so will see how it goes from their haven't really noticed any other problems with the new code. Thanks for the quick reply like always.

Maverick519

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

Re: Media Rover

Post by wally007 »

kierse wrote:
Yes, I've noticed that problem myself.  I recently introduced support for only downloading new episodes and there's obviously a problem there.  Setting [tv] only_schedule_newer = False fixes the problem.

Kierse
Hello Kierse,

I havent upgraded in months since my set up works so flawlessly so i'm just wondering whether there's a feature to delay download for XX amount of minutes/hours and then "lock" the file. Reason i ask and think it would be nice feature to have is that with each REPLACED episode i'm losing WATCHED flag in Plex/XBMC ( or any Media Center software ).

Also it would save some bandwidth as well. I noticed that SD versions are downloaded only hour or two before eventually HD version gets downloaded and replaces SD version. If MR was able to "bookmark" and cache for user specified time ( say 2-3 hours, in my case ) SD version and if within that time HD version doesnt show up , download it and LOCK it so it's not replaced in the future. And if HD version does show up, discard SD "bookmark" and download HD version straight away ( since its highest in the hierarchy )

What do you think ?

Post Reply