functions.py 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  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(data):
  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 data == "today":
  57. return today
  58. if data == "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 data == "month":
  64. first = today.replace(day=1)
  65. try:
  66. last = today.replace(day=days_per_month[today.month])
  67. except ValueError:
  68. if today.month == 2: # Not a leap year
  69. last = today.replace(day=28)
  70. else:
  71. raise
  72. return f"{first} and {last}"
  73. def to_quotes(data):
  74. data = "'" + str(data) + "'"
  75. return data
  76. def time_validator(data):
  77. re_pattern = "^(2[0-3]|[01]?[0-9])(:|\.)([0-5]?[0-9])( |-)(2[0-3]|[01]?[0-9])(:|\.)([0-5]?[0-9])$"
  78. if re.match(re_pattern, data):
  79. if len(data.split(" ")) == 2:
  80. return True
  81. elif len(data.split("-")) == 2:
  82. return True
  83. else:
  84. return False
  85. else:
  86. return False
  87. def split_time(data):
  88. if len(data.split(" ")) == 2:
  89. return data.split(" ")
  90. elif len(data.split("-")) == 2:
  91. return data.split("-")
  92. else:
  93. return False
  94. print(split_time("1.00-15.30"))