Download admin.py from Batrdj/Bot: direct link, hf CLI and curl.
- Browser
- Download file 5.67 kB
-
https://huggingface.co/spaces/Batrdj/Bot/resolve/main/admin.py
- Command line
-
hf download hf://spaces/Batrdj/Bot/admin.py
-
curl -L -o admin.py https://huggingface.co/spaces/Batrdj/Bot/resolve/main/admin.py
5.67 kB
| # import streamlit as st | |
| # import os | |
| # from PIL import Image | |
| # import cv2 | |
| # import pytesseract | |
| # from docx import Document | |
| # from pptx import Presentation | |
| # from io import BytesIO | |
| # import base64 | |
| # from zipfile import ZipFile | |
| # import pandas as pd | |
| # # Set the path where uploaded files will be stored | |
| # UPLOAD_FOLDER = 'data/' | |
| # os.makedirs(UPLOAD_FOLDER, exist_ok=True) | |
| # # Function to handle login | |
| # def login(): | |
| # st.subheader("Login") | |
| # username = st.text_input("Username") | |
| # password = st.text_input("Password", type="password") | |
| # if username == "admin" and password == "secret": | |
| # st.success("You are logged in!") | |
| # return True | |
| # else: | |
| # st.error("Invalid credentials.") | |
| # return False | |
| # # Function to handle file uploads | |
| # def upload_files(): | |
| # st.subheader("Upload Files") | |
| # uploaded_files = st.file_uploader("Choose files", type=["pdf", "docx", "pptx", "jpg", "png", "txt"], accept_multiple_files=True) | |
| # for uploaded_file in uploaded_files: | |
| # file_path = os.path.join(UPLOAD_FOLDER, uploaded_file.name) | |
| # with open(file_path, "wb") as f: | |
| # f.write(uploaded_file.getbuffer()) | |
| # st.success(f"{uploaded_file.name} uploaded successfully!") | |
| # # Main function to run the app | |
| # def main(): | |
| # st.title("Admin Panel") | |
| # # Check if user is logged in | |
| # if not login(): | |
| # st.stop() | |
| # # Display uploaded files (optional) | |
| # files = os.listdir(UPLOAD_FOLDER) | |
| # st.write("Uploaded Files:") | |
| # for file in files: | |
| # st.write(file) | |
| # # Upload files | |
| # upload_files() | |
| # if __name__ == "__main__": | |
| # main() | |
| import streamlit as st | |
| import os | |
| from PIL import Image | |
| import cv2 | |
| import pytesseract | |
| from docx import Document | |
| from pptx import Presentation | |
| from io import BytesIO | |
| import base64 | |
| from zipfile import ZipFile | |
| import pandas as pd | |
| # Set the path where uploaded files will be stored | |
| UPLOAD_FOLDER = 'data/' | |
| os.makedirs(UPLOAD_FOLDER, exist_ok=True) | |
| # Function to handle login | |
| def login(): | |
| st.sidebar.subheader("Login") | |
| username = st.sidebar.text_input("Username") | |
| password = st.sidebar.text_input("Password", type="password") | |
| if st.sidebar.button("Login"): | |
| if username == "admin" and password == "secret": | |
| st.session_state.logged_in = True # Set login state to True | |
| st.sidebar.success("You are logged in!") | |
| st.rerun() # Rerun the app to refresh the page | |
| else: | |
| st.sidebar.error("Invalid credentials.") | |
| # Function to handle logout | |
| def logout(): | |
| if st.sidebar.button("Logout"): | |
| st.session_state.logged_in = False # Reset login state | |
| st.sidebar.success("You have been logged out!") | |
| st.rerun() # Rerun the app to refresh the page | |
| # Function to handle file uploads | |
| def upload_files(): | |
| st.subheader("Upload Files") | |
| uploaded_files = st.file_uploader("Choose files", type=["pdf", "docx", "pptx", "jpg", "png", "txt"], accept_multiple_files=True) | |
| if uploaded_files: | |
| for uploaded_file in uploaded_files: | |
| file_path = os.path.join(UPLOAD_FOLDER, uploaded_file.name) | |
| with open(file_path, "wb") as f: | |
| f.write(uploaded_file.getbuffer()) | |
| st.success(f"✅ {uploaded_file.name} uploaded successfully!") # Green success alert | |
| st.rerun() # Rerun the app to refresh the file list | |
| # Function to display and manage uploaded files | |
| def manage_files(): | |
| st.subheader("Manage Files") | |
| files = os.listdir(UPLOAD_FOLDER) | |
| if files: | |
| # Create a DataFrame for all files | |
| file_data = [] | |
| for file in files: | |
| file_path = os.path.join(UPLOAD_FOLDER, file) | |
| file_size = os.path.getsize(file_path) / 1024 # Size in KB | |
| file_type = file.split(".")[-1].upper() # Extract file extension | |
| file_data.append({"File Name": file, "Type": file_type, "Size (KB)": round(file_size, 2)}) | |
| df = pd.DataFrame(file_data) | |
| # Display the table | |
| st.dataframe(df, use_container_width=True) | |
| # Add options to delete or download files | |
| selected_file = st.selectbox("Select a file to manage", files) | |
| col1, col2 = st.columns(2) | |
| with col1: | |
| if st.button("Delete Selected File"): | |
| os.remove(os.path.join(UPLOAD_FOLDER, selected_file)) | |
| st.error(f"❌ {selected_file} deleted successfully!") # Red error alert | |
| st.rerun() # Rerun the app to refresh the file list | |
| with col2: | |
| with open(os.path.join(UPLOAD_FOLDER, selected_file), "rb") as f: | |
| st.download_button( | |
| label="Download Selected File", | |
| data=f, | |
| file_name=selected_file, | |
| mime="application/octet-stream" | |
| ) | |
| else: | |
| st.info("No files uploaded yet.") | |
| # Main function to run the app | |
| def main(): | |
| st.title("Admin Panel") | |
| # Initialize session state for login | |
| if "logged_in" not in st.session_state: | |
| st.session_state.logged_in = False | |
| # Check if user is logged in | |
| if not st.session_state.logged_in: | |
| login() | |
| st.stop() # Stop the app if not logged in | |
| # Logout button | |
| logout() | |
| # Upload files | |
| upload_files() | |
| # Manage files (table for all files) | |
| manage_files() | |
| if __name__ == "__main__": | |
| main() | |