If an image download fails, just send the link.
This commit is contained in:
parent
b34643a756
commit
e111b0fcff
128
session.py
128
session.py
|
@ -571,6 +571,11 @@ class Session(YowsupApp):
|
||||||
self.legacyName, sender, message)
|
self.legacyName, sender, message)
|
||||||
|
|
||||||
message = message.encode("utf-8")
|
message = message.encode("utf-8")
|
||||||
|
# FIXME: Fragile, should pass this in to onDlerror
|
||||||
|
self.dlerror_message = message
|
||||||
|
self.dlerror_sender = sender
|
||||||
|
self.dlerror_ID = ID
|
||||||
|
# End Fragile
|
||||||
|
|
||||||
if sender == "bot":
|
if sender == "bot":
|
||||||
self.bot.parse(message)
|
self.bot.parse(message)
|
||||||
|
@ -608,6 +613,7 @@ class Session(YowsupApp):
|
||||||
self.imgMsgId = ID
|
self.imgMsgId = ID
|
||||||
self.imgBuddy = room + "@g.us"
|
self.imgBuddy = room + "@g.us"
|
||||||
|
|
||||||
|
|
||||||
downloader = MediaDownloader(self.onDlsuccess, self.onDlerror)
|
downloader = MediaDownloader(self.onDlsuccess, self.onDlerror)
|
||||||
downloader.download(message)
|
downloader.download(message)
|
||||||
#self.imgMsgId = ID
|
#self.imgMsgId = ID
|
||||||
|
@ -811,6 +817,68 @@ class Session(YowsupApp):
|
||||||
self.logger.debug('Requesting profile picture of %s', buddy)
|
self.logger.debug('Requesting profile picture of %s', buddy)
|
||||||
self.requestProfilePicture(buddy, onSuccess = onSuccess)
|
self.requestProfilePicture(buddy, onSuccess = onSuccess)
|
||||||
|
|
||||||
|
def onDlsuccess(self, path):
|
||||||
|
self.logger.info("Success: Image downloaded to %s", path)
|
||||||
|
os.rename(path, path+"."+self.imgType)
|
||||||
|
if self.imgType != "jpg":
|
||||||
|
im = Image.open(path+"."+self.imgType)
|
||||||
|
im.save(path+".jpg")
|
||||||
|
self.imgPath = path+".jpg"
|
||||||
|
statinfo = os.stat(self.imgPath)
|
||||||
|
name=os.path.basename(self.imgPath)
|
||||||
|
self.logger.info("Buddy %s",self.imgBuddy)
|
||||||
|
self.image_send(self.imgBuddy, self.imgPath)
|
||||||
|
|
||||||
|
#self.logger.info("Sending picture %s of size %s with name %s",self.imgPath, statinfo.st_size, name)
|
||||||
|
#mtype = "image"
|
||||||
|
|
||||||
|
#sha1 = hashlib.sha256()
|
||||||
|
#fp = open(self.imgPath, 'rb')
|
||||||
|
#try:
|
||||||
|
# sha1.update(fp.read())
|
||||||
|
# hsh = base64.b64encode(sha1.digest())
|
||||||
|
# self.call("media_requestUpload", (hsh, mtype, os.path.getsize(self.imgPath)))
|
||||||
|
#finally:
|
||||||
|
# fp.close()
|
||||||
|
|
||||||
|
|
||||||
|
def onDlerror(self):
|
||||||
|
self.logger.info("Download Error. Sending message as is.")
|
||||||
|
waId = self.sendTextMessage(self.dlerror_sender + '@s.whatsapp.net', self.dlerror_message)
|
||||||
|
self.msgIDs[waId] = MsgIDs(self.dlerror_ID, waId)
|
||||||
|
|
||||||
|
|
||||||
|
def _doSendImage(self, filePath, url, to, ip = None, caption = None):
|
||||||
|
waId = self.doSendImage(filePath, url, to, ip, caption)
|
||||||
|
self.msgIDs[waId] = MsgIDs(self.imgMsgId, waId)
|
||||||
|
|
||||||
|
def _doSendAudio(self, filePath, url, to, ip = None, caption = None):
|
||||||
|
waId = self.doSendAudio(filePath, url, to, ip, caption)
|
||||||
|
self.msgIDs[waId] = MsgIDs(self.imgMsgId, waId)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def createThumb(self, size=100, raw=False):
|
||||||
|
img = Image.open(self.imgPath)
|
||||||
|
width, height = img.size
|
||||||
|
img_thumbnail = self.imgPath + '_thumbnail'
|
||||||
|
|
||||||
|
if width > height:
|
||||||
|
nheight = float(height) / width * size
|
||||||
|
nwidth = size
|
||||||
|
else:
|
||||||
|
nwidth = float(width) / height * size
|
||||||
|
nheight = size
|
||||||
|
|
||||||
|
img.thumbnail((nwidth, nheight), Image.ANTIALIAS)
|
||||||
|
img.save(img_thumbnail, 'JPEG')
|
||||||
|
|
||||||
|
with open(img_thumbnail, 'rb') as imageFile:
|
||||||
|
raw = base64.b64encode(imageFile.read())
|
||||||
|
|
||||||
|
return raw
|
||||||
|
|
||||||
# Not used
|
# Not used
|
||||||
def onLocationReceived(self, messageId, jid, name, preview, latitude, longitude, receiptRequested, isBroadcast):
|
def onLocationReceived(self, messageId, jid, name, preview, latitude, longitude, receiptRequested, isBroadcast):
|
||||||
buddy = jid.split("@")[0]
|
buddy = jid.split("@")[0]
|
||||||
|
@ -848,63 +916,3 @@ class Session(YowsupApp):
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def onDlsuccess(self, path):
|
|
||||||
self.logger.info("Success: Image downloaded to %s", path)
|
|
||||||
os.rename(path, path+"."+self.imgType)
|
|
||||||
if self.imgType != "jpg":
|
|
||||||
im = Image.open(path+"."+self.imgType)
|
|
||||||
im.save(path+".jpg")
|
|
||||||
self.imgPath = path+".jpg"
|
|
||||||
statinfo = os.stat(self.imgPath)
|
|
||||||
name=os.path.basename(self.imgPath)
|
|
||||||
self.logger.info("Buddy %s",self.imgBuddy)
|
|
||||||
self.image_send(self.imgBuddy, self.imgPath)
|
|
||||||
|
|
||||||
#self.logger.info("Sending picture %s of size %s with name %s",self.imgPath, statinfo.st_size, name)
|
|
||||||
#mtype = "image"
|
|
||||||
|
|
||||||
#sha1 = hashlib.sha256()
|
|
||||||
#fp = open(self.imgPath, 'rb')
|
|
||||||
#try:
|
|
||||||
# sha1.update(fp.read())
|
|
||||||
# hsh = base64.b64encode(sha1.digest())
|
|
||||||
# self.call("media_requestUpload", (hsh, mtype, os.path.getsize(self.imgPath)))
|
|
||||||
#finally:
|
|
||||||
# fp.close()
|
|
||||||
|
|
||||||
|
|
||||||
def onDlerror(self):
|
|
||||||
self.logger.info("Download Error")
|
|
||||||
|
|
||||||
|
|
||||||
def _doSendImage(self, filePath, url, to, ip = None, caption = None):
|
|
||||||
waId = self.doSendImage(filePath, url, to, ip, caption)
|
|
||||||
self.msgIDs[waId] = MsgIDs(self.imgMsgId, waId)
|
|
||||||
|
|
||||||
def _doSendAudio(self, filePath, url, to, ip = None, caption = None):
|
|
||||||
waId = self.doSendAudio(filePath, url, to, ip, caption)
|
|
||||||
self.msgIDs[waId] = MsgIDs(self.imgMsgId, waId)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def createThumb(self, size=100, raw=False):
|
|
||||||
img = Image.open(self.imgPath)
|
|
||||||
width, height = img.size
|
|
||||||
img_thumbnail = self.imgPath + '_thumbnail'
|
|
||||||
|
|
||||||
if width > height:
|
|
||||||
nheight = float(height) / width * size
|
|
||||||
nwidth = size
|
|
||||||
else:
|
|
||||||
nwidth = float(width) / height * size
|
|
||||||
nheight = size
|
|
||||||
|
|
||||||
img.thumbnail((nwidth, nheight), Image.ANTIALIAS)
|
|
||||||
img.save(img_thumbnail, 'JPEG')
|
|
||||||
|
|
||||||
with open(img_thumbnail, 'rb') as imageFile:
|
|
||||||
raw = base64.b64encode(imageFile.read())
|
|
||||||
|
|
||||||
return raw
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue