コード例 #1
0
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
コード例 #2
0
ファイル: views.py プロジェクト: naviq/ECC-main
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")
コード例 #3
0
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
コード例 #4
0
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
コード例 #5
0
ファイル: views.py プロジェクト: naviq/ECC-main
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")
コード例 #6
0
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
コード例 #7
0
ファイル: views.py プロジェクト: donghL-dev/ECC-main
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
コード例 #8
0
ファイル: views.py プロジェクト: naviq/ECC-main
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")
コード例 #9
0
ファイル: views.py プロジェクト: naviq/ECC-main
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")
コード例 #10
0
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
コード例 #11
0
ファイル: views.py プロジェクト: naviq/ECC-main
def achelp(request):
    text = "[에어컨 명령어]\n" \
           "acon | acoff | acsuper | achelp\n\n" \
           "acon[온도]\n: 에어컨을 켭니다\n" \
           ": 에어컨을 [온도]로 설정합니다.\n"\
           "acoff\n: 에어컨을 끕니다.\n"\
           "acsuper\n: 파워냉방 모드로 설정합니다.\n"
    return SlashResponse(text)
コード例 #12
0
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
コード例 #13
0
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
コード例 #14
0
ファイル: views.py プロジェクト: donghL-dev/ECC-main
    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)
コード例 #15
0
ファイル: views.py プロジェクト: donghL-dev/ECC-main
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",
            }]
        })
コード例 #16
0
def calendarlist(request):
    google_calendar = get_credential(request)
    calendarList = '\r\n'.join(google_calendar.get_Calendar())

    return SlashResponse({
        'attachments': [{
            'pretext': '캘린더 리스트',
            'text': calendarList,
            'color': '#7CD197',
        }]
    })
コード例 #17
0
def help(request):
    google_calendar = get_credential(request)
    text = google_calendar.help()

    return SlashResponse({
        'attachments': [{
            'pretext': '도움말',
            'text': text,
            'color': '#7CD197',
        }]
    })
コード例 #18
0
ファイル: views.py プロジェクト: donghL-dev/ECC-main
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
コード例 #19
0
ファイル: views.py プロジェクト: naviq/ECC-main
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",
        }]
    })
コード例 #20
0
ファイル: views.py プロジェクト: naviq/ECC-main
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",
        }]
    })
コード例 #21
0
ファイル: views.py プロジェクト: naviq/ECC-main
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
コード例 #22
0
ファイル: views.py プロジェクト: naviq/ECC-main
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
コード例 #23
0
ファイル: views.py プロジェクト: naviq/ECC-main
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
コード例 #24
0
ファイル: views.py プロジェクト: naviq/ECC-main
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
コード例 #25
0
ファイル: views.py プロジェクト: naviq/ECC-main
def wiki_slash_commands(request):
    code = request.POST['text']
    print(code)
    print()
    return SlashResponse("검색한 단어 : *" + code + "*\n" +
                         "> https://ko.wikipedia.org/wiki/" + code)