-
Notifications
You must be signed in to change notification settings - Fork 30
/
menu.py
55 lines (47 loc) · 1.79 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
53
54
55
from database import Database
from models.blog import Blog
__author__ = 'jslvtr'
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 _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 run_menu(self):
read_or_write = input("Do you want to read (R) or write (W) blogs? ")
if read_or_write == 'R':
self._list_blogs()
self._view_blog()
pass
elif read_or_write == 'W':
self.user_blog.new_post()
else:
print("Thank you for blogging!")
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']))