Passed
Push — develop ( 08e1cf...7492d1 )
by Dean
02:39
created

PausedHandler.process()   B

Complexity

Conditions 7

Size

Total Lines 14

Duplication

Lines 14
Ratio 100 %

Code Coverage

Tests 9
CRAP Score 7.049

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 14
loc 14
ccs 9
cts 10
cp 0.9
rs 7.3333
cc 7
crap 7.049
1 1
from plugin.scrobbler.core import SessionEngine, SessionHandler
2
3
4 1 View Code Duplication
@SessionEngine.register
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
5 1
class PausedHandler(SessionHandler):
6 1
    __event__ = 'paused'
7
8 1
    __src__ = ['pause', 'start', 'stop']
9 1
    __dst__ = ['pause', 'stop']
10
11 1
    @classmethod
12
    def process(cls, session, payload):
13
        # Handle media change
14 1
        if cls.has_media_changed(session, payload) and session.state in ['start', 'pause']:
15
            yield 'stop', session.payload
16
17
        # Handle current media
18 1
        if cls.should_scrobble(session, payload):
19 1
            if session.state in ['start', 'pause']:
20 1
                yield 'stop', payload
21 1
        elif session.state == 'start':
22 1
            yield 'pause', payload
23 1
        elif session.state == 'pause':
24
            yield None, payload
25