Skip to content

Commit 9c4b98a

Browse files
authored
Merge pull request #475 from pkkid/merge
Add a merge method
2 parents 437eea8 + c466b09 commit 9c4b98a

File tree

3 files changed

+27
-0
lines changed

3 files changed

+27
-0
lines changed

plexapi/base.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -651,6 +651,14 @@ def split(self):
651651
key = '%s/split' % self.key
652652
return self._server.query(key, method=self._server._session.put)
653653

654+
def merge(self, ratingKeys):
655+
"""Merge duplicate items."""
656+
if not isinstance(ratingKeys, list):
657+
ratingKeys = str(ratingKeys).split(",")
658+
659+
key = '%s/merge?ids=%s' % (self.key, ','.join(ratingKeys))
660+
return self._server.query(key, method=self._server._session.put)
661+
654662
def unmatch(self):
655663
"""Unmatch a media file."""
656664
key = '%s/unmatch' % self.key

tests/test_gdm.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import pytest
2+
from plexapi.gdm import GDM
3+
4+
5+
@pytest.mark.xfail(reason="Might fail on docker", strict=False)
6+
def test_gdm(plex):
7+
gdm = GDM()
8+
9+
gdm_enabled = plex.settings.get("GdmEnabled")
10+
11+
gdm.scan(timeout=2)
12+
if gdm_enabled:
13+
assert len(gdm.entries)
14+
else:
15+
assert not len(gdm.entries)

tests/test_video.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ def test_video_Movie_delete(movie, patched_http_call):
3434
movie.delete()
3535

3636

37+
def test_video_Movie_merge(movie, patched_http_call):
38+
movie.merge(1337)
39+
40+
3741
def test_video_Movie_addCollection(movie):
3842
labelname = "Random_label"
3943
org_collection = [tag.tag for tag in movie.collections if tag]

0 commit comments

Comments
 (0)