Merge pull request #9 from djerfy/master

Add telegram support
This commit is contained in:
Simone Margaritelli 2020-01-14 11:36:51 +01:00 committed by GitHub
commit 55308953f4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 60 additions and 0 deletions

53
telegram.py Normal file
View File

@ -0,0 +1,53 @@
import logging
from pwnagotchi.voice import Voice
import pwnagotchi.plugins as plugins
class Telegram(plugins.Plugin):
__author__ = 'djerfy@gmail.com'
__version__ = '1.0.0'
__license__ = 'GPL3'
__description__ = 'Periodically sent messages to Telegram about the recent activity of pwnagotchi'
def on_loaded(self):
logging.info("telegram plugin loaded.")
# called when there's available internet
def on_internet_available(self, agent):
config = agent.config()
display = agent.view()
last_session = agent.last_session
if last_session.is_new() and last_session.handshakes > 0:
try:
import telegram
except ImportError:
logging.error("Couldn't import telegram")
return
logging.info("Detected new activity and internet, time to send a message!")
picture = '/root/pwnagocthi.png'
display.on_manual_mode(last_session)
display.image().save(picture, 'png')
display.update(force=True)
try:
logging.info("Connecting to Telegram...")
message = Voice(lang=config['main']['lang']).on_last_session_tweet(last_session)
bot = telegram.Bot(self.options['bot_token'])
if self.options['send_picture'] is True:
bot.sendPhoto(chat_id=self.options['chat_id'], photo=open(picture, 'rb'))
logging.info("telegram: picture sent")
if self.options['send_message'] is True:
bot.sendMessage(chat_id=self.options['chat_id'], text=message, disable_web_page_preview=True)
logging.info("telegram: message sent: %s" % message)
last_session.save_session_id()
display.set('status', 'Telegram notification sent!')
display.update(force=True)
except Exception:
logging.exception("Error while sending on Telegram")

7
telegram.yml Normal file
View File

@ -0,0 +1,7 @@
telegram:
enabled: false
bot_token: ~
bot_name: pwnagotchi
chat_id: ~
send_picture: true
send_message: true