weather / app.py
MuhammmadRizwanRizwan's picture
Update app.py
40e5697 verified
import streamlit as st
import requests
import base64 # This is a built-in module, no need to install
def get_repo_contents(repo_url):
# Extract owner and repo name from the URL
parts = repo_url.split('/')
owner = parts[-2]
repo = parts[-1]
# GitHub API endpoint
api_url = f"https://api.github.com/repos/{owner}/{repo}/contents"
# Send GET request to GitHub API
response = requests.get(api_url)
if response.status_code == 200:
return response.json()
else:
st.error(f"Error fetching repository contents: {response.status_code}")
return None
def get_file_content(file_url):
response = requests.get(file_url)
if response.status_code == 200:
content = base64.b64decode(response.json()['content']).decode('utf-8')
return content
else:
st.error(f"Error fetching file content: {response.status_code}")
return None
def search_in_content(content, query):
lines = content.split('\n')
results = []
for i, line in enumerate(lines):
if query.lower() in line.lower():
results.append(f"Line {i+1}: {line.strip()}")
return results
st.title("GitHub Repository Explorer")
repo_url = st.text_input("Enter GitHub Repository URL:")
if repo_url:
contents = get_repo_contents(repo_url)
if contents:
st.write("Files in the repository:")
for item in contents:
if item['type'] == 'file':
st.write(f"- {item['name']}")
selected_file = st.selectbox("Select a file to view:", [item['name'] for item in contents if item['type'] == ⬤