added client

This commit is contained in:
Paolo Asperti 2018-01-15 21:45:51 +01:00
parent b29d24031d
commit 6f844fcaee
2 changed files with 81 additions and 2 deletions

79
telegram-notify Executable file
View File

@ -0,0 +1,79 @@
#!/usr/bin/env python2
import os
import sys
import argparse
import ConfigParser
import datetime
#import imghdr
from PIL import Image
import shutil
version = 0.1
configFile = '/etc/telegram-notify/telegram-notify.conf'
if not os.path.isfile(configFile) or not os.access(configFile, os.R_OK):
configFile = './telegram-notify.conf'
if not os.path.isfile(configFile) or not os.access(configFile, os.R_OK):
configFile = ''
parser = argparse.ArgumentParser(description='Send notification via Telegram')
parser.add_argument('-c', '--config', nargs='?',
help='start with specified config file (default: telegram-notify.conf in /etc/ or in current directory)')
parser.add_argument('-t', '--text', nargs='?',
help='send text')
parser.add_argument('-i', '--image', nargs='?',
help='send image')
parser.add_argument('-V', '--version', action='store_true',
help='show program version and quit')
args = parser.parse_args()
if args.version:
print 'telegram-notify version %s - Copyright (C) 2018 by Paolo Asperti.' % version
sys.exit(0)
if args.config:
if not os.path.isfile(args.config):
print 'specified config file doesn\'t exists or is not a file'
sys.exit(1)
if not os.access(args.config, os.R_OK):
print 'specified config file is not readable'
sys.exit(1)
configFile = args.config
if configFile == '':
print 'no config file available'
sys.exit(1)
defaults = {
'spool_dir': '/var/spool/telegram-notify'
}
configParser = ConfigParser.SafeConfigParser(defaults=defaults)
configParser.read(configFile)
spool_dir = configParser.get('general', 'spool_dir')
t = datetime.datetime.now()
curdate = t.strftime('%Y-%m-%d_%H:%M:%S')
if args.text:
outfile = spool_dir + '/' + curdate + '.txt'
f = open(outfile,"w")
f.write(args.text)
f.close()
if args.image:
if not os.path.isfile(args.image):
print 'specified image file doesn\'t exists or is not a file'
sys.exit(1)
if not os.access(args.image, os.R_OK):
print 'specified image file is not readable'
sys.exit(1)
im = Image.open(args.image)
imgType = im.format
supportedTypes = {'JPEG':'jpg', 'GIF':'gif', 'PNG':'png'}
if any(imgType == s for s in supportedTypes):
outfile = spool_dir + '/' + curdate + '.' + supportedTypes[imgType]
shutil.copyfile(args.image,outfile)
else:
print 'unsupported image type (%s) for file %s' % (imgType, args.image)

View File

@ -114,7 +114,7 @@ def handle(msg):
def processFile(filename): def processFile(filename):
logger.info('Processing %s' % filename) logger.info('Processing %s' % filename)
if re.match(r'.*jpg$',filename): if re.match(r'.*jpe?g$',filename):
for c in chat_ids: for c in chat_ids:
try: try:
logger.debug('sending %s as picture to %s' % (filename,c['username'])) logger.debug('sending %s as picture to %s' % (filename,c['username']))
@ -198,7 +198,7 @@ def parseCmdLine():
args = parser.parse_args() args = parser.parse_args()
if args.version: if args.version:
print 'telegram-notify version %s - Copyright (C) 2018 by Paolo Asperti.' % version print 'telegram-notify-daemon version %s - Copyright (C) 2018 by Paolo Asperti.' % version
sys.exit(0) sys.exit(0)
if args.config: if args.config: