Code Duplication    Length = 21-21 lines in 2 locations

Trakttv.bundle/Contents/Libraries/Shared/plugin/scrobbler/handlers/playing.py 1 location

@@ 4-24 (lines=21) @@
1
from plugin.scrobbler.core import SessionEngine, SessionHandler
2
3
4
@SessionEngine.register
5
class PlayingHandler(SessionHandler):
6
    __event__ = 'playing'
7
8
    __src__ = ['create', 'pause', 'stop', 'start']
9
    __dst__ = ['start', 'stop']
10
11
    @classmethod
12
    def process(cls, session, payload):
13
        # Handle media change
14
        if cls.has_media_changed(session, payload) and session.state in ['start', 'pause']:
15
            yield 'stop', session.payload
16
17
        # Handle current media
18
        if cls.has_finished(session, payload):
19
            if session.state in ['start', 'pause']:
20
                yield 'stop', payload
21
        elif session.state in ['create', 'pause', 'stop']:
22
            yield 'start', payload
23
        elif session.state == 'start':
24
            yield None, payload
25

Trakttv.bundle/Contents/Libraries/Shared/plugin/scrobbler/handlers/paused.py 1 location

@@ 4-24 (lines=21) @@
1
from plugin.scrobbler.core import SessionEngine, SessionHandler
2
3
4
@SessionEngine.register
5
class PausedHandler(SessionHandler):
6
    __event__ = 'paused'
7
8
    __src__ = ['pause', 'start', 'stop']
9
    __dst__ = ['pause', 'stop']
10
11
    @classmethod
12
    def process(cls, session, payload):
13
        # Handle media change
14
        if cls.has_media_changed(session, payload) and session.state in ['start', 'pause']:
15
            yield 'stop', session.payload
16
17
        # Handle current media
18
        if cls.should_scrobble(session, payload):
19
            if session.state in ['start', 'pause']:
20
                yield 'stop', payload
21
        elif session.state == 'start':
22
            yield 'pause', payload
23
        elif session.state == 'pause':
24
            yield None, payload
25