-
Notifications
You must be signed in to change notification settings - Fork 2
/
menu.py
52 lines (45 loc) · 1.76 KB
/
menu.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
from database import Database
from models.blog import Blog
class Menu(object):
def __init__(self):
self.user = input("Enter your author name: ")
self.user_blog = None
if self._user_has_account():
print("Welcome back {}".format(self.user))
else:
self._prompt_user_for_account()
def run_menu(self):
read_or_write = input("Do you want to read of write blogs? ")
if read_or_write.lower() == "r":
self._list_blogs()
self._view_blog()
elif read_or_write.lower() == "w":
self.user_blog.new_post()
else:
print("Thank you for blogging!")
def _user_has_account(self):
blog = Database.find_one('blogs', {'author': self.user})
if blog is not None:
self.user_blog = Blog.from_mongo(blog['id'])
return True
else:
return False
def _prompt_user_for_account(self):
title = input("Enter blog title: ")
description = input("Enter blog description: ")
blog = Blog(author=self.user, title=title, description=description)
blog.save_to_mongo()
self.user_blog = blog
def _list_blogs(self):
blogs = Database.find(collection='blogs', query={})
for blog in blogs:
print("ID: {}, Title: {}, Author: {}".format(
blog['id'], blog['title'], blog['author']))
def _view_blog(self):
blog_to_see = input("Enter the ID of the blog you'd like to read: ")
blog = Blog.from_mongo(blog_to_see)
posts = blog.get_posts()
for post in posts:
print("Date: {}, Title: {}\n\n{}".format(
post['created_date'], post['title'], post['content']
))