Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 10.66 KB | None | 0 0
  1. import pypyodbc
  2. mySQLServer = "DESKTOP-3F2B3B3\SQLEXPRESS"
  3. myDataBase = "DfLessonDb"
  4. itstrue = ('да', 'Да', 'ДА', 'уверен', 'Уверен', 'Верны', 'верны', 'ага', 'Ага', 'Верно', 'верно')
  5. import telebot
  6. from telebot import types
  7. bot = telebot.TeleBot('909191584:AAFMYcMImK84IBchpY1NiGQ3bLeUlpYRUYg')
  8. name = ''
  9. surname = ''
  10. nameadmin = ''
  11. telegramid = 0
  12. id = 0
  13. course = ''
  14. grade = 0
  15. id_stud = 0
  16. attendance = 0
  17.  
  18.  
  19.  
  20.  
  21. @bot.message_handler(commands=['start'])
  22. def send_welcome(message):
  23.     user_id = str(message.from_user.id)
  24.     bot.send_message(message.from_user.id, '''Привет, я бот-журнал для списка команд введи /help\nВаш telegram id:''' + user_id)
  25.  
  26.  
  27. @bot.message_handler(commands=['help'])
  28. def send_welcome(message):
  29.     bot.send_message(message.from_user.id, "/reg - Начать регистрацию пользователя\n/infoaboutme - получить "
  30.                                            "информацию о себе\n/leavethecours - покинуть курс\n/regadmin - стать администратором курса")
  31.  
  32.  
  33. @bot.message_handler(commands=['reg'])
  34. def start_register(message):
  35.     bot.send_message(message.from_user.id, 'Введите свое имя')
  36.     bot.register_next_step_handler(message, get_name)
  37.  
  38.  
  39. @bot.message_handler(commands=['infoaboutme'])
  40. def get_info(message):
  41.     connection = pypyodbc.connect('Driver={SQL Server};'
  42.                                   'Server=' + mySQLServer + ';'
  43.                                                             'Database=' + myDataBase + ';')
  44.     print(message)
  45.     cursor = connection.cursor()
  46.     telegramid = int(message.from_user.id)
  47.     mySQLQuery = "/select namestud, surnamestud, studid from Students where telegramid={student[0]!r}".format(student=[telegramid])
  48.     cursor.execute(mySQLQuery[1:])
  49.     #
  50.     #
  51.     #
  52.     results = str(cursor.fetchall())[2:-2].replace("'", '').replace(',', '', 1).replace(',', '\nНомер студенческого:',1).replace(')', '').split(',')
  53.     print(results)
  54.     if not results:
  55.         bot.send_message(message.from_user.id, 'Вы не зарегистрированны в системе!')
  56.     else:
  57.         mySQLQuery2 = "/select course from Students where telegramid={student[0]!r}".format(student=[telegramid])
  58.         cursor.execute(mySQLQuery2[1:])
  59.         results2 ='Ваши курсы: ' + str(cursor.fetchall())[2:-2].replace("'", '').replace(',', '', 1).replace('(', '').replace(')', '')
  60.         bot.send_message(message.from_user.id, results)
  61.         bot.send_message(message.from_user.id, results2)
  62.     connection.close()
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72. @bot.message_handler(commands=['leavethecours'])
  73. def leave_cours(message):
  74.     bot.send_message(message.from_user.id, 'Какой курс вы хотите покинуть?')
  75.     bot.register_next_step_handler(message, get_answer_leave1)
  76.  
  77. def get_answer_leave1(message):
  78.     global course
  79.     course = message.text
  80.     bot.send_message(message.from_user.id, 'Вы уверены?')
  81.     bot.register_next_step_handler(message, get_answer_leave2)
  82. def get_answer_leave2(message):
  83.     if str(message.text) in itstrue:
  84.         bot.send_message(message.from_user.id, 'До скорых встреч!')
  85.         connection = pypyodbc.connect('Driver={SQL Server};'
  86.                                       'Server=' + mySQLServer + ';'
  87.                                                                 'Database=' + myDataBase + ';')
  88.  
  89.         telegramid = int(message.from_user.id)
  90.         cursor = connection.cursor()
  91.         mySQLQuery = "/delete from Students where telegramid={student[0]!r} and course ={student[1]!r}".format(student=[telegramid, course])
  92.         cursor.execute(mySQLQuery[1:])
  93.         connection.commit()
  94.         connection.close()
  95.     else:
  96.         bot.send_message(message.from_user.id, 'Не играй с огнем)')
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106. def get_name(message):
  107.     global name
  108.     name = message.text
  109.     bot.send_message(message.from_user.id, 'Введите свою фамилию')
  110.     bot.register_next_step_handler(message, get_surname)
  111.  
  112.  
  113. def get_surname(message):
  114.     global surname
  115.     surname = message.text
  116.     bot.send_message(message.from_user.id, 'Введите номер своего студенческого билета')
  117.     bot.register_next_step_handler(message, get_course)
  118.  
  119. def get_course(message):
  120.     global id
  121.     id = message.text
  122.     bot.send_message(message.from_user.id, 'Введите название курса\n*Матстат\n*Питон\n*Матанализ\n*БД')
  123.     bot.register_next_step_handler(message, get_id)
  124.  
  125. def get_id(message):
  126.     global course
  127.     course = message.text
  128.     bot.send_message(message.from_user.id,
  129.                      'Данные верны?\nИмя: ' + name + '\n' + 'Фамилия: ' + surname + '\n' + 'Номер суденческого: ' + id + '\n' + 'Курс: ' + course)
  130.     bot.register_next_step_handler(message, get_answer_reg)
  131.  
  132. def get_answer_reg(message):
  133.     connection = pypyodbc.connect('Driver={SQL Server};'
  134.                                   'Server=' + mySQLServer + ';'
  135.                                                             'Database=' + myDataBase + ';')
  136.     cursor = connection.cursor()
  137.     telegramid = int(message.from_user.id)
  138.     mySQLQuery2 = "/select course from Students where telegramid={student[0]!r}".format(
  139.         student=[telegramid])
  140.     cursor.execute(mySQLQuery2[1:])
  141.     results2 = str(cursor.fetchall())[2:-2].replace("'", '').replace(',', '').replace('(', '').replace(')', '')
  142.     Courses = results2.split()
  143.     if course in Courses:
  144.         boolean = 0
  145.     else:
  146.         boolean = 1
  147.     if boolean:
  148.         if str(message.text) in itstrue:
  149.             bot.send_message(message.from_user.id, 'Успех!')
  150.             connection = pypyodbc.connect('Driver={SQL Server};'
  151.                                           'Server=' + mySQLServer + ';'
  152.                                                                     'Database=' + myDataBase + ';')
  153.             cursor = connection.cursor()
  154.             mySQLQuery = "/insert into Students (namestud, surnamestud, studid, telegramid, course) values ({student[0]!r}, {student[1]!r}, " \
  155.                          "{student[2]!r}, {student[3]!r}, {student[4]!r})".format(
  156.                 student=[name, surname, id, telegramid, course])
  157.             cursor.execute(mySQLQuery[1:])
  158.             connection.commit()
  159.             connection.close()
  160.         else:
  161.             bot.send_message(message.from_user.id, 'Попробуйте снова')
  162.     else:
  163.         bot.send_message(message.from_user.id, 'Вы уже зарегистрированны!')
  164.  
  165.  
  166.  
  167.  
  168. @bot.message_handler(commands=['regadmin'])
  169. def reg_admin(message):
  170.     bot.send_message(message.from_user.id, 'Введите пароль от курса?')
  171.     bot.register_next_step_handler(message, reg_admin_2)
  172.  
  173. def reg_admin_2(message):
  174.     password = str(message.text)
  175.     print(message.text)
  176.     connection = pypyodbc.connect('Driver={SQL Server};'
  177.                                   'Server=' + mySQLServer + ';'
  178.                                                             'Database=' + myDataBase + ';')
  179.     cursor = connection.cursor()
  180.     telegramid = int(message.from_user.id)
  181.     mySQLQuery = "/select course_c from Courses where pass={student[0]!r}".format(student=[password])
  182.     cursor.execute(mySQLQuery[1:])
  183.     results = str(cursor.fetchall())[2:-2].replace("'", '').replace(',','')
  184.     if not results:
  185.         bot.send_message(message.from_user.id, 'Вы ввели неверный пароль!')
  186.     else:
  187.         bot.send_message(message.from_user.id, 'Успех! Вы администратор курса ' + results)
  188.         connection = pypyodbc.connect('Driver={SQL Server};'
  189.                                       'Server=' + mySQLServer + ';'
  190.                                                                 'Database=' + myDataBase + ';')
  191.         cursor = connection.cursor()
  192.         mySQLQuery2 = "/insert into Teachers (telegramid_t,course_t) values({student[0]!r}, {student[1]!r})".format(
  193.             student=[telegramid, results])
  194.         cursor.execute(mySQLQuery2[1:])
  195.         connection.commit()
  196.         connection.close()
  197.  
  198.  
  199.  
  200.  
  201.  
  202. @bot.message_handler(commands=['torate'])
  203. def to_rate(message):
  204.     bot.send_message(message.from_user.id, 'Кому поставить оценку (выберите номер)?')
  205.     connection = pypyodbc.connect('Driver={SQL Server};'
  206.                                   'Server=' + mySQLServer + ';'
  207.                                                             'Database=' + myDataBase + ';')
  208.     cursor = connection.cursor()
  209.     mySQLQuery = "/select id, surnamestud from Students"
  210.     cursor.execute(mySQLQuery[1:])
  211.     results = str(cursor.fetchall())[1:-1].replace('(', '\n').replace(')','').replace("'", '').replace(',','')
  212.     connection.close()
  213.     bot.send_message(message.from_user.id, results)
  214.     bot.register_next_step_handler(message, to_rate_2)
  215.  
  216.  
  217. def to_rate_2(message):
  218.     bot.send_message(message.from_user.id, 'Какую оценку ставим?')
  219.     global id_stud
  220.     id_stud = int(message.text)
  221.     bot.register_next_step_handler(message, to_rate_3)
  222.  
  223.  
  224.  
  225. def to_rate_3(message):
  226.     bot.send_message(message.from_user.id, 'Присутствовал на паре (1/0)?')
  227.     global grade
  228.     grade = int(message.text)
  229.     bot.register_next_step_handler(message, to_rate_4)
  230.  
  231.  
  232. def to_rate_4(message):
  233.     bot.send_message(message.from_user.id, 'Выставили!')
  234.     global attendance
  235.     attendance = int(message.text)
  236.     telegramid = int(message.from_user.id)
  237.  
  238.  
  239.     connection = pypyodbc.connect('Driver={SQL Server};'
  240.                                   'Server=' + mySQLServer + ';'
  241.                                                             'Database=' + myDataBase + ';')
  242.     cursor = connection.cursor()
  243.     telegramid = int(message.from_user.id)
  244.     mySQLQuery = "/select course_t from Teachers where telegramid_t={student[0]!r}".format(
  245.         student=[telegramid])
  246.     cursor.execute(mySQLQuery[1:])
  247.     results = str(cursor.fetchall())[2:-2].replace("'", '').replace(',', '')
  248.     if not results:
  249.         bot.send_message(message.from_user.id, 'Вы не администратор!')
  250.     else:
  251.         mySQLQuery2 = "/insert into Grades (id_g, course_g, grade, attendance)  values({student[0]!r}, {student[" \
  252.                       "1]!r}, {student[2]!r}, {student[3]!r})".format(
  253.             student=[id_stud, results, grade, attendance])
  254.         cursor.execute(mySQLQuery2[1:])
  255.         connection.commit()
  256.     connection.close()
  257.  
  258.  
  259.  
  260.  
  261. bot.polling()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement