Er mogen op dit forum GEEN verzoekjes of requests gevraagd worden, dit staat ook in de regels die je accepteert bij het registreren op dit forum, hiervoor krijg je direct een permanente ban.

pySabRename (py2exe)

Alles over indexeringsprogramma's, downloadprogramma's en newsreaders

Moderator: Moderator Team


Mirx
Berichten: 34
Lid geworden op: 25 okt 2013, 15:31
Reputation: 0
Usenet: Hitnews
Internet: KPN Glasvezel

Re: pySabRename (py2exe)

#31

Bericht door Mirx »

Dat is gemeen. Dat zei google niet :P

Als ik het goed begrijp wat je doet, dan kijk je in autoProcessTV.py (welke je al importeert) hoeveel waardes de routine processEpisode vereist.

def processEpisode(dirName, nzbName=None): versus def processEpisode(dirName, nzbName=None, failed=False):
Neem je online privacy serieus en gebruik een VPN verbinding!

Met een VPN verbinding van IPVanish wordt uw gehele internet verbinding versleuteld

U kunt dus veilig browsen, Torrents downloaden, Usenet downloaden en onderling versleutelde verbindingen opzetten.


Gebruikersavatar

Topicstarter
Blauwbek
Moderator Team Leider
Berichten: 2761
Lid geworden op: 04 mar 2011, 17:29
Reputation: 0
Usenet: UNS
Internet: UPC
Locatie: Blauwbek-PC
Contacteer:

Re: pySabRename (py2exe)

#32

Bericht door Blauwbek »

Dat klopt helemaal :)
Als je het zou willen testen: graag :)
Regels/Rules | pySabRename

Er zijn weer spotnet updates, klik hier!

API's kijken doe je maar in de dierentuin!

Mirx
Berichten: 34
Lid geworden op: 25 okt 2013, 15:31
Reputation: 0
Usenet: Hitnews
Internet: KPN Glasvezel

Re: pySabRename (py2exe)

#33

Bericht door Mirx »

Hij pakt netjes de elif en geeft de correcte opdracht aan sickbeard :clap:

-- [bericht automatisch samengevoegd - 29 okt 2013, 22:25] --

Ik heb in mijn spielerei toch nog wel een paar aanpassingen gemaakt die je misschien wel handig vindt.

Uitbreiding / correctie op job_res

De reden voor deze uitbreiding is dat sickbeard-tpb gebruik maakt van failed download handling. Een gefailde NZB wordt in de database gelogd, zodat Sickbeard deze NZB niet nogmaals download, maar een andere hit zal proberen.
Voor dit proces moet uiteraard de post-processing wel aangesproken worden, en het huidige script zou dat niet doen.
Spoiler: show

Code: Selecteer alles

if int(job_res) != 0:
        if config.getboolean('tv', 'sickbeard'):
                try:
                        import autoProcessTV
                        if autoProcessTV.processEpisode.func_code.co_argcount == 3:
                                autoProcessTV.processEpisode(final_dir, sys.argv[2], job_res)

                except:
                        print 'Could not run sickbeard, is autoProcessTV in the same folder as this script?'

        else:
                print 'To prevent bad stuff from happening we do not run this script on jobs that are not succesfully completed (par/rar fail)'
                print 'If you want to run this anyway try this in commandline:'
                print sys.argv[0], sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4], sys.argv[5], sys.argv[6], sys.argv[7]

Uitbreiding met optioneel verwijderen folder en nfo file

Dit is ten behoeve van de plex client, die alleen de film en srt weggooid (nfo weet ik niet zeker) en geen folders kan verwijderen.

2 variabelen toegevoegd aan pySR.cfg, namelijk "keep_folder" en "keep_nfo".
Spoiler: show

Code: Selecteer alles

if config.get('sabnzbd', 'moviecat')==job_cat:

        if config.getboolean('movies', 'cleanup'):
                cleanup(final_dir)

        if config.getboolean('movies', 'keep_folder') is False:
                parent_final_dir = os.path.abspath(os.path.join(final_dir, os.pardir))

                for root, dirs, files in os.walk(final_dir, topdown=False):
                        for name in files:
                                if os.path.splitext(name)[1] == '.nfo':
                                        if config.getboolean('movies', 'keep_nfo') is False:
                                                os.remove(os.path.join(root, name))
                                                print 'Removed:', os.path.join(root, name)

                                        else:
                                                os.rename(os.path.join(root, name), os.path.join(parent_final_dir, name))
                                                print 'Moved', os.path.join(root, name), 'to', os.path.join(parent_final_dir, name)

                                else:
                                        os.rename(os.path.join(root, name), os.path.join(parent_final_dir, name))
                                        print 'Moved', os.path.join(root, name), 'to', os.path.join(parent_final_dir, name)
        try:
                os.rmdir(final_dir)
                print 'Removed:', final_dir
        except:
                print "Could not delete directory, directory not empty"
