Don't catch exceptions by wildcard randomly

Related #102 #100
This commit is contained in:
enkore 2014-08-28 16:12:29 +02:00
parent eee14260f4
commit 566709290e
2 changed files with 29 additions and 39 deletions

View File

@ -5,6 +5,7 @@ import sys
import imaplib import imaplib
from i3pystatus.mail import Backend from i3pystatus.mail import Backend
from i3pystatus.core.util import internet
class IMAP(Backend): class IMAP(Backend):
@ -34,24 +35,18 @@ class IMAP(Backend):
def get_connection(self): def get_connection(self):
if not self.connection: if not self.connection:
try: self.connection = self.imap_class(self.host, self.port)
self.connection = self.imap_class(self.host, self.port) self.connection.login(self.username, self.password)
self.connection.login(self.username, self.password)
self.connection.select(self.mailbox)
except Exception:
self.connection = None
try:
self.connection.select(self.mailbox) self.connection.select(self.mailbox)
except Exception:
self.connection = None self.connection.select(self.mailbox)
return self.connection return self.connection
@property @property
def unread(self): def unread(self):
conn = self.get_connection() if internet():
if conn: conn = self.get_connection()
self.last = len(conn.search(None, "UnSeen")[1][0].split()) self.last = len(conn.search(None, "UnSeen")[1][0].split())
return self.last return self.last

View File

@ -47,7 +47,6 @@ class MPD(IntervalModule):
} }
color = "#FFFFFF" color = "#FFFFFF"
def _mpd_command(self, sock, command): def _mpd_command(self, sock, command):
try: try:
sock.send((command + "\n").encode("utf-8")) sock.send((command + "\n").encode("utf-8"))
@ -67,35 +66,31 @@ class MPD(IntervalModule):
return None return None
def run(self): def run(self):
try: status = self._mpd_command(self.s, "status")
status = self._mpd_command(self.s, "status") currentsong = self._mpd_command(self.s, "currentsong")
currentsong = self._mpd_command(self.s, "currentsong") fdict = {
fdict = { "pos": int(status.get("song", 0)) + 1,
"pos": int(status.get("song", 0)) + 1, "len": int(status["playlistlength"]),
"len": int(status["playlistlength"]), "status": self.status[status["state"]],
"status": self.status[status["state"]], "volume": int(status["volume"]),
"volume": int(status["volume"]),
"title": currentsong.get("Title", ""), "title": currentsong.get("Title", ""),
"album": currentsong.get("Album", ""), "album": currentsong.get("Album", ""),
"artist": currentsong.get("Artist", ""), "artist": currentsong.get("Artist", ""),
"song_length": TimeWrapper(currentsong.get("Time", 0)), "song_length": TimeWrapper(currentsong.get("Time", 0)),
"song_elapsed": TimeWrapper(float(status.get("elapsed", 0))), "song_elapsed": TimeWrapper(float(status.get("elapsed", 0))),
"bitrate": int(status.get("bitrate", 0)), "bitrate": int(status.get("bitrate", 0)),
} }
if not fdict["title"] and "filename" in fdict: if not fdict["title"] and "filename" in fdict:
fdict["filename"] = '.'.join( fdict["filename"] = '.'.join(
basename(currentsong["file"]).split('.')[:-1]) basename(currentsong["file"]).split('.')[:-1])
else: else:
fdict["filename"] = "" fdict["filename"] = ""
self.output = { self.output = {
"full_text": formatp(self.format, **fdict).strip(), "full_text": formatp(self.format, **fdict).strip(),
"color": self.color, "color": self.color,
} }
except Exception as e:
self.output = {"full_text": "error connecting MPD",
"color": self.color}
def on_leftclick(self): def on_leftclick(self):
try: try: