JSenkCC commited on
Commit
58bbf67
·
verified ·
1 Parent(s): 839c84a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -38
app.py CHANGED
@@ -102,60 +102,42 @@ def workspace_page():
102
 
103
  # Main content area
104
  st.subheader("Workspace")
105
- st.write("This is your personal workspace. You can upload files for a coding project or provide a GitHub repository link.")
106
 
107
  # User action selection
108
- action = st.radio("Choose an action", ["Upload Project Files", "Clone GitHub Repository"], horizontal=True)
109
 
110
- # Handle file uploads as a project
111
- if action == "Upload Project Files":
112
- st.subheader("Upload Project Files")
113
- project_name = st.text_input("Enter a name for your project")
114
 
115
- uploaded_files = st.file_uploader(
116
- "Upload one or more files for your project",
117
- accept_multiple_files=True
118
- )
119
 
120
- if project_name and uploaded_files:
121
  if st.button("Upload Project"):
122
- user_folder = os.path.join("user_projects", st.session_state.username)
123
- project_folder = os.path.join(user_folder, project_name)
124
-
125
- if not os.path.exists(project_folder):
126
- os.makedirs(project_folder)
127
 
128
  for uploaded_file in uploaded_files:
129
- file_path = os.path.join(project_folder, uploaded_file.name)
130
  with open(file_path, "wb") as f:
131
  f.write(uploaded_file.getbuffer())
 
132
 
133
- st.success(f"Project '{project_name}' uploaded successfully with {len(uploaded_files)} file(s)!")
134
- elif not project_name:
135
- st.warning("Please enter a project name.")
136
- elif not uploaded_files:
137
- st.warning("Please upload at least one file.")
138
-
139
- # Handle GitHub repository cloning
140
  elif action == "Clone GitHub Repository":
141
  st.subheader("Clone GitHub Repository")
142
  repo_url = st.text_input("Enter the GitHub repository URL")
143
- if st.button("Clone Repository"):
144
- if repo_url:
145
- user_folder = os.path.join("user_projects", st.session_state.username)
 
146
  os.makedirs(user_folder, exist_ok=True)
147
 
148
- repo_name = repo_url.split("/")[-1].replace(".git", "")
149
- repo_path = os.path.join(user_folder, repo_name)
150
-
151
- if not os.path.exists(repo_path):
152
- try:
153
- Repo.clone_from(repo_url, repo_path)
154
- st.success(f"Repository '{repo_name}' cloned successfully!")
155
- except Exception as e:
156
- st.error(f"Failed to clone repository: {e}")
157
- else:
158
- st.warning(f"Repository '{repo_name}' already exists in your workspace.")
159
 
160
  if __name__ == "__main__":
161
  main()
 
102
 
103
  # Main content area
104
  st.subheader("Workspace")
105
+ st.write("You can create a new project by uploading files or cloning a GitHub repository.")
106
 
107
  # User action selection
108
+ action = st.radio("Choose an action", ["Upload Files", "Clone GitHub Repository"], horizontal=True)
109
 
110
+ project_name = st.text_input("Enter a project name")
 
 
 
111
 
112
+ if action == "Upload Files":
113
+ st.subheader("Upload Files")
114
+ uploaded_files = st.file_uploader("Upload one or more files for your project", accept_multiple_files=True)
 
115
 
116
+ if uploaded_files and project_name:
117
  if st.button("Upload Project"):
118
+ user_folder = os.path.join("user_projects", st.session_state.username, project_name)
119
+ os.makedirs(user_folder, exist_ok=True)
 
 
 
120
 
121
  for uploaded_file in uploaded_files:
122
+ file_path = os.path.join(user_folder, uploaded_file.name)
123
  with open(file_path, "wb") as f:
124
  f.write(uploaded_file.getbuffer())
125
+ st.success(f"Project '{project_name}' uploaded successfully!")
126
 
 
 
 
 
 
 
 
127
  elif action == "Clone GitHub Repository":
128
  st.subheader("Clone GitHub Repository")
129
  repo_url = st.text_input("Enter the GitHub repository URL")
130
+
131
+ if repo_url and project_name:
132
+ if st.button("Upload Project"):
133
+ user_folder = os.path.join("user_projects", st.session_state.username, project_name)
134
  os.makedirs(user_folder, exist_ok=True)
135
 
136
+ try:
137
+ Repo.clone_from(repo_url, user_folder)
138
+ st.success(f"Project '{project_name}' cloned successfully!")
139
+ except Exception as e:
140
+ st.error(f"Failed to clone repository: {e}")
 
 
 
 
 
 
141
 
142
  if __name__ == "__main__":
143
  main()