Wijziging van cleanup bij TV
Sickbeard heeft een eigen cleanup proces. Het is dus apart eerst de cleanup te runnen, en daarna sickbeard aan te roepen. Ik heb de volgorde omgegooid.
Spoiler: show

Code: Selecteer alles

if config.get('sabnzbd', 'tvcat')==job_cat:

        if config.getboolean('tv', 'sickbeard'):
                print '\n+Calling Sickbeard+'
                try:
                        import autoProcessTV
                        if autoProcessTV.processEpisode.func_code.co_argcount == 2:
                                autoProcessTV.processEpisode(final_dir, sys.argv[2])

                        elif autoProcessTV.processEpisode.func_code.co_argcount == 3:
                                autoProcessTV.processEpisode(final_dir, sys.argv[2], job_res)

                except:
                        print 'Could not run sickbeard, is autoProcessTV in the same folder as this script?'

        if config.getboolean('tv', 'cleanup'):
                cleanup(final_dir)
Wat me verder nog opviel is dat je de nfo niet hernoemd, maar aangezien ik die persoonlijk toch altijd zal weggooien heb ik daar geen code voor aangepast.

-- [bericht automatisch samengevoegd - 30 okt 2013, 06:52] --

P.s. ik bedacht me vannacht (leuk zo'n hoofd dat nooit slaapt... :cry: ) dat je volgens in je job_res routine een exit mist.

Je laat wel printen dat het script niet mag lopen, maar daarna doe je er voor zover ik het snap niks mee. Op regel 69 zou dan nog een exit moeten toch?

Mirx
Berichten: 34
Lid geworden op: 25 okt 2013, 15:31
Reputation: 0
Usenet: Hitnews
Internet: KPN Glasvezel

Re: pySabRename (py2exe)

#34

Bericht door Mirx »

Ik heb voor mezelf nog een toevoeging gedaan. Probleem was dat een bepaalde release groep jaartallen is gaan gebruiken. Deze zijn echter niet van de start van de serie, maar van het huidige jaar.
Als gevolg kan SickBeard geen mapping maken.
Toevoeging stript het jaartal uit de jobname.

Code: Selecteer alles

import re

#name to rename the biggest file to
job_name_org = sys.argv[3]
#jobname without year
job_name = re.sub(r'\(\d+\d+\d+\d+\)', '', job_name_org)
Wel eens waar niet op de mooiste plek binnen het script omdat hij het nu voor alles doet, maar werkt verder wel...
Gebruikersavatar

Topicstarter
Blauwbek
Moderator Team Leider
Berichten: 2761
Lid geworden op: 04 mar 2011, 17:29
Reputation: 0
Usenet: UNS
Internet: UPC
Locatie: Blauwbek-PC
Contacteer:

Re: pySabRename (py2exe)

#35

Bericht door Blauwbek »

Bedankt voor de tip, ik zal het even overwegen :)

Nog je laatste reactie van 30 okt, die had ik gemist. Ik zie idd dat ik dat op github nog niet had aangepast (lokaal wel kennelijk). Heb het nu ook toegevoegd op git.
Regels/Rules | pySabRename

Er zijn weer spotnet updates, klik hier!

API's kijken doe je maar in de dierentuin!

Mirx
Berichten: 34
Lid geworden op: 25 okt 2013, 15:31
Reputation: 0
Usenet: Hitnews
Internet: KPN Glasvezel

Re: pySabRename (py2exe)

#36

Bericht door Mirx »

Ik heb hem iets opgeschoond want op films wil ik het jaartal wel graag bewaren ivm de automtische mapping van Plex, en op de rest van de series ivm de mapping van de ondertitels.

Om dat op te lossen heb ik de volgende code voor het renamen aangeroepen wordt ingevoegd:

Code: Selecteer alles

if config.get('sabnzbd', 'tvcat')==job_cat:
        if config.getboolean('tv', 'sickbeard'):
                if "QUSTOM" in job_name:
                        job_name = re.sub(r'\(\d+\d+\d+\d+\) ', '', job_name)
                        print "blablabla serie met jaartal gevonden, nieuwe job_name is: ", job_name
Waarbij "QUSTOM" eventueel ook een variabele zou kunnen zijn, maar daar zag ik nu nog het nut niet van in.
Plaats reactie Vorig onderwerpVolgend onderwerp
Spot-net.nl Forums : Disclaimer