functions.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. import phonenumbers
  2. import re
  3. import datetime
  4. from datetime import date, timedelta
  5. def validate_phone(number):
  6. number = number.replace('-', '')
  7. number = number.replace(' ', '')
  8. if len(number) == 10:
  9. number = "+7" + number
  10. elif len(number) == 11 and number[0] == '8':
  11. number = "+7" + number[1:]
  12. try:
  13. parse_phone = phonenumbers.parse(number)
  14. if phonenumbers.is_possible_number(parse_phone):
  15. return True
  16. else:
  17. return False
  18. except:
  19. return False
  20. def reject_cmd(text):
  21. if "/" in text:
  22. return True
  23. else:
  24. return False
  25. def reject_latin(text):
  26. if re.search(r'[a-zA-Z0-9]', text):
  27. return True
  28. else:
  29. return False
  30. def validate_fio(text):
  31. if len(text.split(' ')) < 3:
  32. return True
  33. else:
  34. return False
  35. def validate_time():
  36. pass
  37. def beauty_reg_request(data):
  38. result = (f"ФИО: {data['ФИО']}\n"
  39. f"Контакт: {data['Номер телефона']}")
  40. return result
  41. def beauty_all_events(data):
  42. result = (f"******************\n"
  43. f"Инициатор:\n{data['Инициатор']}\n\n"
  44. f"Событие:\n{data['Описание']}\n\n"
  45. f"Дата:\n{data['Дата']}\n\n"
  46. )
  47. return result
  48. def make_date():
  49. today = datetime.datetime.now()
  50. return datetime.datetime.strftime(today, '%d.%m.%Y')
  51. def date_range(range):
  52. today = date.today()
  53. weekday = today.weekday()
  54. days_per_month = {1: 31, 2: 28, 3: 30, 4: 31, 5: 30, 6: 31,
  55. 7: 31, 8: 31, 9: 30, 10: 31, 11: 30, 12: 31}
  56. if range == "today":
  57. return today
  58. if range == "week":
  59. first = today - timedelta(days=weekday)
  60. # upper bound
  61. last = today + timedelta(days=(6 - weekday))
  62. return f"{first} and {last}"
  63. if range == "month":
  64. first = today.replace(day=1)
  65. # вторая дата
  66. try:
  67. last = today.replace(day=days_per_month[today.month])
  68. except ValueError:
  69. if today.month == 2: # Not a leap year
  70. last = today.replace(day=28)
  71. else:
  72. raise
  73. return f"{first} and {last}"
  74. def get_all_events(data):
  75. pass
  76. #
  77. # def sql_parse_user_events(self, sql: str):
  78. # self.execute(sql)
  79. # result_set = self.fetchall()
  80. # events_list = []
  81. # if len(result_set) == 0:
  82. # return False
  83. # elif len(result_set) > 0:
  84. # for row in result_set:
  85. # event_data = f"Описание {row['description']}\n Дата {row['dat']}"
  86. # events_list.append(event_data)
  87. # return events_list