diff options
author | jwansek <eddie.atten.ea29@gmail.com> | 2022-05-21 22:38:52 +0100 |
---|---|---|
committer | jwansek <eddie.atten.ea29@gmail.com> | 2022-05-21 22:38:52 +0100 |
commit | f2f734194c03dfff2024cf417c502515ddb7a855 (patch) | |
tree | 745910a6206be1243187523bef355849dda0da77 /Smarker | |
parent | abc7f067ff20bc2bd07d9236c30055549481547c (diff) | |
download | Smarker-f2f734194c03dfff2024cf417c502515ddb7a855.tar.gz Smarker-f2f734194c03dfff2024cf417c502515ddb7a855.zip |
Added running as an API
Diffstat (limited to 'Smarker')
-rw-r--r-- | Smarker/database.py | 17 | ||||
-rw-r--r-- | Smarker/requirements.txt | 2 | ||||
-rw-r--r-- | Smarker/smarker.conf | 24 |
3 files changed, 36 insertions, 7 deletions
diff --git a/Smarker/database.py b/Smarker/database.py index 37a44db..a3f77af 100644 --- a/Smarker/database.py +++ b/Smarker/database.py @@ -1,5 +1,6 @@ from dataclasses import dataclass import pymysql +import secrets import yaml @dataclass @@ -54,7 +55,8 @@ class SmarkerDatabase: CREATE TABLE students( student_no VARCHAR(10) PRIMARY KEY NOT NULL, name TEXT NOT NULL, - email VARCHAR(50) NOT NULL + email VARCHAR(50) NOT NULL, + apikey VARCHAR(64) NOT NULL ); """) cursor.execute(""" @@ -175,8 +177,8 @@ class SmarkerDatabase: email (str): Student's email """ with self.__connection.cursor() as cursor: - cursor.execute("INSERT INTO students VALUES (%s, %s, %s);", - (student_id, name, email)) + cursor.execute("INSERT INTO students VALUES (%s, %s, %s, %s);", + (student_id, name, email, secrets.token_urlsafe(32))) self.__connection.commit() def add_submission(self, student_id, assessment_name, report_yaml, files): @@ -198,9 +200,9 @@ class SmarkerDatabase: cursor.execute(""" INSERT INTO submitted_files (submission_id, file_id, file_text) - VALUES (%s, (SELECT file_id FROM assessment_file WHERE file_name = %s), %s); + VALUES (%s, (SELECT file_id FROM assessment_file WHERE file_name = %s AND assessment_name = %s), %s); """, ( - submission_id, file_name, file_contents + submission_id, file_name, assessment_name, file_contents )) self.__connection.commit() @@ -240,6 +242,11 @@ class SmarkerDatabase: cursor.execute("SELECT file_name FROM assessment_file WHERE assessment_name = %s;", (assessment_name, )) return [i[0] for i in cursor.fetchall()] + def valid_apikey(self, key): + with self.__connection.cursor() as cursor: + cursor.execute("SELECT apikey FROM students WHERE apikey = %s", (key, )) + return key in [i[0] for i in cursor.fetchall()] + if __name__ == "__main__": with SmarkerDatabase(host = "vps.eda.gay", user="root", passwd=input("Input password: "), db="Smarker", port=3307) as db: # print(db.get_assessments_required_files("example")) diff --git a/Smarker/requirements.txt b/Smarker/requirements.txt index 3be9c36..af89c27 100644 --- a/Smarker/requirements.txt +++ b/Smarker/requirements.txt @@ -1,5 +1,3 @@ -# sudo apt-get install wkhtmltopdf
-# https://github.com/olivierverdier/python-latex-highlighting
Jinja2==3.0.3
misaka==2.1.1
Pygments==2.10.0
diff --git a/Smarker/smarker.conf b/Smarker/smarker.conf new file mode 100644 index 0000000..3416564 --- /dev/null +++ b/Smarker/smarker.conf @@ -0,0 +1,24 @@ +[mysql]
+host = vps.eda.gay
+port = 3307
+user = root
+passwd = ************
+
+[tex]
+columns = 1
+show_full_docs = True
+show_source = True
+show_all_regex_occurrences = True
+show_all_run_output = True
+
+[md]
+show_full_docs = False
+show_source = False
+show_all_regex_occurrences = True
+show_all_run_output = False
+
+[txt]
+show_full_docs = True
+show_source = True
+show_all_regex_occurrences = True
+show_all_run_output = True
\ No newline at end of file |