Esempio n. 1
0
 def call(self, chat, author, arguments):
     poll = db.get_poll(chat)
     if poll is None:
         telegram.send(chat, "No active polls")
         return
     db.add_answer(poll, arguments)
     telegram.send(chat, "Answer addded")
Esempio n. 2
0
def add_answer():
    this_year = request.form["this_year"]
    season = request.form["season"]
    after_today = request.form["after_today"]
    prefecture = request.form["prefecture"]
    region = request.form["region"]

    db.add_answer(this_year, season, after_today, prefecture, region)

    return redirect(url_for("voice"))
Esempio n. 3
0
def record_response(color, text_color):
    try:
        color = validate_color(color)        
        if text_color is not None:
            text_color = validate_color(text_color)
    except ColorError as e:
        logging.exception(e)
        return

    conn = db_conn(app)
    db.add_answer(conn, color, text_color)
    conn.close()
Esempio n. 4
0
def answer(message):
    try:
        global isgamestarted
        global players
        if message.from_user.id not in players:
            bot.send_message(message.chat.id, 'You didn\'t register.\n*/start* please.',
                             parse_mode='Markdown')
            return
        if isgamestarted is True:
            key, status, response = qna.check(message.text)
            if status is not None:
                isnotanswered = db.add_answer(message.from_user.id, key, message.date, status, message.text)
                if isnotanswered is True:
                    bot.send_message(message.chat.id, response, parse_mode='Markdown')
                elif isnotanswered is False:
                    bot.send_message(message.chat.id, 'You already answered this question.')
            else:
                bot.send_message(message.chat.id, response, parse_mode='Markdown')
        elif isgamestarted is False:
            bot.send_message(message.chat.id, gamestatus)
    except Exception as e:
        print(e)
        bot.send_message(message.chat.id, 'Exception :(')
Esempio n. 5
0
    def assign_interview(self):
        
        # intro message
        self.client_socket.send( ('Interview Assignment').encode( ))

        #Receives a username from client
        User_Search = self.client_socket.recv(1024).decode() # "Enter the username of the interviewee:"

        ###CHECK DATABASE FOR###
        # import sqlite3 first
        
        conn= sqlite3.connect( 'interview.db' )
        interview_user = ''
        while True:
            try:
                interview_user = db.retrieve_user_by_name(conn, User_Search)
                break
            except TypeError:
                #if no existing user
                self.client_socket.send( ('User does not exist, try again.').encode() )
                if interview_user == 'quit':
                    return
                User_Search = self.client_socket.recv(1024).decode()
                #interview_user = db.retrieve_user_by_name(conn, User_Search)

        self.client_socket.send( ('User exists').encode() )#user_conf
        #User_Found = User_Row[0]
        
        #else
        #display list of available interviews
        conn= sqlite3.connect( 'interview.db' )
        interviews = db.retrieve_interview_all(conn)
        for interview in interviews:
             self.client_socket.send( ('(' + str(interview[0]) + ') ' + interview[1]).encode() )
        #Receives a interview from client

        self.client_socket.send( ('end').encode() )


        interview_id = self.client_socket.recv(1024).decode()

        
        while True:
            try:
                interview_name = db.retrieve_interview_title(conn, interview_id)
                break
            except TypeError:
                self.client_socket.send( ('Interview does not exist, try again.').encode() )
                if interview_name == 'quit':
                    return
                interview_id = self.client_socket.recv(1024).decode()       

        self.client_socket.send( ('Assigning Interview').encode() ) #interview_conf

        ###ADD INTERVIEW TO USER'S INBOX###
        #db.assign_interview(conn, interview_id, interview_user )
        #self.client_socket.send( (interview_name + " has been assigned to " + User_Search + ".").encode() ) #interview_conf
        conn= sqlite3.connect( 'interview.db' )
        questions = db.retrieve_questions(conn, interview_id)

        for question in questions:
            db.add_answer(conn, interview_user, question[0], None, interview_id)
            print('created answer space for question: ' + str(question[0]))

            #self.client_socket.send( ('(' + str(interview[0]) + ') ' + interview[1]).encode() )
        self.client_socket.send( (interview_name + " has been assigned to " + User_Search + ".").encode() ) #interview_conf

        conn.close()
        return
Esempio n. 6
0
async def add_reaction_on_survey_answer(client, member, survey_id, question_id,
                                        emoji, message):
    logging.info(
        f"Adding reaction ({emoji}) from user {member_to_string(member)} for survey ({survey_id}) question ({question_id})."
    )

    if db.is_survey_progress_finished(survey_id, member.id):
        logging.info(
            f"User {member_to_string(member)} survey ({survey_id}) already finished. Removing reaction from message."
        )
        await message.remove_reaction(emoji, member)
        return

    existing_answer_to_question = db.get_answer_of_answered_survey_question_or_none(
        question_id, member.id)
    if (not db.is_multiple_choice_survey_question(question_id)
            and existing_answer_to_question is not None):
        logging.info(
            f"Removing existing answer from user {member_to_string(member)} for survey ({survey_id}) question ({question_id})."
        )
        # Remove answer from db
        db.remove_user_answer(member.id, question_id,
                              existing_answer_to_question)
        # Remove reaction from answer
        emoji_to_delete = db.get_emoji_from_survey_answer(
            existing_answer_to_question)
        await message.remove_reaction(emoji_to_delete, member)

    db.add_answer(member.id, question_id, db.get_answer_id(question_id, emoji))

    if db.are_all_survey_questions_answered(member.id, survey_id):
        logging.info(
            f"User {member_to_string(member)} answered all survey ({survey_id}) questions."
        )

        await add_receive_role_if_exists(client, member, survey_id)

        db.finish_user_survey_progress(survey_id, member.id)

        logging.info(
            f"User {member_to_string(member)} finished survey ({survey_id}).")

        await message.channel.send(SURVEY_FINISHED_MESSAGE)
    elif db.is_last_question(survey_id, question_id):
        logging.info(
            f"Sending unanswered questions to user {member_to_string(member)} on survey ({survey_id})."
        )
        await message.remove_reaction(emoji, member)

        unanswered_questions = db.get_unanswered_question_texts(
            survey_id, member.id)

        embed_description = "\n".join(
            ["- " + question for question in unanswered_questions])
        embed = discord.Embed(
            title=UNANSWERED_QUESTIONS_TEXT,
            description=embed_description,
            colour=discord.Colour(0xFFFF00),
        )
        await message.channel.send(embed=embed)
    elif existing_answer_to_question is None:
        await send_next_question(message.channel, member, survey_id,
                                 question_id)