functions.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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{data['Инициатор']}\n\n"
  43. f"Событие:\n{data['Описание']}\n\n"
  44. f"Дата:\n{data['Дата']}")
  45. return result
  46. def make_date():
  47. today = datetime.datetime.now()
  48. return datetime.datetime.strftime(today, '%d.%m.%Y')
  49. def date_range(range):
  50. today = date.today()
  51. weekday = today.weekday()
  52. days_per_month = {1: 31, 2: 28, 3: 30, 4: 31, 5: 30, 6: 31,
  53. 7: 31, 8: 31, 9: 30, 10: 31, 11: 30, 12: 31}
  54. if range == "today":
  55. return f"{today}"
  56. if range == "week":
  57. first = today - timedelta(days=weekday)
  58. # upper bound
  59. last = today + timedelta(days=(6 - weekday))
  60. return f"{first} {last}"
  61. if range == "month":
  62. first = today.replace(day=1)
  63. # вторая дата
  64. try:
  65. last = today.replace(day=days_per_month[today.month])
  66. except ValueError:
  67. if today.month == 2: # Not a leap year
  68. last = today.replace(day=28)
  69. else:
  70. raise
  71. return f"{first} {last}"