Final
This commit is contained in:
99
client.py
Normal file
99
client.py
Normal file
@@ -0,0 +1,99 @@
|
||||
import xmlrpc.client
|
||||
import requests
|
||||
from datetime import datetime
|
||||
|
||||
# Create a client class
|
||||
|
||||
|
||||
class Client:
|
||||
def __init__(self):
|
||||
self.server = None
|
||||
|
||||
def connect_server(self):
|
||||
try:
|
||||
self.server = xmlrpc.client.ServerProxy('http://localhost:7777')
|
||||
except ConnectionRefusedError:
|
||||
print("Error: Could not connect to server.")
|
||||
exit()
|
||||
|
||||
# Start the client
|
||||
def start_client(self):
|
||||
while True:
|
||||
action = input(
|
||||
"Options:\n1) Add note\n2) Get notes\n3) Quit\nEnter your choice: ")
|
||||
|
||||
if action == "1":
|
||||
# Get user input
|
||||
topic = input("Enter the topic: ")
|
||||
note = input("Enter the note topic: ")
|
||||
text = input("Enter the note text: ")
|
||||
date_time = datetime.now()
|
||||
timestamp = date_time.strftime("%m/%d/%Y - %H:%M:%S")
|
||||
|
||||
result = self.server.check_topic(topic)
|
||||
# Check if the topic exists
|
||||
if result:
|
||||
# Append note to existing topic
|
||||
adding = self.server.add_note(topic, note, text, timestamp)
|
||||
if (not adding):
|
||||
print("Error: Could not add note to topic.")
|
||||
return
|
||||
else:
|
||||
# Create new topic and add note
|
||||
create = self.server.create_topic(topic)
|
||||
if (not create):
|
||||
print("Error: Could not create topic.")
|
||||
return
|
||||
adding = self.server.add_note(topic, note, text, timestamp)
|
||||
if (not adding):
|
||||
print("Error: Could not add note to topic.")
|
||||
return
|
||||
|
||||
# Ask if user wants to add a link from Wikipedia
|
||||
wiki_query = input(
|
||||
"Do you want to add a link to the note topic from Wikipedia? (y/n): ")
|
||||
if wiki_query == 'y':
|
||||
search_term = input("Enter search term for Wikipedia: ")
|
||||
wiki_data = requests.get(
|
||||
f"https://en.wikipedia.org/w/api.php?action=opensearch&format=json&search={search_term}").json()
|
||||
if wiki_data[3]:
|
||||
link = wiki_data[3][0]
|
||||
else:
|
||||
no_wiki = print(
|
||||
"No Wikipedia article found!")
|
||||
link = 'No link'
|
||||
else:
|
||||
link = "No link"
|
||||
|
||||
# Add the link to the note topic
|
||||
add_link = self.server.add_link(topic, link)
|
||||
if (not add_link):
|
||||
print("Error: Could not add link to note.")
|
||||
return
|
||||
|
||||
elif action == "2":
|
||||
# Get all the notes of a topic
|
||||
topic = input("Enter the topic: ")
|
||||
notes = self.server.get_notes(topic)
|
||||
if (not notes):
|
||||
print("Error: Could not get notes.")
|
||||
return
|
||||
print()
|
||||
for note in notes:
|
||||
print(
|
||||
f"{note['name']} - {note['text']} ({note['timestamp']}): {note['info']}")
|
||||
print()
|
||||
|
||||
elif action == "3":
|
||||
# Quit the client
|
||||
break
|
||||
|
||||
else:
|
||||
print("Invalid option!")
|
||||
|
||||
|
||||
# Run the client
|
||||
if __name__ == '__main__':
|
||||
client = Client()
|
||||
client.connect_server()
|
||||
client.start_client()
|
||||
Reference in New Issue
Block a user