File size: 3,622 Bytes
2633149
 
 
 
 
f33e4d1
2633149
f33e4d1
2633149
 
 
 
 
 
 
 
 
 
 
11b17ae
 
f33e4d1
 
 
 
 
 
 
 
 
 
 
 
11b17ae
 
 
 
 
 
 
 
f33e4d1
11b17ae
 
 
 
 
 
2633149
f33e4d1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2633149
 
11b17ae
 
 
 
 
 
 
2633149
 
 
 
11b17ae
 
f33e4d1
2633149
11b17ae
 
 
 
 
2633149
11b17ae
 
 
 
2633149
11b17ae
 
 
 
 
 
 
 
2633149
f33e4d1
 
 
2633149
 
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
import streamlit as st
from datetime import datetime
import json
import os

# File to store diary entries and password
DATA_FILE = "diary_entries.json"
PASSWORD_FILE = "password.txt"

# Load existing diary entries
def load_entries():
    if os.path.exists(DATA_FILE):
        with open(DATA_FILE, "r") as file:
            return json.load(file)
    return {}

# Save diary entries
def save_entries(entries):
    with open(DATA_FILE, "w") as file:
        json.dump(entries, file, indent=4)

# Load password
def load_password():
    if os.path.exists(PASSWORD_FILE):
        with open(PASSWORD_FILE, "r") as file:
            return file.read().strip()
    return "diary123"  # Default password

# Save new password
def save_password(new_password):
    with open(PASSWORD_FILE, "w") as file:
        file.write(new_password)

# Password verification
def verify_password():
    if "password_verified" not in st.session_state:
        st.session_state.password_verified = False

    if not st.session_state.password_verified:
        password_input = st.text_input("Enter Password:", type="password")
        if st.button("Submit"):
            if password_input == load_password():
                st.session_state.password_verified = True
                st.success("Password verified!")
            else:
                st.error("Incorrect password. Try again.")
        return False
    return True

# Change password
def change_password():
    st.subheader("Change Password")
    current_password = st.text_input("Enter Current Password:", type="password")
    new_password = st.text_input("Enter New Password:", type="password")
    confirm_password = st.text_input("Confirm New Password:", type="password")

    if st.button("Change Password"):
        if current_password != load_password():
            st.error("Current password is incorrect.")
        elif new_password != confirm_password:
            st.error("New passwords do not match.")
        else:
            save_password(new_password)
            st.success("Password changed successfully!")

# Main app function
def main():
    st.set_page_config(page_title="My Secret Diary", page_icon="📔", layout="centered")
    st.title("📔 My Secret Diary")
    st.markdown("Welcome to your personal diary! Keep your thoughts safe and organized.")

    # Password verification
    if not verify_password():
        return

    # Load existing entries
    diary_entries = load_entries()

    # Sidebar for navigation
    st.sidebar.title("Navigation")
    option = st.sidebar.radio("Choose an option:", ["Add Entry", "View Entries", "Change Password"])

    if option == "Add Entry":
        st.subheader("Add a New Diary Entry")
        selected_date = st.date_input("Select a date", datetime.today())
        entry_key = str(selected_date)
        entry = st.text_area("Write your diary entry here:", value=diary_entries.get(entry_key, ""), height=200)

        if st.button("Save Entry"):
            diary_entries[entry_key] = entry
            save_entries(diary_entries)
            st.success("Entry saved successfully!")

    elif option == "View Entries":
        st.subheader("View Past Entries")
        if not diary_entries:
            st.info("No entries found. Start by adding a new entry!")
        else:
            selected_entry_key = st.selectbox("Select a date to view:", sorted(diary_entries.keys(), reverse=True))
            st.write(f"**Entry for {selected_entry_key}:**")
            st.write(diary_entries[selected_entry_key])

    elif option == "Change Password":
        change_password()

if __name__ == "__main__":
    main()