def telegramWebHook(): update = Update.de_json(request.get_json(force=True)) text = None if getattr(update.message, 'document'): gallery = Gallery().search(tgid = update.message.chat.id) if gallery: newfile = bot.getFile(update.message.document.file_id) file_name = update.message.document.file_id newfile.download(file_name) writed = False if os.path.exists(file_name): writed = write_file(file_name, read_file(file_name, storage = 'local', append_path = False), acl = 'public-read', mime_type = update.message.document.mime_type) thumbnail(file_name) os.remove(file_name) write_file('%s.json' % file_name, update.to_json()) if writed: file_id = File(gallery_eid = gallery.eid, file_id = update.message.document.file_id) file_id.save() sendLink = getattr(gallery, 'sendLink', None) if sendLink == 'True': text = 'File URL: %s' % url_for('image', file_id = file_id.eid, _external = True, disable_web_page_preview = True) else: text = 'Failed to download file' else: text = 'Gallery does not exist, please create first' pass if getattr(update.message, 'text'): args = update.message.text.split(' ', 2) if args[0] == '/register': text = 'Username:'******'Complete register: https://telegram.me/ACSGalleryBot?start=%s' % update.message.from_user.id else: text = 'User added to gallery' # set gallery permission at this point because i have chat id elif args[0] == '/start': if len(args) > 1 and int(args[1]) == int(update.message.chat.id): text = 'Username:'******'force_reply' : True }) else: text = update.to_json() elif getattr(update.message, 'reply_to_message'): if update.message.reply_to_message.text == 'Username:'******'Password:'******'force_reply' : True }) return 'ok' elif update.message.reply_to_message.text == 'Password:'******'User succesfuly registered' elif args[0] == '/create': if hasattr(update.message.chat, 'title'): gallery = Gallery().search(tgid = update.message.chat.id) if not gallery: gallery = Gallery(tgid = update.message.chat.id, title = update.message.chat.title).save() text = 'Gallery URL: %s' % url_for('gallery', id = gallery.eid, _external = True, _scheme = 'https') else: text = 'Bot only works in groups' elif args[0] == '/remove': gallery = Gallery().search(tgid = update.message.chat.id) if gallery: gallery.delete() text = 'Gallery deleted' else: text = 'Gallery is not registered' # TODO: Confirm elif args[0] == '/config': args.pop(0) gallery = Gallery.search(tgid = update.message.chat.id) if gallery: if len(args) == 0: text = g.config(update.message.chat.id) elif len(args) == 1: text = 'get one' text = g.config(update.message.chat.id, args[0]) else: text = g.config(update.message.chat.id, args[0], args[1]) else: text = 'Gallery is not registered' #else: # text = update.to_json() if text: bot.sendMessage(update.message.chat.id, text, disable_web_page_preview=True) return ""
def run(self): args = self.update.message.text.split(' ', 2) if args[0] == '/register': self.text = 'Username:'******'Complete register: https://telegram.me/ACSGalleryBot?start=%s' % self.user_id else: self.text = 'User added to gallery' # set gallery permission at this point because i have chat id elif args[0] == '/start': if len(args) > 1 and int(args[1]) == int(self.chat_id): self.text = 'Username:'******'reply_markup' : { 'force_reply' : True } } elif getattr(self.update.message, 'reply_to_message'): if self.update.message.reply_to_message.text == 'Username:'******'username', self.update.message.text) user.save() self.text = 'Password:'******'reply_markup' : { 'force_reply' : True } } return 'ok' elif self.update.message.reply_to_message.text == 'Password:'******'password', self.update.message.text) user.save() self.text = 'User succesfuly registered' elif args[0] == '/create': if hasattr(self.update.message.chat, 'title'): gallery = Gallery().search(tgid = self.chat_id) if not gallery: gallery = Gallery(tgid = self.chat_id, title = self.update.message.chat.title).save() self.text = 'Gallery URL: %s' % url_for('gallery', id = gallery.eid.value, _external = True, _scheme = 'https') else: self.text = 'Bot only works in groups' elif args[0] == '/remove': gallery = Gallery().search(tgid = self.chat_id) if gallery: gallery.delete() self.text = 'Gallery deleted' else: self.text = 'Gallery is not registered' # TODO: Confirm elif args[0] == '/settings': args.pop(0) gallery = Gallery().search(tgid = self.chat_id) if gallery: if len(args) == 0: self.text = gallery.as_dict() elif len(args) == 1: value = gallery.as_dict() if getattr(gallery, args[0]): self.text = getattr(gallery, args[0]).value else: self.text = 'Setting %s not found' % args[0] else: value = ' '.join(args[1:]) gallery.setattr(args[0], value) gallery.save() self.text = 'Setting %s set to %s' % (args[0], value) else: self.text = 'Gallery is not registered'