comparison sat/plugins/plugin_misc_android.py @ 2624:56f94936df1e

code style reformatting using black
author Goffi <goffi@goffi.org>
date Wed, 27 Jun 2018 20:14:46 +0200
parents 26edcf3a30eb
children 1048d8dc8a9d
comparison
equal deleted inserted replaced
2623:49533de4540b 2624:56f94936df1e
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. 18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
19 19
20 from sat.core.i18n import _, D_ 20 from sat.core.i18n import _, D_
21 from sat.core.constants import Const as C 21 from sat.core.constants import Const as C
22 from sat.core.log import getLogger 22 from sat.core.log import getLogger
23
23 log = getLogger(__name__) 24 log = getLogger(__name__)
24 from sat.core import exceptions 25 from sat.core import exceptions
25 import sys 26 import sys
26 import mmap 27 import mmap
27 28
30 C.PI_NAME: "Android ", 31 C.PI_NAME: "Android ",
31 C.PI_IMPORT_NAME: "android", 32 C.PI_IMPORT_NAME: "android",
32 C.PI_TYPE: C.PLUG_TYPE_MISC, 33 C.PI_TYPE: C.PLUG_TYPE_MISC,
33 C.PI_MAIN: "AndroidPlugin", 34 C.PI_MAIN: "AndroidPlugin",
34 C.PI_HANDLER: "no", 35 C.PI_HANDLER: "no",
35 C.PI_DESCRIPTION: D_("""Manage Android platform specificities, like pause or notifications""") 36 C.PI_DESCRIPTION: D_(
37 """Manage Android platform specificities, like pause or notifications"""
38 ),
36 } 39 }
37 40
38 if sys.platform != "android": 41 if sys.platform != "android":
39 raise exceptions.CancelError(u"this module is not needed on this platform") 42 raise exceptions.CancelError(u"this module is not needed on this platform")
40 43
41 from plyer import notification, vibrator 44 from plyer import notification, vibrator
42 45
43 PARAM_VIBRATE_CATEGORY = "Notifications" 46 PARAM_VIBRATE_CATEGORY = "Notifications"
44 PARAM_VIBRATE_NAME = "vibrate" 47 PARAM_VIBRATE_NAME = "vibrate"
45 PARAM_VIBRATE_LABEL = D_(u"Vibrate on notifications") 48 PARAM_VIBRATE_LABEL = D_(u"Vibrate on notifications")
49
46 50
47 class AndroidPlugin(object): 51 class AndroidPlugin(object):
48 52
49 params = """ 53 params = """
50 <params> 54 <params>
53 <param name="{param_name}" label="{param_label}" value="true" type="bool" security="0" /> 57 <param name="{param_name}" label="{param_label}" value="true" type="bool" security="0" />
54 </category> 58 </category>
55 </individual> 59 </individual>
56 </params> 60 </params>
57 """.format( 61 """.format(
58 category_name = PARAM_VIBRATE_CATEGORY, 62 category_name=PARAM_VIBRATE_CATEGORY,
59 category_label = D_(PARAM_VIBRATE_CATEGORY), 63 category_label=D_(PARAM_VIBRATE_CATEGORY),
60 param_name = PARAM_VIBRATE_NAME, 64 param_name=PARAM_VIBRATE_NAME,
61 param_label = PARAM_VIBRATE_LABEL, 65 param_label=PARAM_VIBRATE_LABEL,
62 ) 66 )
63 67
64 def __init__(self, host): 68 def __init__(self, host):
65 log.info(_("plugin Android initialization")) 69 log.info(_("plugin Android initialization"))
66 self.host = host 70 self.host = host
67 host.memory.updateParams(self.params) 71 host.memory.updateParams(self.params)
68 self.cagou_status_fd = open('.cagou_status', 'rb') 72 self.cagou_status_fd = open(".cagou_status", "rb")
69 self.cagou_status = mmap.mmap(self.cagou_status_fd.fileno(), 1, prot=mmap.PROT_READ) 73 self.cagou_status = mmap.mmap(
74 self.cagou_status_fd.fileno(), 1, prot=mmap.PROT_READ
75 )
70 # we set a low priority because we want the notification to be sent after all plugins have done their job 76 # we set a low priority because we want the notification to be sent after all plugins have done their job
71 host.trigger.add("MessageReceived", self.messageReceivedTrigger, priority=-1000) 77 host.trigger.add("MessageReceived", self.messageReceivedTrigger, priority=-1000)
72 78
73 @property 79 @property
74 def cagou_active(self): 80 def cagou_active(self):
75 # 'R' status means Cagou is running in front 81 #  'R' status means Cagou is running in front
76 return self.cagou_status[0] == 'R' 82 return self.cagou_status[0] == "R"
77 83
78 def _notifyMessage(self, mess_data, client): 84 def _notifyMessage(self, mess_data, client):
79 # send notification if there is a message and it is not a groupchat 85 # send notification if there is a message and it is not a groupchat
80 if mess_data['message'] and mess_data['type'] != C.MESS_TYPE_GROUPCHAT: 86 if mess_data["message"] and mess_data["type"] != C.MESS_TYPE_GROUPCHAT:
81 message = mess_data['message'].itervalues().next() 87 message = mess_data["message"].itervalues().next()
82 try: 88 try:
83 subject = mess_data['subject'].itervalues().next() 89 subject = mess_data["subject"].itervalues().next()
84 except StopIteration: 90 except StopIteration:
85 subject = u'Cagou new message' 91 subject = u"Cagou new message"
86 92
87 notification.notify( 93 notification.notify(title=subject, message=message)
88 title = subject, 94 if self.host.memory.getParamA(
89 message = message 95 PARAM_VIBRATE_NAME, PARAM_VIBRATE_CATEGORY, profile_key=client.profile
90 ) 96 ):
91 if self.host.memory.getParamA(PARAM_VIBRATE_NAME, PARAM_VIBRATE_CATEGORY, profile_key=client.profile):
92 vibrator.vibrate() 97 vibrator.vibrate()
93 return mess_data 98 return mess_data
94 99
95 def messageReceivedTrigger(self, client, message_elt, post_treat): 100 def messageReceivedTrigger(self, client, message_elt, post_treat):
96 if not self.cagou_active: 101 if not self.cagou_active: