summaryrefslogtreecommitdiff
path: root/netdisco/discoverables/samsung_tv.py
diff options
context:
space:
mode:
authorRuben Undheim <ruben.undheim@gmail.com>2018-12-21 20:54:57 +0100
committerRuben Undheim <ruben.undheim@gmail.com>2018-12-21 20:54:57 +0100
commit91feac80ec0885f915aaf54afa640f71894ebd95 (patch)
tree949fd6476faf99d225a5787356a48b54b8b15192 /netdisco/discoverables/samsung_tv.py
New upstream version 2.2.0
Diffstat (limited to 'netdisco/discoverables/samsung_tv.py')
-rw-r--r--netdisco/discoverables/samsung_tv.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/netdisco/discoverables/samsung_tv.py b/netdisco/discoverables/samsung_tv.py
new file mode 100644
index 0000000..4ad31bb
--- /dev/null
+++ b/netdisco/discoverables/samsung_tv.py
@@ -0,0 +1,25 @@
+"""Discover Samsung Smart TV services."""
+from . import SSDPDiscoverable
+from ..const import ATTR_NAME
+
+# For some models, Samsung forces a [TV] prefix to the user-specified name.
+FORCED_NAME_PREFIX = '[TV]'
+
+
+class Discoverable(SSDPDiscoverable):
+ """Add support for discovering Samsung Smart TV services."""
+
+ def get_entries(self):
+ """Get all the Samsung RemoteControlReceiver entries."""
+ return self.find_by_st(
+ "urn:samsung.com:device:RemoteControlReceiver:1")
+
+ def info_from_entry(self, entry):
+ """Get most important info, by default the description location."""
+ info = super().info_from_entry(entry)
+
+ # Strip the forced prefix, if present
+ if info[ATTR_NAME].startswith(FORCED_NAME_PREFIX):
+ info[ATTR_NAME] = info[ATTR_NAME][len(FORCED_NAME_PREFIX):].strip()
+
+ return info