2020-10-19 17:58:20 +02:00
|
|
|
import hashlib
|
|
|
|
import getpass
|
|
|
|
import database_connector
|
|
|
|
import api_keys
|
|
|
|
|
|
|
|
conn = database_connector.conn
|
|
|
|
cur = database_connector.cur
|
|
|
|
|
|
|
|
def newaccount():
|
|
|
|
"""
|
|
|
|
Spreekt voorzich
|
|
|
|
:returns True on success, False on error
|
|
|
|
"""
|
|
|
|
try:
|
|
|
|
username = input('Gebruikers naam: ')
|
|
|
|
if len(username) > 64 or len(username) < 3:
|
|
|
|
print('Gebruikersnaam lengte is ongeldig, gebruik minimaal 3 en maximaal 64 tekens!')
|
|
|
|
return False
|
|
|
|
except:
|
|
|
|
print('Ongeldige invoer')
|
|
|
|
return False
|
|
|
|
|
|
|
|
try:
|
|
|
|
password1 = getpass.getpass('Voer wachtwoord in: ')
|
|
|
|
password2 = getpass.getpass('Herhaal wachtwoord: ')
|
|
|
|
if len(password1) < 4:
|
|
|
|
print('Wachtwoord lengte is te weinig, gebruik minimaal 4 tekens!')
|
|
|
|
return False
|
|
|
|
elif password1 != password2:
|
|
|
|
print('Wachtwoorden zijn niet hetzelfde!')
|
|
|
|
except:
|
|
|
|
print('Ongeldige invoer')
|
|
|
|
return False
|
|
|
|
|
|
|
|
cur.execute("SELECT naam FROM moderators WHERE naam = (%s);", (username, ))
|
|
|
|
sqlreturn = cur.fetchone()
|
|
|
|
|
|
|
|
if sqlreturn == None:
|
|
|
|
"""
|
|
|
|
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
|
|
|
|
"""
|
|
|
|
hashedpass = hashlib.sha256(password1.encode('UTF-8') + 'saltandpepper'.encode('UTF-8')).hexdigest()
|
|
|
|
try:
|
|
|
|
cur.execute("INSERT INTO moderators(naam, hash) VALUES (%s, %s)", (username, hashedpass))
|
|
|
|
conn.commit()
|
|
|
|
print('Account aangemaakt!')
|
|
|
|
return True
|
|
|
|
except:
|
|
|
|
print('Fout bij het aanmaken van account!')
|
|
|
|
return False
|
|
|
|
else:
|
|
|
|
print('Gebruiker bestaat al!')
|
|
|
|
return False
|
|
|
|
|
|
|
|
def publish(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
|
|
|
|
"""
|