background image

 

 

50 

 

def update_user_question_count(user_id, topic, reduce=True, initial_num_questions=None): 
    with sqlite3.connect('topics.db') as conn: 

        cursor = conn.cursor() 
        #try to reduce the question count 
        if reduce: 

            print(f"reduce num_questions for user_id: {user_id}, topic: {topic}") 
            cursor.execute(''' 
                UPDATE user_topics 
                SET num_questions = num_questions - 1 

                WHERE user_id = ? AND topic = ? 
            ''', (user_id, topic)) 
            #ff the number of questions is below 0 sit must be set to 0 
            cursor.execute(''' 

                UPDATE user_topics 
                SET num_questions = 0 
                WHERE user_id = ? AND topic = ? AND num_questions < 0 
            ''', (user_id, topic)) 

        else: 
            print(f"set num_questions for user_id: {user_id}, topic: {topic}") 
            #insert the number of questions for user and topic 

            #if the same user id or topic already exists ignore will ignore the insertion and 
preventing an error or a duplication of user id 
            cursor.execute(''' 
                INSERT 

OR 

IGNORE 

INTO 

user_topics 

(user_id, 

topic, 

num_questions, 

initial_num_questions) 
                VALUES (?, ?, ?, ?) 
            ''', (user_id, topic, initial_num_questions, initial_num_questions)) 
        #commit to ensure saving data 

        conn.commit() 

 

 

Η  get_user_question_count  επιστρέφει  τον  αριθμό  των  διαθέσιμων  ερωτήσεων  για  τον 

εκάστοτε  χρήστη  σε  συγκεκριμένη  θεματική.  Σε  περίπτωση  που  υπάρχει  αποτέλεσμα 

επιστρέφεται ο αριθμός των ερωτήσεων που έχουν απομείνει, διαφορετικά τυπώνεται μήνυμα 

στο τερματικό που ενημερώνει για τη μη ύπαρξη ερωτήσεων για το συγκεκριμένο χρήστη ή 

θεματική.

 

def get_user_question_count(user_id, topic): 
    with sqlite3.connect('topics.db') as conn: 

        cursor = conn.cursor() 
        #select the number of users questions for current topic 
        cursor.execute('SELECT num_questions FROM user_topics WHERE user_id = ? AND topic = ?', 
(user_id, topic)) 

        result = cursor.fetchone() 
        if result: 
            #return the number of remaining questions 
            return result[0] 

        else: 
            print(f"No questions found for user_id {user_id} and topic {topic}.") 
            return 0