-
Notifications
You must be signed in to change notification settings - Fork 0
/
cli.py
215 lines (204 loc) · 9.26 KB
/
cli.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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
import db_basic_functions
def register():
print("Welcome to the CKF Library System!")
fname = input("Please Enter Your First Name: ")
lname = input("Please Enter Your Last Name: ")
email = input("Please Enter Your Email: ")
uname = input("Please Enter a Username: ")
password = input("Please Enter a Password: ")
db_basic_functions.register(uname, password, fname, lname, email)
return login(uname, password)
def login(uname="", password=""):
if(uname == "" and password == ""):
uname = input("Enter Username: ")
password = input("Enter Password: ")
return db_basic_functions.login(uname, password)
def help():
print("""CKF Main Menu Commands: \n
\tSearch: Searching for New Books\n
\tRead: Reading Books\n
\tCollection: Create/Manage Collections of Books\n
\tFollow: Follow Other Users\n
\tHelp: Bring Up This Menu\n
\tRecommendation: recommondation system\n
\tQuit: Quit Out of the System""")
def search(user_id):
print("Search for Books:")
command = input("Enter Command (or help):").lower()
while(True):
if(command == "help"):
print("""Search Commands:\n
\tTitle: Search By Title\n
\tDate: Search by Release Date\n
\tAuthor: Search by Author\n
\tEditor: Search by Editor\n
\tPublisher: Search by Publisher\n
\tGenre: Search by Genre\n
\ttop read: Displays your top 10 books based on time's read\n
\ttop rated: Displays your top 10 books based on rating\n
\ttop combo: Displays your top 10 books based on timer's read and rating\n""")
elif(command == "top combo"):
db_basic_functions.get_users_top_ten_books_combo(user_id)
elif(command == "top rated"):
db_basic_functions.get_users_top_ten_books_rating(user_id)
elif(command == "top read"):
db_basic_functions.get_users_top_ten_books_times_read(user_id)
elif(command == "title"):
title = input("Input a Title:")
print("Here's What I Found:")
print(db_basic_functions.search_books_by_title(title))
elif (command == "quit"):
break
elif(command == "date"):
date = input("Input a Date:")
print("Here's What I Found:")
print(db_basic_functions.search_books_by_release_date_after(date))
elif(command == "author"):
author = input("Input the Name:")
print("Here's What I Found:")
print(db_basic_functions.search_books_by_author(author))
elif(command == "editor"):
editor = input("Input the Name:")
print("Here's What I Found:")
print(db_basic_functions.search_books_by_editor(editor))
elif(command == "publisher"):
publisher = input("Input the Name:")
print("Here's What I Found:")
print(db_basic_functions.search_books_by_publisher(publisher))
elif(command == "genre"):
genre = input("Input the Genre (or Help for a list):")
if(genre == help):
print("""Here's a list of possible genres:\n
Sci-Fi, Mystery, Romance, Horror, Adventure, Fantasy, Classics, NonFiction, History, Thriller
YA, Science, Biography, Self-Help, Crime, Comedy, Drama, Music, Travel, Cooking""")
genre = input("Input the Genre:")
print("Here's What I Found:")
print(db_basic_functions.search_books_by_genre(genre))
command = input("Enter Command (Search):").lower()
def read(user_id):
while(True):
title = input("Enter the Title of the Book You Read: ")
if(title == "quit"):
return
book = db_basic_functions.search_books_by_title(title)[0]
if(book != None):
bookID = book[0]
break
else:
print("We Could not Find that book, Please Try again (or quit)")
start = input("What Page did you start on?: ")
end = input("What Page did you end on?: ")
db_basic_functions.read_book(bookID, user_id, start, end)
def collection(user_id):
print("Manage Collections:")
command = input("Enter Command (or help):").lower()
while(True):
if(command == "help"):
print("""Collections Commands:\n
\tview: View Your Collections\n
\tcreate: Create New Collection\n
\tdelete: Delete Collection\n
\tadd: Add Book to Collection\n
\tchange name: Change Name of Collection\n
\trate: Rate a book\n
\tremove: Remove Book from Collection\n
\tquantity: Get Number Of Collections This User Has\n""")
elif(command == "view"):
print("Here is all of your Collections:")
print(db_basic_functions.get_collections(user_id))
elif(command == "create"):
cname = input("Enter Collection Name: ")
# put create collection here #
db_basic_functions.create_collection(user_id, cname)
elif (command == "rate"):
db_basic_functions.rate_book(user_id)
elif (command == "change name"):
db_basic_functions.change_name_of_collection(user_id)
elif(command == "delete"):
db_basic_functions.delete_collection(user_id)
elif(command == "add"):
db_basic_functions.add_book_to_collection(user_id)
elif(command == "remove"):
db_basic_functions.delete_book_from_collection(user_id)
db_basic_functions.delete_book_from_collection(user_id)
elif(command == "quantity"):
db_basic_functions.get_num_collections_for_user(user_id)
elif(command == "quit"):
break
command = input("Enter Command (Collection):").lower()
def follow(user_id):
print("Follow Users:")
command = input("Enter Command (or help):").lower()
while(True):
if(command == "help"):
print("""Follow Commands:\n
\tFollow: Follow the Indicated User\n
\tUnfollow: Unfollow the Indicated User\n
\tfollowing: Get the number of users you are following\n
\tfollowed: Get the number of followers you have\n""")
elif(command == "follow"):
email = input("Enter Email: ")
db_basic_functions.follow_user(user_id, email)
elif(command == "unfollow"):
email = input("Enter Email: ")
db_basic_functions.unfollow_user(user_id, email)
elif(command == "following"):
db_basic_functions.get_num_users_this_user_follows(user_id)
elif(command == "followed"):
db_basic_functions.get_num_followers_this_user_has(user_id)
elif(command == "quit"):
break
command = input("Enter Command (or help):").lower()
def recommendations(user_id):
print("Book Recommendation System:")
command = input("Enter Command (or help):").lower()
while(True):
if(command == "help"):
print("""Recommendations Commands:\n
\t90: Display Most Popular Books of the last 90 Days\n
\tFollowers: Most Popular Books Among Your Followers\n
\tMonth: Most Popular Books of this Month\n
\tGenre: Books Based on Your Read History (By Genre)\n
\tAuthor: Books Based on Your Read History (By Author)\n
` \tQuit: Quit to Main Menu""")
elif(command == "90"):
print(db_basic_functions.most_pop_90_days())
elif(command == "followers"):
print(db_basic_functions.most_pop_among_followers(user_id))
elif(command == "month"):
print(db_basic_functions.top_5_calendar_month())
elif(command == "genre"):
print(db_basic_functions.recommend_genre_history(user_id))
elif(command == "author"):
print(db_basic_functions.recommend_author_history(user_id))
elif(command == "quit"):
break
command = input("Enter Command (or help):").lower()
def main():
print("Welcome to the CKF Library System!")
command = input("Please Enter Your Username (or register to sign up):")
user_id = -1
if(command == "register"):
user_id = register()
else:
user_id = login()
# Primary CLI loop
command = input("Enter a Command (or help):").lower()
while(True):
if(command == "help"):
help()
elif(command == "search"):
search(user_id)
elif(command == "read"):
read(user_id)
elif(command == "collection"):
collection(user_id)
elif(command == "follow"):
follow(user_id)
elif(command =="recommendation"):
recommendations(user_id)
elif(command == "quit"):
print("Thank You for using our system, have a nice day!")
break
command = input("Enter a Command (or help):").lower()
main()