MovieGrabber - Completely Automated Movie Downloader

Got a program that plays well with SABnzbd? Share it here!
binhex
Sr. Member
Sr. Member
Posts: 470
Joined: December 5th, 2008, 11:54 am

Re: MovieGrabber - Completely Automated Movie Downloader

Post by binhex »

Thanks for letting me know splnut and good luck with your parity drive replacement
neo_x
Newbie
Newbie
Posts: 30
Joined: March 5th, 2012, 11:23 pm

Re: MovieGrabber - Completely Automated Movie Downloader

Post by neo_x »

binhex wrote:Just in case you guys didn't spot it there is new version released, should be visible in the ui at the bottom.
thx binhex!! Appreciate your effort :)

*adds another beer on the pile*
neo_x
Newbie
Newbie
Posts: 30
Joined: March 5th, 2012, 11:23 pm

Re: MovieGrabber - Completely Automated Movie Downloader

Post by neo_x »

binhex wrote:hi Neo_x, will add the feature "delete other matching movies on queue release with confirmation" to my list, location of beta's here:-

https://sourceforge.net/projects/movieg ... iles/beta/
Hi Binhex

I encountered this issue again strangely in the latest version. Can you maybe recheck if a bug hasnt slipped in?

Eg i had two movies in my Que
(a torrent and NZB ) for "the RAID 2014. Once i released one of them, the other still remains.

Thx

Neo_x
binhex
Sr. Member
Sr. Member
Posts: 470
Joined: December 5th, 2008, 11:54 am

Re: MovieGrabber - Completely Automated Movie Downloader

Post by binhex »

Hi neo, I will take another look at this and let you know.
neo_x
Newbie
Newbie
Posts: 30
Joined: March 5th, 2012, 11:23 pm

Re: MovieGrabber - Completely Automated Movie Downloader

Post by neo_x »

binhex wrote:Hi neo, I will take another look at this and let you know.
thx binhex

Much appreciated :)
joelones
Newbie
Newbie
Posts: 16
Joined: November 12th, 2012, 12:05 pm

Re: MovieGrabber - Completely Automated Movie Downloader

Post by joelones »

Hi binhex,

Using the current version of your cool program, after configuring I get this in the cherry log nothing in the moviegrabber log:

Code: Select all

[30/Jul/2014:12:16:58] HTTP Traceback (most recent call last):
  File "/opt/moviegrabber/lib/site-packages/cherrypy/_cprequest.py", line 656, in respond
    response.body = self.handler()
  File "/opt/moviegrabber/lib/site-packages/cherrypy/lib/encoding.py", line 188, in __call__
    self.body = self.oldhandler(*args, **kwargs)
  File "/opt/moviegrabber/lib/site-packages/cherrypy/_cpdispatch.py", line 34, in __call__
    return self.callable(*self.args, **self.kwargs)
  File "/opt/moviegrabber/MovieGrabber.py", line 6148, in run_now
    SearchIndexThread().checks()
  File "/opt/moviegrabber/MovieGrabber.py", line 6346, in checks
    self.run()
  File "/opt/moviegrabber/MovieGrabber.py", line 6388, in run
    search_index_function = getattr(SearchIndex(self.download_type,self.index_site_item), self.search_index_function)
  File "/opt/moviegrabber/MovieGrabber.py", line 1499, in __init__
    self.movies_replace_cache = list(itertools.chain.from_iterable(os.walk(root_path) for root_path in movies_replace_dir_list))
  File "/usr/lib/python2.7/os.py", line 294, in walk
    for x in walk(new_path, topdown, onerror, followlinks):
  File "/usr/lib/python2.7/os.py", line 294, in walk
    for x in walk(new_path, topdown, onerror, followlinks):
  File "/usr/lib/python2.7/os.py", line 294, in walk
    for x in walk(new_path, topdown, onerror, followlinks):
  File "/usr/lib/python2.7/os.py", line 294, in walk
    for x in walk(new_path, topdown, onerror, followlinks):
  File "/usr/lib/python2.7/os.py", line 294, in walk
    for x in walk(new_path, topdown, onerror, followlinks):
  File "/usr/lib/python2.7/os.py", line 284, in walk
    if isdir(join(top, name)):
  File "/usr/lib/python2.7/posixpath.py", line 80, in join
    path += '/' + b
UnicodeDecodeError: 'ascii' codec can't decode byte 0xf8 in position 17: ordinal not in range(128)
Let me know if you need more info, btw using nzbs.org
binhex
Sr. Member
Sr. Member
Posts: 470
Joined: December 5th, 2008, 11:54 am

Re: MovieGrabber - Completely Automated Movie Downloader

Post by binhex »

