123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- import phonenumbers
- import re
- import datetime
- from datetime import date, timedelta
- from bot.database import Database
- def validate_phone(number):
- number = number.replace('-', '')
- number = number.replace(' ', '')
- if len(number) == 10:
- number = "+7" + number
- elif len(number) == 11 and number[0] == '8':
- number = "+7" + number[1:]
- try:
- parse_phone = phonenumbers.parse(number)
- if phonenumbers.is_possible_number(parse_phone):
- return True
- else:
- return False
- except:
- return False
- def reject_cmd(text):
- if "/" in text:
- return True
- else:
- return False
- def reject_latin(text):
- if re.search(r'[a-zA-Z0-9]', text):
- return True
- else:
- return False
- def validate_fio(text):
- if len(text.split(' ')) < 3:
- return True
- else:
- return False
- def validate_time():
- pass
- def beauty_reg_request(data):
- result = (f"ФИО: {data['ФИО']}\n"
- f"Контакт: {data['Номер телефона']}")
- return result
- def beauty_all_events(data):
- result = (f"******************\n"
- f"Инициатор:\n{data['Инициатор']}\n\n"
- f"Событие:\n{data['Описание']}\n\n"
- f"Дата:\n{data['Дата']}\n\n"
- )
- return result
- def make_date():
- today = datetime.datetime.now()
- return datetime.datetime.strftime(today, '%d.%m.%Y')
- def date_range(data):
- today = date.today()
- weekday = today.weekday()
- days_per_month = {1: 31, 2: 28, 3: 30, 4: 31, 5: 30, 6: 31,
- 7: 31, 8: 31, 9: 30, 10: 31, 11: 30, 12: 31}
- if data == "today":
- return today
- if data == "week":
- first = today - timedelta(days=weekday)
- # upper bound
- last = today + timedelta(days=(6 - weekday))
- return f"{first} and {last}"
- if data == "month":
- first = today.replace(day=1)
- try:
- last = today.replace(day=days_per_month[today.month])
- except ValueError:
- if today.month == 2: # Not a leap year
- last = today.replace(day=28)
- else:
- raise
- return f"{first} and {last}"
- def to_quotes(data):
- data = "'" + str(data) + "'"
- return data
- def time_validator(data):
- re_pattern = "^(2[0-3]|[01]?[0-9])(:|\.)([0-5]?[0-9])( |-)(2[0-3]|[01]?[0-9])(:|\.)([0-5]?[0-9])$"
- if re.match(re_pattern, data):
- if len(data.split(" ")) == 2:
- return True
- elif len(data.split("-")) == 2:
- return True
- else:
- return False
- else:
- return False
- def split_time(data):
- if len(data.split(" ")) == 2:
- return data.replace(".", ":").split(" ")
- elif len(data.split("-")) == 2:
- return data.replace(".", ":").split("-")
- else:
- return False
- def get_time_range(start,finish):
- db = Database()
- sql1 = f"SELECT Id,e_end,e_start from events_table where e_date = '2022-10-10'"
- results = db.sql_fetchall(sql1)
- # print(results)
- for res in results:
- if res['e_start'] < start and res['e_end'] > finish:
- print(f"Внутри {res['Id']}")
- break
- elif res['e_start'] > start and res['e_end'] < finish:
- print(f"Перекрывает {res['Id']}")
- break
- elif start < res['e_end']:
- print(f"С конца {res['Id']}")
- print(finish)
- print(res['e_start'])
- elif finish > res['e_start']:
- print(f"С начала {res['Id']}")
- print(finish)
- print(res['e_start'])
- # print(split_time("1.00-15.30"))
- get_time_range('12:00','13:30')
- #
- #
- # 14:00 16:30
|