diff --git a/.gitignore b/.gitignore index 010dfa4..2e1a812 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ config.py __pycache__ *.swp +log diff --git a/create_pages.py b/create_pages.py old mode 100755 new mode 100644 index 7885c9e..fc3b87a --- a/create_pages.py +++ b/create_pages.py @@ -15,30 +15,31 @@ import config import parse_post +import output from datetime import datetime def create_user_page(userID, username, db): - with open(f"{config.webroot}/user/{username}.gmi", "w") as userfile: - cursor = db.cursor() - cursor.execute(f"SELECT * FROM posts WHERE userID = {userID} ORDER BY postID Desc") - userfile.write(f"# {username}:\n") - for x in cursor: - post = config.user_page_post_format - post = parse_post.parse_post_format(post, x, username) - userfile.write(post) + with open(f"{config.webroot}/user/{username}.gmi", "w") as userfile: + output.log("Writing posts to userfile") + cursor = db.cursor() + cursor.execute(f"SELECT * FROM posts WHERE userID = {userID} ORDER BY postID Desc") + userfile.write(f"# {username}:\n") + for x in cursor: + post = config.user_page_post_format + post = parse_post.parse_post_format(post, x, username) + userfile.write(post) -def create_post_page(postID, db): - with open(f"{config.webroot}/post/{postID}.gmi", "w") as postfile: - cursor = db.cursor() - cursor.execute(f"SELECT * FROM posts WHERE postID = {postID}") - cursor2 = db.cursor() - cursor2.execute('SELECT * FROM users') - post = config.post_page_post_format - post = parse_post.parse_post_format(post, x, cursor2[cursor[0]-1][1]) - postfile.write(post) +def create_post_page(post, db): + with open(f"{config.webroot}/post/{post[0]}.gmi", "w") as postfile: + output.log("Writing post to postfile") + output.log(post) + postfile_content = config.post_page_post_format + postfile_content = parse_post.parse_post_format(postfile_content, post, post[1]) + postfile.write(postfile_content) def create_timeline(db): with open(f"{config.webroot}/index.gmi", "w") as timeline_file: + output.log("Writing posts to timeline") users = [] cursor = db.cursor() cursor.execute(f"SELECT userName FROM users") diff --git a/example.config.py b/example.config.py index 7a1481f..ee6dad2 100755 --- a/example.config.py +++ b/example.config.py @@ -7,10 +7,14 @@ posts_in_timeline = 100 ### SQL settings ### host = "localhost" -user = "root" +user = "username" password = "password" database = "glogger" +### Logging ### +logfile = "/path/to/logfile" +verbose = False + ### Format ### # The syntax for this is pretty simple # %S - post seperator as defined by post_seperator diff --git a/newpost.py b/newpost.py old mode 100755 new mode 100644 index 2076a3b..fa6dae8 --- a/newpost.py +++ b/newpost.py @@ -25,11 +25,13 @@ import click # Used to write post content, it launches a text editor to type int # Other python files # import create_pages import config +import rebuild def newpost(db, userID, username, datetime): title = input("Title: ") content = click.edit() content = content.replace("'", "'") + content = content.replace("\n", "\\n") print(content) datetime = datetime.now().strftime("%d%m%YZ%H%M%ST") @@ -39,9 +41,5 @@ def newpost(db, userID, username, datetime): for x in cursor: postID = x[0] db.commit() - ## Write to user page ## - create_pages.create_user_page(userID, username, db) - create_pages.create_post_page(postID, username, db) - create_pages.create_timeline(db) - - + # Rebuild the config + rebuild.rebuild(db) diff --git a/output.py b/output.py new file mode 100644 index 0000000..3104c62 --- /dev/null +++ b/output.py @@ -0,0 +1,6 @@ +import config +def log(text): + if config.verbose == True: + print(text) + with open(config.logfile, "w") as logfile: + logfile.write(f"{text}\n") diff --git a/parse_post.py b/parse_post.py old mode 100755 new mode 100644 diff --git a/rebuild.py b/rebuild.py index cef252b..11dd9e9 100755 --- a/rebuild.py +++ b/rebuild.py @@ -6,6 +6,6 @@ def rebuild(db): for x in cursor: create_pages.create_user_page(x[0], x[1], db) create_pages.create_timeline(db) - cursor.execute('SELECT * FROM posts') + cursor.execute('SELECT posts.postID, users.username, posts.title, posts.content, posts.pubDate, posts.editDate FROM posts JOIN users ON posts.userID=users.userID') for x in cursor: - create_pages.create_post_page(x[0], db) + create_pages.create_post_page(x, db)