File size: 3,444 Bytes
ffb5a8f |
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 |
import streamlit as st
import requests
import pandas as pd
# Your backend functions
def jina(url):
base_url = "https://r.jina.ai/"
url = base_url + url
response = requests.get(url)
return response.text
def price_cities(url):
text = jina(url)
pos1 = text.find('**')
new = text[:pos1]
twentytwok = new[int(new.find('22K')):int(new.find('24K'))]
value_22k = twentytwok[int(twentytwok.find('\n\n') + 1): int(twentytwok.find('\n\n+'))][3:]
value_22k = value_22k.split('\n')[0]
twentyfourk = new[int(new.find('24K')):int(new.find('18K'))]
value_24k = twentyfourk[int(twentyfourk.find('\n\n') + 1): int(twentyfourk.find('\n\n+'))][3:]
value_24k = value_24k.split('\n')[0]
eighteenk = new[int(new.find('18K')):]
value_18k = eighteenk[int(eighteenk.find('\n\n') + 1): int(eighteenk.find('\n\n+'))][3:]
value_18k = value_18k.split('\n')[0]
return value_24k, value_22k, value_18k
# List of cities
cities = ['Ahmedabad', 'Ayodhya', 'Bangalore', 'Bhubaneswar', 'Chandigarh', 'Chennai',
'Coimbatore', 'Delhi', 'Hyderabad', 'Jaipur', 'Kerala', 'Kolkata', 'Lucknow',
'Madurai', 'Mangalore', 'Mumbai', 'Mysore', 'Nagpur', 'Nashik', 'Patna',
'Pune', 'Rajkot', 'Salem', 'Surat', 'Trichy', 'Vadodara', 'Vijayawada', 'Visakhapatnam']
# Sidebar content
st.sidebar.title("About the Project")
st.sidebar.write("This project fetches current gold rates for 24K, 22K, and 18K gold from GoodReturns for 28 Indian states. The rates for 1g, 8g, and 10g are displayed.")
st.sidebar.write("**Developed by:**")
st.sidebar.write("[Srish Rachamalla](https://www.linkedin.com/in/srishrachamalla/)")
st.sidebar.write("[Sai Teja Pallerla](https://www.linkedin.com/in/saiteja-pallerla-668734225/)")
# Main UI
st.title('Gold Rates in Indian Cities')
st.subheader('Select a city to view the current gold rates')
# Dropdown for city selection
selected_city = st.selectbox('Select a City', cities)
# Fetch and display gold rates
if selected_city:
city_url = f"https://www.goodreturns.in/gold-rates/{selected_city}.html"
# Fetch the prices using your backend function
try:
value_24k, value_22k, value_18k = price_cities(city_url)
# Convert string values to float for calculation
value_22k = round(float(value_22k.replace(',', '')),2)
value_24k = round(float(value_24k.replace(',', '')),2)
value_18k = round(float(value_18k.replace(',', '')),2)
# Prepare data for table
data = {
# 'SNO': [1, 2, 3],
'Gold Purity': ['24K', '22K', '18K'],
'1g Price (₹)': [value_24k, value_22k, value_18k],
'8g Price (₹)': [value_24k * 8, value_22k * 8, value_18k * 8],
'10g Price (₹)': [value_24k * 10, value_22k * 10, value_18k * 10]
}
# Create a DataFrame for display
df = pd.DataFrame(data,index=[1, 2, 3])
# Display the DataFrame as a table
st.write(f"Gold rates in {selected_city}:")
st.dataframe(df.style.format(precision=2).set_properties(**{
'background-color': 'black',
'color': 'white',
'border-color': 'ash'
}))
except Exception as e:
st.error(f"Could not fetch the gold rates. Please try again.{e}")
st.markdown("<br><hr><center><p style='color: grey;'>© 2024 All Rights Reserved</p></center><br>", unsafe_allow_html=True)
|