def eventinsert(request): google_calendar = get_credential(request) data = [l.strip() for l in request.POST['text'].split(',') if l.strip()] if len(data) == 4: b = google_calendar.insert_Calendar(calendar_name=data[0], text=data[1], start=data[2], end=data[3]) else: data.append('Null') b = False if type(b) == bool: result = SlashResponse({ 'attachments': [{ 'pretext': '이벤트 추가', 'text': data[1] + ' 이벤트 추가에 ' + tf[b], 'color': '#7CD197', }] }) else: if b == 4000: b = "Error: 캘린더 이름을 확인해주세요." elif b == 5000: b = "Error: 날짜 입력을 확인해주세요." result = SlashResponse({ 'attachments': [{ 'pretext': '이벤트 추가', 'text': b, 'color': '#7CD197', }] }) return result
def short_delay_message(request): COMMAND_REGEX = '(?P<second>\d+([.]\d)?)[,]\s?(?P<message>.+)' p = re.compile(COMMAND_REGEX, re.DOTALL) text = request.POST['text'] response_url = request.POST['response_url'] user_id = request.POST['user_id'] user_name = request.POST['user_name'] print(text) if p.match(text) is None: return SlashResponse("유효하지 않은 명령입니다.") m = p.search(text) delay_time = float(m.group("second")) message = m.group("message") if delay_time > 60 * 30: return SlashResponse("유효하지 않은 시간입니다.\n30분 이내로 설정해 주십시오") def delay_message(): time.sleep(delay_time) return "_<@" + user_id + "|" + user_name + ">님이 예약한 메시지_\n\n" + message waiting_message = "*" + str(delay_time) + "* 초 뒤에\n```" + \ message + "```\n가 전달됩니다." return LazySlashResponse(response_url, delay_message, request_result_func=showRequest, waiting_message=waiting_message, response_type="in_channel")
def eventdelete(request): google_calendar = get_credential(request) data = [l.strip() for l in request.POST['text'].split(',') if l.strip()] if len(data) != 2: b = False else: b = google_calendar.delete_Calendar(calendar_name=data[0], text=data[1]) if type(b) == bool: result = SlashResponse({ 'attachments': [{ 'pretext': '이벤트 삭제', 'text': data[1] + ' 이벤트 삭제에 ' + tf[b], 'color': '#7CD197', }] }) else: if b == 4000: b = "Error: 캘린더 이름을 확인해주세요." elif b == 5000: b = "Error: 이벤트 Text를 확인해주세요." result = SlashResponse({ 'attachments': [{ 'pretext': '이벤트 삭제', 'text': b, 'color': '#7CD197', }] }) return result
def eventlist(request): google_calendar = get_credential(request) data = [l.strip() for l in request['text'].split(',') if l.strip()] if len(data) == 2: data[1] = int(float(data[1])) b = google_calendar.list_Calendar(calendar_name=data[0], maxResult=data[1]) elif len(data) == 1: b = google_calendar.list_Calendar(calendar_name=data[0]) else: b = ["Error: 입력을 확인해주세요"] if b.__class__ == int: if b == 4000: b = 'Error: 캘린더 이름을 확인해 주세요' else: b = '\r\n'.join(b).strip() if not b.strip(): b = '출력할 데이터가 없습니다' if request['platform'] is Telegram.platform(): result = "*이벤트 리스트*\n\n" result = result + b slashResponse = SlashResponse(result) else: slashResponse = SlashResponse({ 'attachments': [{ 'pretext': '이벤트 리스트', 'text': b, 'color': '#7CD197', }] }) return slashResponse
def acon(request): """ Turn on the Air Conditioner :param request: ## SERVER ## /on [Temperature] :return: success (response_type="in_channel") Turn on the Air Conditioner [Temperature] failed (response_type="ephemeral") Failed Command """ try: text = request.POST['text'].split()[0] except IndexError: text = '22' print(HOST + ":" + PORT + '/on' + text) cons = requests.get(HOST + ":" + PORT + '/on' + text) print(cons) if cons.status_code == 200: return SlashResponse("에어컨이 켜집니다. " + text + "°C", response_type="in_channel") else: return SlashResponse("Failed Connection with iot Server")
def eventupdate(request): google_calendar = get_credential(request) data = [l.strip() for l in request['text'].split(',') if l.strip()] if len(data) == 3: b = google_calendar.update_Calendar(calendar_name=data[0], previous_text=data[1], update_summary=data[2]) elif len(data) == 5: b = google_calendar.update_Calendar(calendar_name=data[0], previous_text=data[1], update_summary=data[2], sndate=[data[3], data[4]]) else: b = False if type(b) == bool: if request['platform'] is Telegram.platform(): result = "*calender update*\n\n" result = result + data[1] + ' 에서 ' + data[ 2] + '로' + ' 이벤트 수정에 ' + tf[b] slashResponse = SlashResponse(result) else: slashResponse = SlashResponse({ 'attachments': [{ 'pretext': '이벤트 수정', 'text': data[1] + ' 에서 ' + data[2] + '로' + ' 이벤트 수정에 ' + tf[b], 'color': '#7CD197', }] }) else: if b == 4000: b = "Error: 캘린더 이름을 확인해주세요." elif b == 5000: b = "Error: 입력을 다시 확인해주세요." if request['platform'] is Telegram.platform(): result = "*calender update*\n\n" result = result + b slashResponse = SlashResponse(result) else: slashResponse = SlashResponse({ 'attachments': [{ 'pretext': '이벤트 수정', 'text': b, 'color': '#7CD197', }] }) return slashResponse
def lunch(request): text = request['text'] respon = crowling.crowlier_lunch(text) respon1 = list(zip(respon[0], respon[1])) list1 = [] if request['platform'] is Telegram.platform(): for (first, last) in respon1: list1.append(first) list1.append("주소 : " + last) test = str(list1) count = 0 number = 0 list_str = [] for mark in test: if test[number] == ',': count = count + 1 if count == 3: if test[number] == ',': list_str.append('\n') if count == 4: if test[number] == ',': list_str.append('\n') count = 0 else: list_str.append(test[number]) number = number + 1 test = "".join(list_str) test = str(test) result = "*맛집 결과?*\n\n" result = result + test slashResponse = SlashResponse(result) else: for (first, last) in respon1: list1.append({'title': first, 'value': last, 'short': True}) slashResponse = SlashResponse({ "attachments": [{ "title": text + " 맛집입니다.", "fields": list1, "color": "#F35A00", }] }) return slashResponse
def acoff(request): """ Turn Off the Air Conditioner :param request: ## SERVER ## /off :return: success (response_type="in_channel") Turn Off the Air Conditioner failed (response_type="ephemeral") Failed Connection with iot Server """ cons = requests.get(HOST + ":" + PORT + '/off') if cons.status_code == 200: return SlashResponse("에어컨이 꺼집니다.", response_type="in_channel") else: return SlashResponse("Failed Connection with iot Server")
def acsuper(request): """ Power Cooling Mode :param request: ## SERVER ## /acsuper :return: success (response_type="in_channel") Turn Off the Air Conditioner failed (response_type="ephemeral") Failed Connection with iot Server """ cons = requests.get(HOST + ":" + PORT + '/super') if cons.status_code == 200: return SlashResponse("파워냉방 설정", response_type="in_channel") else: return SlashResponse("Failed Connection with iot Server")
def calendarlist(request): google_calendar = get_credential(request) calendarList = '\r\n'.join(google_calendar.get_Calendar()) if request['platform'] is Telegram.platform(): result = "*calender list*\n\n" result = result + calendarList print(calendarList) slashResponse = SlashResponse(result) else: slashResponse = SlashResponse({ 'attachments': [{ 'pretext': '캘린더 리스트', 'text': calendarList, 'color': '#7CD197', }] }) return slashResponse
def achelp(request): text = "[에어컨 명령어]\n" \ "acon | acoff | acsuper | achelp\n\n" \ "acon[온도]\n: 에어컨을 켭니다\n" \ ": 에어컨을 [온도]로 설정합니다.\n"\ "acoff\n: 에어컨을 끕니다.\n"\ "acsuper\n: 파워냉방 모드로 설정합니다.\n" return SlashResponse(text)
def eventinsert(request): google_calendar = get_credential(request) data = [l.strip() for l in request['text'].split(',') if l.strip()] if len(data) == 4: b = google_calendar.insert_Calendar(calendar_name=data[0], text=data[1], start=data[2], end=data[3]) else: data.append('Null') b = False if type(b) == bool: if request['platform'] is Telegram.platform(): result = "*calender Insert*\n\n" result = result + data[1] + "이벤트 추가에 " + tf[b] slashResponse = SlashResponse(result) else: slashResponse = SlashResponse({ 'attachments': [{ 'pretext': '이벤트 추가', 'text': data[1] + ' 이벤트 추가에 ' + tf[b], 'color': '#7CD197', }] }) else: if b == 4000: b = "Error: 캘린더 이름을 확인해주세요." elif b == 5000: b = "Error: 날짜 입력을 확인해주세요." if request['platform'] is Telegram.platform(): result = "*calender Insert*\n\n" result = result + b slashResponse = SlashResponse(result) else: slashResponse = SlashResponse({ 'attachments': [{ 'pretext': '이벤트 추가', 'text': b, 'color': '#7CD197', }] }) return slashResponse
def help(request): google_calendar = get_credential(request) text = google_calendar.help() if request['platform'] is Telegram.platform(): result = "*calender help*\n\n" result = result + text.replace('-', '\_') print(result) slashResponse = SlashResponse(result) else: slashResponse = SlashResponse({ 'attachments': [{ 'pretext': '도움말', 'text': text, 'color': '#7CD197', }] }) return slashResponse
def delay_message(): time.sleep(delay_time) send_message = user_name + ">님이 예약한 메시지_\n\n" + message if platform is Telegram.platform(): send_message = "_<" + send_message else: send_message = "_<@" + user_id + "|" + send_message return SlashResponse(send_message)
def lunch_category(request): text = request['text'] respon = crowling.lunch_category() list1 = [] if request['platform'] is Telegram.platform(): for first in respon: if first != '전체보기': list1.append(" " + first + " ") test = str(list1) count = 0 number = 0 list_str = [] for mark in test: if test[number] == ',': list_str.append('\n') else: list_str.append(test[number]) number = number + 1 test = "".join(list_str) test = str(test) result = "*맛집 카테고리*\n\n" result = result + test print(result) slashResponse = SlashResponse(result) return slashResponse else: for first in respon: list1.append({'title': first, 'short': True}) return SlashResponse({ "attachments": [{ "title": "맛집 카테고리입니다", "fields": list1, "color": "#F35A00", }] })
def calendarlist(request): google_calendar = get_credential(request) calendarList = '\r\n'.join(google_calendar.get_Calendar()) return SlashResponse({ 'attachments': [{ 'pretext': '캘린더 리스트', 'text': calendarList, 'color': '#7CD197', }] })
def help(request): google_calendar = get_credential(request) text = google_calendar.help() return SlashResponse({ 'attachments': [{ 'pretext': '도움말', 'text': text, 'color': '#7CD197', }] })
def short_delay_message(request): COMMAND_REGEX = '(?P<second>\d+([.]\d)?)[,]\s?(?P<message>.+)' p = re.compile(COMMAND_REGEX, re.DOTALL) platform = request['platform'] text = request['text'] user_id = request['user_id'] user_name = request['user_name'] print('text ', text) if p.match(text) is None: return SlashResponse("유효하지 않은 명령입니다.") m = p.search(text) delay_time = float(m.group("second")) message = m.group("message") if delay_time > 60 * 30: return SlashResponse("유효하지 않은 시간입니다.\n30분 이내로 설정해 주십시오") def delay_message(): time.sleep(delay_time) send_message = user_name + ">님이 예약한 메시지_\n\n" + message if platform is Telegram.platform(): send_message = "_<" + send_message else: send_message = "_<@" + user_id + "|" + send_message return SlashResponse(send_message) waiting_message = "*" + str(delay_time) + "* 초 뒤에\n```" + \ message + "```\n가 전달됩니다." slash_response = SlashResponse(waiting_message) slash_response.lazy_slash_response = LazySlashResponse( delay_message, request_result_func=showRequest) return slash_response
def lunch_category(request): text = request.POST['text'] respon = crowling.lunch_category() list1 = [] for first in respon: list1.append({'title': first, 'short': True}) return SlashResponse({ "attachments": [{ "title": "맛집 카테고리입니다", "fields": list1, "color": "#F35A00", }] })
def lunch(request): text = request.POST['text'] respon = crowling.crowlier_lunch(text) respon1 = list(zip(respon[0], respon[1])) list1 = [] for (first, last) in respon1: list1.append({'title': first, 'value': last, 'short': True}) return SlashResponse({ "attachments": [{ "title": text + " 맛집입니다.", "fields": list1, "color": "#F35A00", }] })
def eventinsert(request): data = [l.strip() for l in request.POST['text'].split(',') if l.strip()] if len(data) != 4: b = False else: b = google_calendar.insert_Calendar(summary=data[0], body=data[1], start=data[2], end=data[3]) result = SlashResponse({ 'attachments': [ { 'pretext': '이벤트 추가', 'text':data[1]+' 이벤트 추가에 '+tf[b], 'color': '#7CD197', } ] }) return result
def eventdelete(request): data = [l.strip() for l in request.POST['text'].split(',') if l.strip()] if len(data) != 2: b = False else: b = google_calendar.delete_Calendar(summary=data[0],event_summary=data[1]) result = SlashResponse({ 'attachments': [ { 'pretext': '이벤트 삭제', 'text':data[1]+' 이벤트 삭제에 '+tf[b], 'color': '#7CD197', } ] }) return result
def eventupdate(request): data = [l.strip() for l in request.POST['text'].split(',') if l.strip()] if len(data) == 3: b = google_calendar.update_Calendar(summary=data[0],event_summary=data[1],update_summary=data[2]) elif len(data) == 5: b = google_calendar.update_Calendar(summary=data[0],event_summary=data[1],update_summary=data[2], sndate=[data[3],data[4]]) else: b = False result = SlashResponse({ 'attachments': [ { 'pretext': '이벤트 수정', 'text':data[1]+' 에서 '+data[2]+'로'+' 이벤트 수정에 '+tf[b], 'color': '#7CD197', } ] }) return result
def eventlist(request): data = [l.strip() for l in request.POST['text'].split(',') if l.strip()] if len(data) != 2: b = [] else: b = google_calendar.list_Calendar(summary=data[0], maxResult=int(data[1])) b = '\r\n'.join(b).strip() if not b.strip(): b = '출력할 데이터가 없습니다' result = SlashResponse({ 'attachments': [ { 'pretext': '이벤트 리스트', 'text':b, 'color': '#7CD197', } ] }) return result
def wiki_slash_commands(request): code = request.POST['text'] print(code) print() return SlashResponse("검색한 단어 : *" + code + "*\n" + "> https://ko.wikipedia.org/wiki/" + code)