예제 #1
0
def edit_course_option_selected(sender, input):
    user_id = sender['id']
    user = User.objects.get(id=user_id)
    chat = Chat.objects.get(id=user_id)
    course_initials = chat.data
    course = user.courses.get(initials=course_initials)
    response = {}
    response['chat_id'] = user_id
    response['parse_mode'] = 'Markdown'

    # if (input == 'Nº de Faltas'):
    #     absences = course.absences
    #     text = """O seu número atual de faltas é {}. Digite o número atualizado:""".format(absences)
    #     #

    # elif (input == 'Sigla'):
    #     initials = course.initials
    #     text = """A sigla atual do desse curso é {}. Digite a sigla atualizada:""".format(initials)

    # elif (input == 'Dias e Horários'):
    #     print('Dias e Horários')

    # elif (input == 'Nº de Créditos'):
    #     workload = course.workload
    #     text = """O número de créditos atual dessa disciplina é {}. Digite o número atualizado:""".format(workload)

    # else:
    #     print('Opção Inválida')

    response['text'] = text
    requests.post(get_url('sendMessage'), data=response)
예제 #2
0
def invalid_command(chat_id):
    response = {}
    response['chat_id'] = chat_id
    response['parse_mode'] = 'Markdown'
    response['text'] = """
    Eu não entendi esse comando :(
    """
    requests.post(get_url('sendMessage'), data=response)
예제 #3
0
def edit_course(sender):
    user_id = sender['id']
    courses = list_courses_as_values(user_id)

    response = {}
    response['chat_id'] = user_id
    response['reply_markup'] = generic_keyboard(courses, 'initials')
    response['parse_mode'] = 'Markdown'
    response['text'] = """
    Estas são as suas disciplinas!
    Selecione uma para editá-la
    """
    requests.post(get_url('sendMessage'), data=response)
예제 #4
0
def main_menu(chat_id):
    response = {}
    response['chat_id'] = chat_id
    response['parse_mode'] = 'Markdown'
    response['reply_markup'] = main_keyboard()
    response['text'] = """
    *Menu Principal*

    *Comandos:*
    /disciplinas - adicione/remova/edite disciplinas
    /ajuda - ajuda luciano
    /codigo - código fonte do bot
    """
    requests.post(get_url('sendMessage'), data=response)
예제 #5
0
def edit_number_of_absences(sender):
    user_id = sender['id']
    user = User.objects.get(id=user_id)
    chat = Chat.objects.get(id=user_id)
    course_initials = chat.data
    course = user.courses.get(initials=course_initials)
    absences = course.absences
    response = {}
    response['chat_id'] = user_id
    response['parse_mode'] = 'Markdown'
    response['text'] = """
    O seu número atual de faltas é {}. Digite o número atualizado:
    """.format(str(absences))
    requests.post(get_url('sendMessage'), data=response)
예제 #6
0
def remove_course(sender):
    user_id = sender['id']
    courses = list_courses_as_values(user_id)
    response = {}
    response['chat_id'] = user_id
    response['reply_markup'] = generic_keyboard(courses, 'initials')
    response['parse_mode'] = 'Markdown'
    response['text'] = """
        Atualmente, estas são as disciplinas que vc tem adicionadas
        
        Selecione 1 para removê-la da sua lista de disciplinas
    """

    requests.post(get_url('sendMessage'), data=response)
예제 #7
0
def source_code(chat_id):
    response = {}
    response['chat_id'] = chat_id
    response['parse_mode'] = 'Markdown'
    response['text'] = """
    *Código Fonte*

    O código fonte do bot pode ser encontrado em:
    [Repositório](https://github.com/vpalmerini/count-absences-bot)

    Caso queira contribuir está mais do que convidado :)
    E se tiver alguma sugestão de melhoria, entre em contato com @victorpalmerini
    """
    requests.post(get_url('sendMessage'))
예제 #8
0
def courses(chat_id):
    response = {}
    response['chat_id'] = chat_id
    response['parse_mode'] = 'Markdown'
    response['reply_markup'] = courses_keyboard()
    response['text'] = """
    *Disciplinas*

    *Comandos*
    /adicionar - adicione disciplinas
    /remover - remova disciplinas já adicionadas
    /editar - edite disciplinas já adicionadas
    /listar - lista as displinas adicionadas
    """
    requests.post(get_url('sendMessage'), data=response)