Hi joelones this is due to your host not having the locale set correctly and thus it falls back to ASCII char set which then fails when attempting to read a non ascii character. Eroz had the same issue with a docker of mg which was sorted by setting the locale correctly.
joelones
Newbie
Newbie
Posts: 16
Joined: November 12th, 2012, 12:05 pm

Re: MovieGrabber - Completely Automated Movie Downloader

Post by joelones »

binhex wrote:Hi joelones this is due to your host not having the locale set correctly and thus it falls back to ASCII char set which then fails when attempting to read a non ascii character. Eroz had the same issue with a docker of mg which was sorted by setting the locale correctly.
Thanks for the reply. I've run previous versions of mg on my ubuntu vm (not docker) without locale being an issue.

Code: Select all

$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
$ sudo locale-gen en_US.UTF-8
Generating locales...
  en_US.UTF-8... up-to-date
Generation complete.
$ sudo dpkg-reconfigure locales
Generating locales...
  en_AG.UTF-8... done
  en_AU.UTF-8... done
  en_BW.UTF-8... done
  en_CA.UTF-8... done
  en_DK.UTF-8... done
  en_GB.UTF-8... done
  en_HK.UTF-8... done
  en_IE.UTF-8... done
  en_IN.UTF-8... done
  en_NG.UTF-8... done
  en_NZ.UTF-8... done
  en_PH.UTF-8... done
  en_SG.UTF-8... done
  en_US.UTF-8... up-to-date
  en_ZA.UTF-8... done
  en_ZM.UTF-8... done
  en_ZW.UTF-8... done
Generation complete.
binhex
Sr. Member
Sr. Member
Posts: 470
Joined: December 5th, 2008, 11:54 am

Re: MovieGrabber - Completely Automated Movie Downloader

Post by binhex »

hi joelones, ive done some testing and cannot reproduce the issue your getting, i believe moviegrabber is falling over due to the fact you have a non ascii char in your movies to replace collection, however this should not be an issue if your locale is set correctly, thus myprevious post. i have created a dummy folder in my movies to replace collection with a non ascii char and it runs fine, so i can only put this down to something not correctly set on your host, i know you said you havent had this issue previously but it is possible that all your movies in your movies to replace collection were using ascii charcters.

can you try running the script located here, just save it as a bash script and run and it should tell you if there are any issues:-

https://github.com/grawity/code/blob/ma ... cale-check

last question - what version of moviegrabber are you running?
redcell
Newbie
Newbie
Posts: 18
Joined: May 10th, 2012, 4:59 am

Re: MovieGrabber - Completely Automated Movie Downloader

Post by redcell »

I have the exact same problem as joelones, my locale settings are just fine and when I run the script https://github.com/grawity/code/blob/ma ... cale-check it also says that my locale settings are fine

I am using the latest version from github

And I run moviegrabber under ubuntu 14.04 64 bit

and I'm not using the movies to replace option

and when I disable existing movie check, I still get the same error:

Code: Select all

Traceback (most recent call last):
  File "/opt/moviegrabber/lib/site-packages/cherrypy/_cprequest.py", line 656, in respond
    response.body = self.handler()
  File "/opt/moviegrabber/lib/site-packages/cherrypy/lib/encoding.py", line 188, in __call__
    self.body = self.oldhandler(*args, **kwargs)
  File "/opt/moviegrabber/lib/site-packages/cherrypy/_cpdispatch.py", line 34, in __call__
    return self.callable(*self.args, **self.kwargs)
  File "/opt/moviegrabber/./MovieGrabber.py", line 6148, in run_now
    SearchIndexThread().checks()
  File "/opt/moviegrabber/./MovieGrabber.py", line 6346, in checks
    self.run()
  File "/opt/moviegrabber/./MovieGrabber.py", line 6388, in run
    search_index_function = getattr(SearchIndex(self.download_type,self.index_site_item), self.search_index_function)
  File "/opt/moviegrabber/./MovieGrabber.py", line 1499, in __init__
    self.movies_replace_cache = list(itertools.chain.from_iterable(os.walk(root_path) for root_path in movies_replace_dir_list))
  File "/usr/lib/python2.7/os.py", line 294, in walk
    for x in walk(new_path, topdown, onerror, followlinks):
  File "/usr/lib/python2.7/os.py", line 294, in walk
    for x in walk(new_path, topdown, onerror, followlinks):
  File "/usr/lib/python2.7/os.py", line 294, in walk
    for x in walk(new_path, topdown, onerror, followlinks):
  File "/usr/lib/python2.7/os.py", line 294, in walk
    for x in walk(new_path, topdown, onerror, followlinks):
  File "/usr/lib/python2.7/os.py", line 284, in walk
    if isdir(join(top, name)):
  File "/usr/lib/python2.7/posixpath.py", line 80, in join
    path += '/' + b
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd7 in position 19: ordinal not in range(128)
binhex
Sr. Member
Sr. Member
Posts: 470
Joined: December 5th, 2008, 11:54 am

