worked a lot on moderator.py, database designed refined
This commit is contained in:
parent
35aa849680
commit
3ca310ce5a
@ -1 +1 @@
|
||||
<mxfile host="Electron" modified="2020-10-19T13:30:06.202Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/13.6.2 Chrome/83.0.4103.122 Electron/9.2.0 Safari/537.36" etag="kfalz6tyMa85AB49RY_T" version="13.6.2" type="device"><diagram id="JNM6W-7HF5Xyfk11UdC0" name="Page-1">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</diagram></mxfile>
|
||||
<mxfile host="Electron" modified="2020-10-20T11:00:03.872Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/13.6.2 Chrome/83.0.4103.122 Electron/9.2.0 Safari/537.36" etag="ZBDpQQ2WmE6KWBS7qbMe" version="13.6.2" type="device"><diagram id="JNM6W-7HF5Xyfk11UdC0" name="Page-1">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</diagram></mxfile>
|
Binary file not shown.
Before Width: | Height: | Size: 260 KiB After Width: | Height: | Size: 280 KiB |
@ -1,5 +1,5 @@
|
||||
CREATE TABLE locaties(
|
||||
locatieid serial PRIMARY KEY,
|
||||
locatieid int PRIMARY KEY,
|
||||
naam varchar(64) NOT NULL
|
||||
);
|
||||
|
||||
@ -16,6 +16,11 @@ CREATE TABLE twitterberichten(
|
||||
tijdpublished time NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE statuses(
|
||||
statusid int PRIMARY KEY,
|
||||
status varchar(32)
|
||||
);
|
||||
|
||||
CREATE TABLE berichten(
|
||||
berichtid serial PRIMARY KEY,
|
||||
bericht varchar(140) NOT NULL,
|
||||
@ -25,14 +30,21 @@ CREATE TABLE berichten(
|
||||
moderatorid int,
|
||||
datumgekeurd date,
|
||||
tijdgekeurd time,
|
||||
statusid int NOT NULL,
|
||||
locatieid int NOT NULL,
|
||||
twitterid bigint,
|
||||
FOREIGN KEY (twitterid) REFERENCES twitterberichten(twitterid),
|
||||
FOREIGN KEY (locatieid) REFERENCES locaties(locatieid),
|
||||
FOREIGN KEY (moderatorid) REFERENCES moderators(moderatorid)
|
||||
FOREIGN KEY (moderatorid) REFERENCES moderators(moderatorid),
|
||||
FOREIGN KEY (statusid) REFERENCES statuses(statusid)
|
||||
);
|
||||
|
||||
INSERT INTO locaties(naam) VALUES ('Utrecht Centraal');
|
||||
INSERT INTO locaties(naam) VALUES ('Amsterdam Centraal');
|
||||
INSERT INTO locaties(naam) VALUES ('Rotterdam Centraal');
|
||||
INSERT INTO moderators(naam) VALUES ('administrator');
|
||||
INSERT INTO moderators(naam, hash) VALUES ('administrator', 'CB9644CE70D89929B7AF40A2611B0EF3BBD5105A43B3C45FEDCBDDDCECF25EDC');
|
||||
INSERT INTO locaties(locatieid, naam) VALUES ('1', 'Utrecht Centraal');
|
||||
INSERT INTO locaties(locatieid, naam) VALUES ('2', 'Amsterdam Centraal');
|
||||
INSERT INTO locaties(locatieid, naam) VALUES ('3', 'Rotterdam Centraal');
|
||||
INSERT INTO statuses(statusid, status) VALUES ('1', 'pending moderation');
|
||||
INSERT INTO statuses(statusid, status) VALUES ('2', 'moderation lock');
|
||||
INSERT INTO statuses(statusid, status) VALUES ('3', 'moderation rejected');
|
||||
INSERT INTO statuses(statusid, status) VALUES ('4', 'moderation accepted');
|
||||
INSERT INTO statuses(statusid, status) VALUES ('5', 'published');
|
||||
|
@ -1 +1 @@
|
||||
<mxfile host="Electron" modified="2020-10-19T13:26:46.696Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/13.6.2 Chrome/83.0.4103.122 Electron/9.2.0 Safari/537.36" etag="Hvc4sliGyR4v6YbtPxLC" version="13.6.2" type="device"><diagram id="JNM6W-7HF5Xyfk11UdC0" name="Page-1">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</diagram></mxfile>
|
||||
<mxfile host="Electron" modified="2020-10-20T10:57:25.099Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/13.6.2 Chrome/83.0.4103.122 Electron/9.2.0 Safari/537.36" etag="BMyJVbrVZ4EPQjX7XkGy" version="13.6.2" type="device"><diagram id="JNM6W-7HF5Xyfk11UdC0" name="Page-1">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</diagram></mxfile>
|
Binary file not shown.
Before Width: | Height: | Size: 370 KiB After Width: | Height: | Size: 406 KiB |
@ -1 +1 @@
|
||||
<mxfile host="Electron" modified="2020-10-19T13:29:16.209Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/13.6.2 Chrome/83.0.4103.122 Electron/9.2.0 Safari/537.36" etag="Wm12LA_wLMCQzkUFTVvu" version="13.6.2" type="device"><diagram id="JNM6W-7HF5Xyfk11UdC0" name="Page-1">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</diagram></mxfile>
|
||||
<mxfile host="Electron" modified="2020-10-20T10:58:22.189Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/13.6.2 Chrome/83.0.4103.122 Electron/9.2.0 Safari/537.36" etag="eqiQvSHtfg_PLV3qvBa5" version="13.6.2" type="device"><diagram id="JNM6W-7HF5Xyfk11UdC0" name="Page-1">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</diagram></mxfile>
|
Binary file not shown.
Before Width: | Height: | Size: 242 KiB After Width: | Height: | Size: 267 KiB |
@ -1,14 +1,61 @@
|
||||
import database_connector
|
||||
import datetime
|
||||
|
||||
conn = database_connector.conn
|
||||
cur = database_connector.cur
|
||||
|
||||
def insertdatabase(bericht):
|
||||
# aanpasbare variabelen
|
||||
|
||||
locatieid = 1
|
||||
|
||||
def insertdatabase(bericht, naamposter):
|
||||
|
||||
time = datetime.datetime.utcnow().strftime("%H:%M:%S")
|
||||
date = datetime.datetime.utcnow().strftime("%Y-%m-%d")
|
||||
|
||||
try:
|
||||
QUERY = 'INSERT INTO berichten(bericht, datumontvangen, tijdontvangen, locatieid, naamposter, statusid) VALUES (%s, %s, %s, %s, %s, %s)'
|
||||
DATA = (bericht, date, time, locatieid, naamposter, '1')
|
||||
cur.execute(QUERY, DATA)
|
||||
conn.commit()
|
||||
return True
|
||||
except:
|
||||
return False
|
||||
|
||||
def vraaginvoer():
|
||||
try:
|
||||
feedback = input('Voer uw feedback in: ')
|
||||
if len(feedback) > 140:
|
||||
print('Uw bericht is te lang, maximaal 140 characters. Uw bericht was ' + str(len(feedback)) + ' characters lang.')
|
||||
return False
|
||||
elif len(feedback) < 16:
|
||||
print('Maak er graag een nuttig bericht van. dank. u. wel.')
|
||||
return False
|
||||
except:
|
||||
print('Ongeldige invoer')
|
||||
return False
|
||||
|
||||
try:
|
||||
naam = input('Onder welke naam?:')
|
||||
if len(naam) > 32:
|
||||
print('Uw naam is te lang, verander uw naam in de geboorteakte bij uw gemeente.')
|
||||
return False
|
||||
elif len(naam) < 3:
|
||||
print('Uw naam is best kort, we veranderen de naam naar anoniem.')
|
||||
naam = 'Anoniem'
|
||||
except:
|
||||
print('Ongeldige invoer')
|
||||
return False
|
||||
|
||||
if insertdatabase(feedback, naam):
|
||||
print('We hebben uw bericht ontvangen, het bericht wordt openbaar gemaakt als het wordt goedgekeurt')
|
||||
return True
|
||||
else:
|
||||
print("Er was een probleem met het invoegen in de database, probeer het later nog een keer")
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def feedback():
|
||||
while True:
|
||||
vraaginvoer()
|
93
moderator.py
93
moderator.py
@ -2,13 +2,15 @@ import hashlib
|
||||
import getpass
|
||||
import database_connector
|
||||
import api_keys
|
||||
import datetime
|
||||
import TwitterAPI
|
||||
|
||||
conn = database_connector.conn
|
||||
cur = database_connector.cur
|
||||
|
||||
def newaccount():
|
||||
"""
|
||||
Spreekt voorzich
|
||||
Spreekt voorzich, dit was een test functie om sql een beetje onder de knie te krijgen
|
||||
:returns True on success, False on error
|
||||
"""
|
||||
try:
|
||||
@ -37,7 +39,7 @@ def newaccount():
|
||||
|
||||
if sqlreturn == None:
|
||||
"""
|
||||
password1 appenden met saltedlol an beide encoden als utf8(ja ik weet het, zo werkt salting niet)
|
||||
password1 appenden met 'saltedlol' an beide encoden als utf8(ja ik weet het, zo werkt salting niet)
|
||||
daarna hashen met sha256(ja ik weet het er zijn betere manieren)
|
||||
|
||||
na al dat gedoe, in de database inserten met gebruikersnaam en hash
|
||||
@ -55,10 +57,93 @@ def newaccount():
|
||||
print('Gebruiker bestaat al!')
|
||||
return False
|
||||
|
||||
def publish(berichtid):
|
||||
def publishtwit(berichtid):
|
||||
"""
|
||||
ontvangt lokaal bericht id en published dat bericht naar twitter
|
||||
na het publishen, de functie pakt dan de twitter uniek id en zet het in de twitter berichten table met alle
|
||||
waarden die twitter mee heeft gegeven zoals: id, tijd, datum
|
||||
:returns True on success, False on error
|
||||
na het successfol publishen gaat de bericht status naar published(5)
|
||||
"""
|
||||
|
||||
def getmessage(moderatorid):
|
||||
"""
|
||||
vraagt de outste bericht op en zet het bericht gelijk op moderator lock(2)
|
||||
returnt een tuple met de oudste bericht met de status 1(pending moderation)
|
||||
de tuple ziet er alsvolgt uit: (berichtid int, berichtinhoud str, datum date, tijd time, naam str)
|
||||
"""
|
||||
cur.execute("SELECT berichtid, bericht, datumontvangen, tijdontvangen, naamposter FROM berichten WHERE statusid = 1 ORDER BY datumontvangen, tijdontvangen LIMIT 1")
|
||||
|
||||
gottuple = cur.fetchone()
|
||||
|
||||
if gottuple == None:
|
||||
return False
|
||||
|
||||
cur.execute("UPDATE berichten SET statusid = 2, moderatorid = (%s) WHERE berichtid = (%s)", (gottuple[0], moderatorid))
|
||||
conn.commit()
|
||||
return gottuple
|
||||
|
||||
def unlockmessage(berichtid):
|
||||
cur.execute("UPDATE berichten SET statusid = 1, moderatorid = NULL WHERE berichtid = (%s)", [berichtid])
|
||||
conn.commit()
|
||||
return True
|
||||
|
||||
def acceptmessage(berichtid, moderatorid):
|
||||
|
||||
time = datetime.datetime.utcnow().strftime("%H:%M:%S")
|
||||
date = datetime.datetime.utcnow().strftime("%Y-%m-%d")
|
||||
|
||||
QUERY = "UPDATE berichten SET statusid = 4, datumgekeurd = (%s), tijdgekeurd = (%s), moderatorid = (%s) WHERE berichtid = (%s)"
|
||||
DATA = (date, time, berichtid, moderatorid)
|
||||
cur.execute(QUERY, DATA)
|
||||
conn.commit()
|
||||
return True
|
||||
|
||||
def rejectmessage(berichtid, moderatorid):
|
||||
|
||||
time = datetime.datetime.utcnow().strftime("%H:%M:%S")
|
||||
date = datetime.datetime.utcnow().strftime("%Y-%m-%d")
|
||||
|
||||
QUERY = "UPDATE berichten SET statusid = 3, datumgekeurd = (%s), tijdgekeurd = (%s), moderatorid = (%s) WHERE berichtid = (%s)"
|
||||
DATA = (date, time, berichtid, moderatorid)
|
||||
cur.execute(QUERY, DATA)
|
||||
conn.commit()
|
||||
return True
|
||||
|
||||
|
||||
def moderateloop():
|
||||
"""
|
||||
deze functie stop alleen als de gebruiker het aangeeft met: q
|
||||
|
||||
deze functie vraagt ten eerste de outste bericht door getmessage()
|
||||
daarna weergeven de bericht, naam, tijd en datum.
|
||||
als de moderator het bericht goedkeurt de status van bericht veranderen naar moderator accepted(4)
|
||||
als de bericht wordt afgewezen verander de status naar moderator rejected(3) en loop weer verder
|
||||
nadat de bericht is goedgekeurt direct de functie publishtwit(berichtid) en loopt weer verder
|
||||
"""
|
||||
|
||||
while True:
|
||||
exitvar = False
|
||||
|
||||
bericht = getmessage()
|
||||
|
||||
if bericht == False:
|
||||
print('Er zijn geen berichten meer om te weergeven, probeer het later opnieuw')
|
||||
return True
|
||||
|
||||
print("Op " + str(bericht[2]) + " " + str(bericht[3]) + " heeft " + str(bericht[4]) + " een bericht achtergelaten")
|
||||
print(str(bericht[0]) + " " + str(bericht[1]))
|
||||
|
||||
while exitvar != True:
|
||||
try:
|
||||
modinput = input('r = reject, a = accept, q = quit: ').lower()
|
||||
if modinput == 'r':
|
||||
rejectmessage(bericht[0])
|
||||
exitvar = True
|
||||
elif modinput == 'a':
|
||||
acceptmessage(bericht[0])
|
||||
exitvar = True
|
||||
elif modinput == 'q':
|
||||
unlockmessage(bericht[0])
|
||||
return True
|
||||
except:
|
||||
print('Ongeldige invoer')
|
Reference in New Issue
Block a user