💾 Archived View for gemini.smallweb.space › HOWTO › examples › thanks.txt captured on 2023-09-08 at 16:05:26.

View Raw

More Information

-=-=-=-=-=-=-

#!/usr/bin/env python3

import sys, json
sys.path.append('lib/')
from helpers import *

qString = get_query_string()

if isinstance(qString, dict):
    if ('feedback' in qString and 'page' in qString):
        
        # simplify data access
        pageName = qString['page'][0]
        feedback = qString['feedback'][0]

        # Validity data
        validFeedback = ["thanks", "not_helpful", "no_opinion"]

        if (feedback in validFeedback):

            # open file and insert data
            with open("thanks.json", "r+") as file:
                
                # Load the json file
                dataDict = json.load(file)
                
                # Create entry if it doesn't exist
                if (pageName) not in dataDict:
                    dataDict[pageName] = {'thanks': 0, 'not_helpful':0, 'no_opinion':0}
                
                # Update the count
                dataDict[pageName][feedback] += 1 

                # write the data, truncating file first
                file.seek(0)
                file.truncate()
                json.dump(dataDict, file, indent = 2)

                # Display success
                show_header_ok()
                print("# Feedback Recorded")
                print(" ")
                print("Thanks, your feedback has been recorded.")
                print(f"=> {pageName} Return to page")
                


        else:
            show_header_ok()
            print("Not valid parameters")
    else:
        show_header_ok()
        print("No valid data, expected 'feedback' and 'page' params")
else:
    show_header_ok()
    print("No valid data passed")