Python скрипт с аргументами
В 2016 году я уже использовал скрипт с аргументами, он был на PowerShell. Удобно когда можно передать какой-либо параметр скрипту и отправить его значение в Telegram. Скрипт использовал обычно в планировщике, для мониторинга ups, после стал использовать для мониторинга скачиваемых torrent. Основываясь на скрипт PowerShell решил написать похожий на Python.
Так как в скрипте бота использовался уже конфигурационный файл, то начнем с него.
1 2 3 |
token = 'bot-token-id' users = ['user-id1','user-id2'] proxy = 'socks5h://user:pass@127.0.0.1' |
Так как уведомления необходимо слать нескольким пользователям, то возьмем из нашего бота функцию массовой рассылки.
1 2 3 4 5 6 7 8 |
def sendall(text): if len(config.users) > 0: for user in config.users: try: bot.send_message(user, text) except: print() sendall('Messages') |
Модуль argparse — это модуль для обработки аргументов командной строки.
В итоге получаем вот такой скрипт:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import argparse from argparse import ArgumentParser import telebot from telebot import apihelper import config apihelper.proxy = {'https': config.proxy} bot = telebot.TeleBot(config.token, threaded=True) def sendall(text): if len(config.users) > 0: for user in config.users: try: bot.send_message(user, text) except: print() parser: ArgumentParser = argparse.ArgumentParser(description='Send message') parser.add_argument('-m', action="store", dest="mes", required=True) args = parser.parse_args() sendall(args.mes) |
При запуске скрипта, вылезает подсказка, что необходимо использовать аргумент -m.
usage: arg-send.py [-h] -m MES
arg-send.py: error: the following arguments are required: -m
Запускается скрипт всегда с аргументом: script.py -m «Привет, как дела?»