mirror of
https://github.com/powerline/powerline.git
synced 2025-07-29 00:34:49 +02:00
Add e-mail alert segment
This commit is contained in:
parent
bda7384aa7
commit
8c003c2683
@ -4,6 +4,8 @@
|
|||||||
"black": 16,
|
"black": 16,
|
||||||
"white": 231,
|
"white": 231,
|
||||||
|
|
||||||
|
"brightred": 160,
|
||||||
|
|
||||||
"darkestblue": 24,
|
"darkestblue": 24,
|
||||||
"darkblue": 31,
|
"darkblue": 31,
|
||||||
"mediumblue": 38,
|
"mediumblue": 38,
|
||||||
@ -37,6 +39,7 @@
|
|||||||
"date": { "fg": "gray8", "bg": "gray2" },
|
"date": { "fg": "gray8", "bg": "gray2" },
|
||||||
"time": { "fg": "gray10", "bg": "gray2", "attr": ["bold"] },
|
"time": { "fg": "gray10", "bg": "gray2", "attr": ["bold"] },
|
||||||
"time:divider": { "fg": "gray5", "bg": "gray2" },
|
"time:divider": { "fg": "gray5", "bg": "gray2" },
|
||||||
|
"email_alert": { "fg": "white", "bg": "brightred", "attr": ["bold"] },
|
||||||
"hostname": { "fg": "black", "bg": "gray10", "attr": ["bold"] },
|
"hostname": { "fg": "black", "bg": "gray10", "attr": ["bold"] },
|
||||||
"weather": { "fg": "gray8", "bg": "gray0" },
|
"weather": { "fg": "gray8", "bg": "gray0" },
|
||||||
"weather_temp_cold": { "fg": "weather_temp_cold", "bg": "gray0" },
|
"weather_temp_cold": { "fg": "weather_temp_cold", "bg": "gray0" },
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
"black": 16,
|
"black": 16,
|
||||||
"white": 231,
|
"white": 231,
|
||||||
|
|
||||||
|
"brightred": 160,
|
||||||
|
|
||||||
"darkestblue": 24,
|
"darkestblue": 24,
|
||||||
"darkblue": 31,
|
"darkblue": 31,
|
||||||
"mediumblue": 38,
|
"mediumblue": 38,
|
||||||
@ -37,6 +39,7 @@
|
|||||||
"date": { "fg": "gray8", "bg": "gray2" },
|
"date": { "fg": "gray8", "bg": "gray2" },
|
||||||
"time": { "fg": "gray10", "bg": "gray2", "attr": ["bold"] },
|
"time": { "fg": "gray10", "bg": "gray2", "attr": ["bold"] },
|
||||||
"time:divider": { "fg": "gray5", "bg": "gray2" },
|
"time:divider": { "fg": "gray5", "bg": "gray2" },
|
||||||
|
"email_alert": { "fg": "white", "bg": "brightred", "attr": ["bold"] },
|
||||||
"hostname": { "fg": "black", "bg": "gray10", "attr": ["bold"] },
|
"hostname": { "fg": "black", "bg": "gray10", "attr": ["bold"] },
|
||||||
"weather": { "fg": "gray8", "bg": "gray0" },
|
"weather": { "fg": "gray8", "bg": "gray0" },
|
||||||
"weather_temp_cold": { "fg": "weather_temp_cold", "bg": "gray0" },
|
"weather_temp_cold": { "fg": "weather_temp_cold", "bg": "gray0" },
|
||||||
|
@ -39,6 +39,15 @@
|
|||||||
"highlight_group": ["time", "date"],
|
"highlight_group": ["time", "date"],
|
||||||
"divider_highlight_group": "time:divider"
|
"divider_highlight_group": "time:divider"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "email_imap_alert",
|
||||||
|
"before": "✉ ",
|
||||||
|
"priority": 10,
|
||||||
|
"args": {
|
||||||
|
"username": "",
|
||||||
|
"password": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "hostname"
|
"name": "hostname"
|
||||||
}
|
}
|
||||||
|
@ -39,6 +39,15 @@
|
|||||||
"highlight_group": ["time", "date"],
|
"highlight_group": ["time", "date"],
|
||||||
"divider_highlight_group": "time:divider"
|
"divider_highlight_group": "time:divider"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "email_imap_alert",
|
||||||
|
"before": "✉ ",
|
||||||
|
"priority": 10,
|
||||||
|
"args": {
|
||||||
|
"username": "",
|
||||||
|
"password": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "hostname"
|
"name": "hostname"
|
||||||
}
|
}
|
||||||
|
@ -229,3 +229,23 @@ def network_load(interface='eth0', measure_interval=1, suffix='B/s', binary_pref
|
|||||||
|
|
||||||
def virtualenv():
|
def virtualenv():
|
||||||
return os.path.basename(os.environ.get('VIRTUAL_ENV', '')) or None
|
return os.path.basename(os.environ.get('VIRTUAL_ENV', '')) or None
|
||||||
|
|
||||||
|
|
||||||
|
@memoize(60, persistent=True)
|
||||||
|
def email_imap_alert(username, password, server='imap.gmail.com', port=993, folder='INBOX'):
|
||||||
|
import imaplib
|
||||||
|
import re
|
||||||
|
|
||||||
|
try:
|
||||||
|
mail = imaplib.IMAP4_SSL(server, port)
|
||||||
|
mail.login(username, password)
|
||||||
|
rc, message = mail.status(folder, "(UNSEEN)")
|
||||||
|
unread_count = re.search("UNSEEN (\d+)", message[0]).group(1)
|
||||||
|
except (imaplib.error, AttributeError):
|
||||||
|
return None
|
||||||
|
if not unread_count:
|
||||||
|
return None
|
||||||
|
return [{
|
||||||
|
'highlight_group': 'email_alert',
|
||||||
|
'contents': unread_count,
|
||||||
|
}]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user