Re: MovieGrabber - Completely Automated Movie Downloader

Post by binhex »

hi redcell and joelones, can you both give the stable branch from github a try, this has a potential fix in it, its a little tricky for me to identify if the issue is resoled as i need to create a non utf-8 character in order to test, so fingers crossed the fix i put in place does work, please let me know if it works/doesnt work.

edit - direct download https://github.com/binhex/moviegrabber/ ... stable.zip

binhex.
Last edited by binhex on August 12th, 2014, 5:15 am, edited 1 time in total.
herbdavisy2k
Newbie
Newbie
Posts: 5
Joined: November 27th, 2013, 1:02 pm

Re: MovieGrabber - Completely Automated Movie Downloader

Post by herbdavisy2k »

FreeNAS MovieGrabber How-To: (What worked for me)

Code: Select all

1. create jail (type of jail = plugin)

2. jls

3. jexec <# of MovieGrabber jail> csh

4. pkg_add python py27-sqlite3

5. echo 'moviegrabber_enable="YES"' >> /etc/rc.conf

6. vi /etc/rc.d/moviegrabber
Paste below: 

#!/bin/sh
#
# PROVIDE: moviegrabber
# REQUIRE: DAEMON
# KEYWORD: shutdown

# Add the following lines to /etc/rc.conf to enable moviegrabber:
# moviegrabber_enable:   Set to NO by default. Set it to YES to enable it.
# moviegrabber_user:     The user account moviegrabber daemon runs as what
#                       you want it to be.
# moviegrabber_dir:      Directory where moviegrabber lives.
#                           Default: /usr/local/moviegrabberServer


. /etc/rc.subr
name="moviegrabber"
rcvar=${name}_enable
load_rc_config ${name}

: ${moviegrabber_enable:=YES}
: ${moviegrabber_user:=root} #default is root
: ${moviegrabber_dir:=/moviegrabber}

export LANG=en_US.UTF-8

pidfile="$moviegrabber_dir/moviegrabber.pid"
command="/usr/local/bin/python2.7"
command_args="${moviegrabber_dir}/MovieGrabber.py --daemon --pidfile $pidfile"

start_precmd="${name}_prestart"
moviegrabber_prestart() {
	if [ -f $pidfile ]; then
		if [ ! $(pgrep -F $pidfile) ]; then
			rm $pidfile
			echo "Removing stale pidfile."
		fi
	fi
}

run_rc_command "$1"


7. chmod +x /etc/rc.d/moviegrabber

8. copy moviegrabber folder to root of your newly created jail
redcell
Newbie
Newbie
Posts: 18
Joined: May 10th, 2012, 4:59 am

Re: MovieGrabber - Completely Automated Movie Downloader

Post by redcell »

@ binhex

unfortunately with your new version I still get the same error:

Code: Select all

Traceback (most recent call last):
  File "/opt/moviegrabber/lib/site-packages/cherrypy/_cprequest.py", line 656, in respond
    response.body = self.handler()
  File "/opt/moviegrabber/lib/site-packages/cherrypy/lib/encoding.py", line 188, in __call__
    self.body = self.oldhandler(*args, **kwargs)
  File "/opt/moviegrabber/lib/site-packages/cherrypy/_cpdispatch.py", line 34, in __call__
    return self.callable(*self.args, **self.kwargs)
  File "/opt/moviegrabber/./MovieGrabber.py", line 6166, in run_now
    SearchIndexThread().checks()
  File "/opt/moviegrabber/./MovieGrabber.py", line 6364, in checks
    self.run()
  File "/opt/moviegrabber/./MovieGrabber.py", line 6406, in run
    search_index_function = getattr(SearchIndex(self.download_type,self.index_site_item), self.search_index_function)
  File "/opt/moviegrabber/./MovieGrabber.py", line 1517, in __init__
    self.movies_replace_cache = list(itertools.chain.from_iterable(string_decode(os.walk(root_path)) for root_path in movies_replace_dir_list))
  File "/usr/lib/python2.7/os.py", line 294, in walk
    for x in walk(new_path, topdown, onerror, followlinks):
  File "/usr/lib/python2.7/os.py", line 294, in walk
    for x in walk(new_path, topdown, onerror, followlinks):
  File "/usr/lib/python2.7/os.py", line 294, in walk
    for x in walk(new_path, topdown, onerror, followlinks):
  File "/usr/lib/python2.7/os.py", line 294, in walk
    for x in walk(new_path, topdown, onerror, followlinks):
  File "/usr/lib/python2.7/os.py", line 284, in walk
    if isdir(join(top, name)):
  File "/usr/lib/python2.7/posixpath.py", line 80, in join
    path += '/' + b
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd7 in position 19: ordinal not in range(128)
binhex
Sr. Member
Sr. Member
Posts: 470
Joined: December 5th, 2008, 11:54 am