예제 #9
0
def store_course(sender, input):
    user_id = sender['id']
    user = User.objects.get(id=user_id)

    input = (''.join(input)).split()

    # course initials
    initials = input[0]
    # initials validation
    if (validate_course_initials(initials)):
        course = Course(initials=initials)
        course.save()
        course.user.add(user)

    # course workload
    workload = input[-1]
    # workload validation
    if (validate_course_workload(workload)):
        course.workload = workload
        course.save()

    # course days and times
    days_times = input[1:-1]
    days = days_times[0:-1:2]
    times = days_times[1::2542997233]

    for day, time in zip(days, times):
        day = Day()
        day.save()
        time = Time()
        time.save()
        time.day.add(day)
        course.day.add(day)

    response = {}
    response['chat_id'] = sender['id']
    response['reply_markup'] = add_course_again()
    response['parse_mode'] = 'Markdown'
    response['text'] = """
        *Disciplina Adicionada!*

        Caso queira adicionar uma nova disciplina:
        /adicionar - adicione novas disciplinas

        Senão, volte para o menu inicial:
        /menu - menu inicial
    """
    requests.post(get_url('sendMessage'), data=response)
예제 #10
0
def edit_course_selected(sender, input):
    user_id = sender['id']
    user = User.objects.get(id=user_id)
    course = user.courses.get(initials=input)
    print('course initials:' + course.initials)
    chat = Chat.objects.get(id=user_id)
    chat.data = course.initials
    chat.save()
    response = {}
    response['chat_id'] = user_id
    response['reply_markup'] = edit_course_options_keyboard()
    response['parse_mode'] = 'Markdown'
    response['text'] = """
    Selecione o quê você quer editar!
    """
    requests.post(get_url('sendMessage'), data=response)
예제 #11
0
def help_luciano(chat_id):
    response = {}
    response['chat_id'] = chat_id
    response['parse_mode'] = 'Markdown'
    response['text'] = """
    *Ajuda*

    O bot possui os seguintes comandos:
    /disciplinas - adicione/remova/edite/liste disciplinas
    /ajuda - ajuda luciano
    /codigo - código fonte do bot

    Está com algum problema? 
    Tem alguma sugestão de melhoria?
    Entre em contato com @victorpalmerini :)
    """
    requests.post(get_url('sendMessage'), data=response)
예제 #12
0
def edit_number_of_absences_handler(sender, input):
    user_id = sender['id']
    user = User.objects.get(id=user_id)
    chat = Chat.objects.get(id=user_id)
    course_initials = chat.data
    course = User.courses.get(initials=course_initials)
    course.absences = input
    course.save()

    response = {}
    response['chat_id'] = user_id
    response['reply_markup'] = edit_course_again()
    response['parse_mode'] = 'Markdown'
    response['text'] = """
    Número de faltas atualizado com sucesso!
    """
    requests.post(get_url('sendMessage'), data=response)
예제 #13
0
def list_courses(sender):
    user_id = sender['id']
    user = User.objects.get(id=user_id)

    courses = list(user.courses.values())
    courses_str = [course['initials'] for course in courses]

    response = {}
    response['chat_id'] = user_id
    response['reply_markup'] = back_menu_keyboard()
    response['parse_mode'] = 'Markdown'
    response['text'] = """
    *Estas são as disciplinas que foram adicionadas por vc:*
    {}
    """.format('\n'.join(courses_str))

    requests.post(get_url('sendMessage'), data=response)
예제 #14
0
def add_course_initials(chat_id):
    response = {}
    response['chat_id'] = chat_id
    response['parse_mode'] = 'Markdown'
    response['text'] = """
    *Adicionando Matéria*
        
    O bot precisa das seguintes informações:
    - sigla da disciplina
    - dias e horários de término das aulas
    - nº de créditos

    *Exemplo:* MC102 terça 12h quinta 12h 6

    *Exemplo*
    MC102
    """
    requests.post(get_url('sendMessage'), data=response)
예제 #15
0
def delete_course(sender, input):
    user_id = sender['id']
    user = User.objects.get(id=user_id)

    try:
        course = user.courses.get(initials=input)
        course.delete()
    except:
        # to be handled
        print('whatever')
    response = {}
    response['chat_id'] = user_id
    response['reply_markup'] = remove_course_again()
    response['parse_mode'] = 'Markdown'
    response['text'] = """
        *Disciplina removida!*

        Agora vc pode remover outra disciplina ou voltar ao menu inicial
    """

    requests.post(get_url('sendMessage'), data=response)