6 changed files with 112 additions and 10 deletions
@ -0,0 +1,32 @@ |
|||
from .main import Subtitle |
|||
|
|||
def start(): |
|||
return Subtitle() |
|||
|
|||
config = [{ |
|||
'name': 'subtitle', |
|||
'groups': [ |
|||
{ |
|||
'tab': 'renamer', |
|||
'name': 'subtitle', |
|||
'options': [ |
|||
{ |
|||
'name': 'enabled', |
|||
'label': 'Search and download subtitles', |
|||
'default': True, |
|||
'type': 'enabler', |
|||
}, |
|||
{ |
|||
'name': 'languages', |
|||
'description': 'The languages you want to download the sub', |
|||
}, |
|||
{ |
|||
'name': 'automatic', |
|||
'default': True, |
|||
'type': 'bool', |
|||
'description': 'Automaticly search & download for movies in library', |
|||
}, |
|||
], |
|||
}, |
|||
], |
|||
}] |
@ -0,0 +1,50 @@ |
|||
from couchpotato import get_session |
|||
from couchpotato.core.event import addEvent, fireEvent |
|||
from couchpotato.core.logger import CPLog |
|||
from couchpotato.core.plugins.base import Plugin |
|||
from couchpotato.core.settings.model import Library, FileType |
|||
|
|||
log = CPLog(__name__) |
|||
|
|||
|
|||
class Subtitle(Plugin): |
|||
|
|||
def __init__(self): |
|||
|
|||
addEvent('renamer.before', self.searchSingle) |
|||
|
|||
def searchLibrary(self): |
|||
|
|||
# Get all active and online movies |
|||
db = get_session() |
|||
|
|||
library = db.query(Library).all() |
|||
done_status = fireEvent('status.get', 'done', single = True) |
|||
|
|||
for movie in library.movies: |
|||
|
|||
for release in movie.releases: |
|||
|
|||
# get releases and their movie files |
|||
if release.status_id is done_status.get('id'): |
|||
|
|||
files = [] |
|||
for file in release.files.filter(FileType.status.has(identifier = 'movie')).all(): |
|||
files.append(file.path); |
|||
|
|||
# get subtitles for those files |
|||
subtitles = fireEvent('subtitle.search', files = files, languages = self.getLanguages(), merge = True) |
|||
|
|||
# do something with the returned subtitles |
|||
print subtitles |
|||
|
|||
|
|||
def searchSingle(self, group): |
|||
|
|||
subtitles = fireEvent('subtitle.search', files = group['files']['movie'], languages = self.getLanguages(), merge = True) |
|||
|
|||
# do something with the returned subtitles |
|||
print subtitles |
|||
|
|||
def getLanguages(self): |
|||
return self.conf('languages').split(',') |
@ -1,6 +1,6 @@ |
|||
from .main import Subliminal |
|||
from .main import SubliminalProvider |
|||
|
|||
def start(): |
|||
return Subliminal() |
|||
return SubliminalProvider() |
|||
|
|||
config = [] |
|||
|
@ -1,8 +1,22 @@ |
|||
from couchpotato.core.logger import CPLog |
|||
from couchpotato.core.providers.subtitle.base import SubtitleProvider |
|||
from couchpotato.environment import Env |
|||
from libs import subliminal |
|||
|
|||
log = CPLog(__name__) |
|||
|
|||
|
|||
class Subliminal(SubtitleProvider): |
|||
pass |
|||
class SubliminalProvider(SubtitleProvider): |
|||
|
|||
plugins = ['OpenSubtitles', 'TheSubDB', 'SubsWiki'] |
|||
|
|||
def search(self, files = [], languages = []): |
|||
|
|||
# download subtitles |
|||
with subliminal.Subliminal(cache_dir = Env.get('cache_dir'), multi = True, |
|||
languages = self.getLanguages(), plugins = self.plugins) as subli: |
|||
subtitles = subli.downloadSubtitles(files) |
|||
|
|||
print subtitles |
|||
|
|||
return subtitles |
|||
|
Loading…
Reference in new issue