Re: MovieGrabber - Completely Automated Movie Downloader

Post by binhex »

hi guys, can you try again using the stable branch, fingers crossed i got it cracked this time, please let me know whether it works or not.
redcell
Newbie
Newbie
Posts: 18
Joined: May 10th, 2012, 4:59 am

Re: MovieGrabber - Completely Automated Movie Downloader

Post by redcell »

@ binhex, it still doesn't work, but a different error now

but something changed...

normally I press: "Run Now" on the home screen, then it takes verry long, before the page refreshes, like more then 1 minute and then the error is shown

Now when I press "Run Now" it still takes verry long, more then 1 minute, but no error is shown, but when I goto "History" this error is shown, a SQL error about a missing database table:

Code: Select all

Traceback (most recent call last):
  File "/opt/moviegrabber/lib/site-packages/cherrypy/_cprequest.py", line 656, in respond
    response.body = self.handler()
  File "/opt/moviegrabber/lib/site-packages/cherrypy/lib/encoding.py", line 188, in __call__
    self.body = self.oldhandler(*args, **kwargs)
  File "/opt/moviegrabber/lib/site-packages/cherrypy/_cpdispatch.py", line 34, in __call__
    return self.callable(*self.args, **self.kwargs)
  File "/opt/moviegrabber/./MovieGrabber.py", line 5601, in index
    template.sqlite_history_count = sql_session.query(ResultsDBHistory).count()
  File "/opt/moviegrabber/lib/site-packages/sqlalchemy/orm/query.py", line 2593, in count
    return self.from_self(col).scalar()
  File "/opt/moviegrabber/lib/site-packages/sqlalchemy/orm/query.py", line 2392, in scalar
    ret = self.one()
  File "/opt/moviegrabber/lib/site-packages/sqlalchemy/orm/query.py", line 2361, in one
    ret = list(self)
  File "/opt/moviegrabber/lib/site-packages/sqlalchemy/orm/query.py", line 2404, in __iter__
    return self._execute_and_instances(context)
  File "/opt/moviegrabber/lib/site-packages/sqlalchemy/orm/query.py", line 2419, in _execute_and_instances
    result = conn.execute(querycontext.statement, self._params)
  File "/opt/moviegrabber/lib/site-packages/sqlalchemy/engine/base.py", line 720, in execute
    return meth(self, multiparams, params)
  File "/opt/moviegrabber/lib/site-packages/sqlalchemy/sql/elements.py", line 317, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "/opt/moviegrabber/lib/site-packages/sqlalchemy/engine/base.py", line 817, in _execute_clauseelement
    compiled_sql, distilled_params
  File "/opt/moviegrabber/lib/site-packages/sqlalchemy/engine/base.py", line 947, in _execute_context
    context)
  File "/opt/moviegrabber/lib/site-packages/sqlalchemy/engine/base.py", line 1108, in _handle_dbapi_exception
    exc_info
  File "/opt/moviegrabber/lib/site-packages/sqlalchemy/util/compat.py", line 185, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb)
  File "/opt/moviegrabber/lib/site-packages/sqlalchemy/engine/base.py", line 940, in _execute_context
    context)
  File "/opt/moviegrabber/lib/site-packages/sqlalchemy/engine/default.py", line 435, in do_execute
    cursor.execute(statement, parameters)
OperationalError: (OperationalError) no such table: history u'SELECT count(*) AS count_1 \nFROM (SELECT history.id AS history_id, history.imdbposter AS history_imdbposter, history.imdblink AS history_imdblink, history.imdbplot AS history_imdbplot, history.imdbdirectors AS history_imdbdirectors, history.imdbwriters AS history_imdbwriters, history.imdbactors AS history_imdbactors, history.imdbcharacters AS history_imdbcharacters, history.imdbgenre AS history_imdbgenre, history.imdbname AS history_imdbname, history.imdbyear AS history_imdbyear, history.imdbruntime AS history_imdbruntime, history.imdbrating AS history_imdbrating, history.imdbvotes AS history_imdbvotes, history.imdbcert AS history_imdbcert, history.postdate AS history_postdate, history.postdatesort AS history_postdatesort, history.postsize AS history_postsize, history.postsizesort AS history_postsizesort, history.postnfo AS history_postnfo, history.postdetails AS history_postdetails, history.postname AS history_postname, history.postnamestrip AS history_postnamestrip, history.postdl AS history_postdl, history.dlstatus AS history_dlstatus, history.dlname AS history_dlname, history.dltype AS history_dltype, history.procresult AS history_procresult, history.procdate AS history_procdate, history.procdatesort AS history_procdatesort \nFROM history) AS anon_1' ()
Powered by CherryPy 3.2.2
Post Reply