1

worked a lot on moderator.py, database designed refined

This commit is contained in:
ventilaar 2020-10-20 15:21:05 +02:00
parent 35aa849680
commit 3ca310ce5a
9 changed files with 160 additions and 16 deletions

View File

@ -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

View File

@ -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');

View File

@ -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">7V1bc+I2FP41mWkfdgdfgceEJLudbDppkmmTvnQUrGDvGovKIkB/fWVbAhsJsFnfMJrJTJAsy9b5jj4dHUnHF8ZouvyCwcy9Rw70L/Ses7wwri90XTOsHv0X5aySnIFmJxkT7Dms0CbjyfsPskx232TuOTDMFCQI+cSbZTPHKAjgmGTyAMZokS32jvzsU2dgAoWMpzHwxdy/PIe4LFezh5sLX6E3cdmjB3o/uTAFvDBrSegCBy1SWcbNhTHCCJHk13Q5gn4kPC6X5L7bHVfXL4ZhQPLcsHjoBcPZo+38uZr/9ng3uXy8n36yBkk1H8CfsxaztyUrLgIYOJeRJGnq5hEFNPfKJVOfJjX6kz4dr15ooscTr1His8WT18v0xesVTy098sLroL9Td9HU5qYowe8JCcAk8y7P6B4EK37p1vP99cOcVEqUFRNfiOZ4DPcISDeY0gE8gWRPQY0VhE5GoRgWXyCaQtp8WmCxUSPeOdyUAvE8DH1AvI+sGgKmzZN1desnPCCPtk3vsZ5n2awe1u9Ms5etImk5uyutNlsV2Vq2ImO4VVEiGaEi+iPV7E1WrJVFNHT40xp6hKYdrdUZtRP1VaKpx+umOcipm31T6WYVutnXTok9D+nmTi49XkP7ek4NtTWloVVoaA4FpXbJLPpJwJu/pZ0L1yPwaQZijBfUwOPKwey0SDmo4UWAF0DM7hkj3wez0IsrS0q4nu98Ays0J/wxPLVbtT4gJnC5VxXYVXOQFbHGDa6UquimRFd0296tFxkgikpdzy912nTiAf+R2q4gmOQBQBSwg9HsmfewKGMWqRPENx9UqiHLe6f9eYR8FOEUJDxE0Ixd9OE7v/cNEYKmLIGZtNaVxpKyrugfFegoYhyLtmZE09omTf+i4piMUBASDLwYWwhCsoChHPW9yntYFQ5CbVSEtCFB2vajNr7RH5P4B8Te2CUw4Ffog9YXS9WLeAYENnqBqOTe/ZjgXc9x6BuUoAY5sdOPwU6TUXoZ2PXt10vwz5U11tyF92YN7qyv+idtqKTPSXQt+RQawzo7kqkos17KXGUBPcigekXAWzsZNJyBIKMB9r/zyFly9U5Njk8L9nKXtEiA8BT4mwJb1EufH9kEa/ZNKk6KPNydHglE7X9i7ytxA+3tXyXwcQmaIOVjbrdVogohVYU4X6YESgV+blCoihtsNSg0MiiYVs5BoSproC8Az6j89HpqTozs3Bg1Zi/rojPhA+CxC/Avmtn7VUHTGmM6x6KO4s0KeNMeNGxMi2slDiDzKTUWPii6kQuio310kBuq5sxb0StIwYEKktaYm9xXr2iyWpoc5nXQVwa0aMkQ77vTfZrkGt5qnhR96sSbdpcnC2DSFqLke5wUUVZLlJqmN8yUujiVCACYzlBI8Uh5VdcLWr+f1ypXPzekzfGpuLTCp+2G3t1ZewFoWkOrhqLVWmjVMJumVbFPTpEDMSAIZ1ar1hR6e3dexGrkBrU5YhWXLvkurjOHpC2EaliKUGshVMtumFANcakw9nxO4A84x1JGPS9LlXeFVhOqFMTuzvwLYNIaRlUz/3oYtd/0UpIhzvwjH6ki1K2e0GpCFfdRdNqVWgCTBgj1d03/W/82Xz1PdMMd/PEDv476nBkUn6b5VMAvL8Xu3ubaq3HNSQq0LnTFkFALNYym+6fZHQ+gtFvdm2FI6fuIa00nPIUvEZC22Jv8AKHix4qPAXAEG7M3+2JX9NEYEA8qh2iqI7Ta3BSnDCfMpmVC0ho6NRWd1kKnZtMrTH1xcYIsPELB2E2nvfOawfdP4UyUuKP3zZt0mlVP8JiS7ODaDnhONcrCYCsihiHbxNmTSJ3viS9f6gViW6jBLYf2FguzIMO6sgMttug9EUYwNlsIz2oMs/N35PQYVhV48jgL5fo4T1T8yy3R1wGH/J1lMUsUb1bJm3tiLUihr8xQEbed7fWxPJyXj8U+btNZVRDKyVSyjsBCGyhUCnNsZR1NFtVEcWwNHCsLXVDv8CpuYopOTHS3ex63saxeC1Q0efgRCNvs7hGIAtC0xjqVjG878emKL0Xr5/SlrM+DlS92NSkoZ6VAz60MjY1QmizW3pblvz6Ncl7uFK3EGUBlg1m5a3gnKv72DFjK1K+bOdviTtFEU//AKb4zc6hoJc4NKnOoiP234w6VAqi0xqGiiTvZFcvWwrKNO1Q0eQiK7nbP4w6W1GuDiiPfOThUCkDTHvs0x/eTFHNWwZyyaJC1DpqSgNouCF2ZYXpeO//WfaLNdqlo8cT8qltWhwk2PzCtMU31cre3KD7dxad5dxxWh7S4NuHTdocwihh57pxaYBmkOU6VnWmfUrUF05kCpkWcahaY7p/qKqDGz4PwHdV2Tn7b/oRgeVJXceNLGdrMo2bw9XpVTNm0cGsAYweGzvMDduZxIeWNOt0wtpL+hk4NkT77dfYoS5xtK/aslj3bshBoSeLJ7ztseWbLgOueUQKVVjU1kHxxqtvnLAuAUpRhK+tm4vxbMWwtDNv4IqAl7k+M43vO5m++F7rQ6W4/ze8na8wOFeeNnY7bWQCS1hin6vvKDVFn46uAliQSiPfdOQPmPC6+R61mp+iF6XSAzgKQNGB0ygPkFdjf26Ar+kDsv2Ku6NwHUsoI7iGXuvr0cwmBUvcodDOuaPkLyRZ7tjwmSazUbgX3OAo8+/AAVi94AyX+Znb7yV9Q7farmzcbcELLA0yL6w+bCNNd90EfBejwSC6tDEFxGeG0j6KUiUoTe1PkKCkvdEMUW6cXWg696IVOKPacOmii7i0yQbv5gdMyoWmNeSr5ZKKADwycS4xjmd48JvJL4UIFgFcv6cRrJDZKTSx5vWRiTFIrnlp65CX1O3UXTW1uihL8nthPk3mXZ3QPghW/dOtFrWcPc1KppE3QmcCd+PFN42iOx3AfJSblCB8Ais5MUlDLAhfzPAx9QLyP7PvK4GdPeEDx2jjXLKOXdSDpQ/Mzj0DNa0maym7c6JFQl7nljNI17bO+VVciDqGuWCfXjZepKU1ihEi6OO3b7j1yYFTifw==</diagram></mxfile>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 370 KiB

After

Width:  |  Height:  |  Size: 406 KiB

View File

@ -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

View File

@ -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()

View File

@ -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')