summaryrefslogtreecommitdiff
path: root/cgi-bin/insert.py
diff options
context:
space:
mode:
Diffstat (limited to 'cgi-bin/insert.py')
-rw-r--r--cgi-bin/insert.py59
1 files changed, 59 insertions, 0 deletions
diff --git a/cgi-bin/insert.py b/cgi-bin/insert.py
new file mode 100644
index 0000000..61f5cd9
--- /dev/null
+++ b/cgi-bin/insert.py
@@ -0,0 +1,59 @@
+#!C:\Python364\python3.exe
+# -*- coding: utf-8 -*-
+import sys, codecs
+import cgi, cgitb
+import pymysql
+import issuedb
+import time
+from issuedb import IssueDBFactory
+sys.stdout = codecs.getwriter('utf8')(sys.stdout.buffer)
+
+db = IssueDBFactory.produce()
+cursor = db.cursor()
+
+form = cgi.FieldStorage()
+title = form.getvalue('issue_title')
+
+tags = form.getvalue('issue_tags')
+issue_desc = form.getvalue('issue_description')
+issue_solve = form.getvalue('issue_solve')
+tag_list = None
+if tags != None:
+ tag_list = tags.split()
+
+query = "insert into issue (issueTitle, issueDesc, issueSolve, issueTime) values ('{0}', '{1}', '{2}', '{3}');".format(pymysql.escape_string(title), pymysql.escape_string(issue_desc), pymysql.escape_string(issue_solve), str(time.time()))
+
+cursor.execute(query)
+db.commit()
+issueId = cursor.lastrowid
+
+for tag in tag_list:
+ cursor.execute("select tagId from tag where tagName = '{0}'".format(tag))
+ tagId = cursor.fetchone()
+ if tagId == None:
+ cursor.execute("insert into tag (tagName) values ('{0}');".format(tag))
+ db.commit()
+ tagId = cursor.lastrowid
+ else:
+ tagId = tagId[0]
+ cursor.execute("select relationId from relation where tagId ='{0}' and issueId = '{1}'".format(tagId, issueId))
+ relationId = cursor.fetchone()
+ if relationId == None:
+ cursor.execute("insert into relation (tagId, issueId) values ('{0}', '{1}')".format(tagId, issueId))
+ db.commit()
+
+print("Content-type:text/html\n")
+redirect = """
+<html>
+<head>
+<meta http-equiv="refresh" content="0;url=issue?id={0}">
+</head>
+</html>
+""".format(issueId)
+print(redirect)
+
+cursor.close()
+db.close()
+
+
+