Spaces:
Runtime error
Runtime error
import streamlit as st | |
import sqlite3 | |
import pandas as pd | |
import datetime as dt | |
import requests | |
import time | |
import asyncio | |
import pytz | |
tz = pytz.timezone('Iran') | |
smslist=[] | |
conn = sqlite3.connect('Rayan.db') | |
c = conn.cursor() | |
def create_saves(): | |
c.execute('CREATE TABLE IF NOT EXISTS saves(mtntopup TEXT,mtnpin TEXT, mcitopup TEXT,mcipin TEXT,netless TEXT,rtltopup TEXT,rtlpin TEXT,telepin2 TEXT,baste TEXT)') | |
conn.commit() | |
def add_saves(mtntopup,mtnpin,mcitopup,mcipin,netless,rtltopup,rtlpin,telepin2,baste): | |
c.execute('INSERT INTO saves(mtntopup,mtnpin,mcitopup,mcipin,netless,rtltopup,rtlpin,telepin2,baste) VALUES (?,?,?,?,?,?,?,?,?)',(mtntopup,mtnpin,mcitopup,mcipin,netless,rtltopup,rtlpin,telepin2,baste)) | |
conn.commit() | |
def read_saves(): | |
c.execute('SELECT * FROM saves') | |
data = c.fetchone() | |
return data | |
def update_saves(mtntopup,mtnpin,mcitopup,mcipin,netless,rtltopup,rtlpin,telepin2,baste): | |
c.execute('UPDATE saves SET mtntopup=?,mtnpin=?,mcitopup=?,mcipin=?,netless=?,rtltopup=?,rtlpin=? ,telepin2=?,baste=?',(mtntopup,mtnpin,mcitopup,mcipin,netless,rtltopup,rtlpin,telepin2,baste)) | |
conn.commit() | |
def esaj_topup_add(): | |
c.execute('UPDATE esaj_topup SET date=?,charged=? ',(str(dt.datetime.now(tz).day),"yes")) | |
conn.commit() | |
def esaj_topup_add_fake(): | |
c.execute('INSERT INTO esaj_topup (date,charged) VALUES(?,?) ',(str(dt.datetime.now(tz).day-1),"yes")) | |
conn.commit() | |
def esaj_pin_add(): | |
c.execute('UPDATE esaj_pin SET date=?,charged=? ',(str(dt.datetime.now(tz).day),"yes")) | |
conn.commit() | |
def esaj_pin_add_fake(): | |
c.execute('INSERT INTO esaj_pin (date,charged) VALUES(?,?) ',(str(dt.datetime.now(tz).day-1),"yes")) | |
conn.commit() | |
def esaj_topup_read(): | |
c.execute('SELECT * FROM esaj_topup') | |
data = c.fetchone() | |
return data | |
def esaj_pin_read(): | |
c.execute('SELECT * FROM esaj_pin') | |
data = c.fetchone() | |
return data | |
def create_todo(): | |
c.execute('CREATE TABLE IF NOT EXISTS todo (id INTEGER PRIMARY KEY ,day TEXT,month TEXT,to_do VARCHAR(500))') | |
conn.commit() | |
def add_todo(todo): | |
c.execute('INSERT INTO todo (day,month,to_do) VALUES (?,?,?)',(str(dt.datetime.now(tz).day),str(dt.datetime.now(tz).month),str(todo))) | |
conn.commit() | |
def read_todo(): | |
c.execute('SELECT * FROM todo') | |
data = c.fetchall() | |
return data | |
def clear_todo(): | |
c.execute('DELETE FROM todo') | |
conn.commit() | |
def delete_todo(conn,id): | |
sql='DELETE FROM todo WHERE id=?' | |
cur = conn.cursor() | |
cur.execute(sql, (id,)) | |
conn.commit() | |
async def sms(a): | |
smsinfo = read_saves() | |
if smsinfo: | |
clean_smsinfo=pd.DataFrame([smsinfo],columns=["mtntopup","mtnpin","mcitopup","mcipin","rtltopup","rtlpin","telepin2","baste"]) | |
if dt.datetime.now(tz).second==58 and dt.datetime.now(tz).minute == 59 and dt.datetime.now(tz).hour+1 == int(clean_smsinfo[str(a)])-1: | |
print(a) | |
time.sleep(100) | |
async def checker(a): | |
await sms(a) | |
def main(): | |
st.set_page_config( | |
page_title="Rayan Ertebat", | |
layout="wide", | |
initial_sidebar_state="auto", | |
) | |
menu = ["Enter Saves","View Saves","Esaj","To Do"] | |
choice = st.sidebar.selectbox("Menu",menu) | |
create_saves() | |
if choice=="Enter Saves": | |
st.header ("Enter Saves") | |
col3,col4=st.columns(2) | |
col3.header("") | |
col3.header("") | |
col3.header("") | |
col3.header('Rayan Ertebat - Business Operation Team') | |
col4.image("https://media.mehrnews.com/d/2021/07/06/3/3822605.jpg",width=400) | |
col1,col2,col3,col4,col5,col6,col7,col8,col9,col10=st.columns(10) | |
col1.header("MTN") | |
col1.subheader("Top up:") | |
col1.markdown("") | |
col1.markdown("") | |
col2.header("") | |
col1.subheader("Pins:") | |
col2.header("") | |
col2.header("") | |
mtntopup = col2.text_input('',key=1) | |
mtnpin = col2.text_input('',key=2) | |
col3.header("MCI") | |
col3.subheader("Top up:") | |
col3.markdown("") | |
col3.markdown("") | |
col4.markdown("") | |
col3.subheader("Pins:") | |
col4.header("") | |
col4.header("") | |
col3.markdown("") | |
col3.markdown("") | |
col4.markdown("") | |
col3.subheader("netless:") | |
mcitopup = col4.text_input('',key=3) | |
mcipin = col4.text_input('',key=4) | |
netless = col4.text_input('',key=9) | |
col5.header("RTL") | |
col5.subheader("Top up:") | |
col5.markdown("") | |
col5.markdown("") | |
col6.header("") | |
col5.subheader("Pins:") | |
col6.header("") | |
col6.header("") | |
rtltopup = col6.text_input('',key=5) | |
rtlpin = col6.text_input('',key=6) | |
col7.header("JIRING") | |
col7.subheader("telepin 2:") | |
col7.markdown("") | |
col7.markdown("") | |
col8.header("") | |
col7.subheader("baste:") | |
col8.header("") | |
col8.header("") | |
telepin2 = col8.text_input('',key=7) | |
baste = col8.text_input('',key=8) | |
if st.button('save'): | |
try: | |
#create_saves() | |
#add_saves(mtntopup,mtnpin,mcitopup,mcipin,netless,rtltopup,rtlpin,telepin2,baste) | |
info=read_saves() | |
if info: | |
clean_info=pd.DataFrame([info],columns=["Mtn Topup","Mtn Pin","Mci Topup","Mci Pin","Netless","Rtl Topup","Rtl Pin","Telepin 2","Baste"]) | |
update_saves(mtntopup,mtnpin,mcitopup,mcipin,netless,rtltopup,rtlpin,telepin2,baste) | |
if mtntopup: | |
tempmtntopup=str(mtntopup) | |
else: | |
tempmtntopup=int(clean_info["Mtn Topup"]) | |
if mtnpin: | |
tempmtnpin=str(mtnpin) | |
else: | |
tempmtnpin=int(clean_info["Mtn Pin"]) | |
if mcitopup: | |
tempmcitopup=str(mcitopup) | |
else: | |
tempmcitopup=int(clean_info["Mci Topup"]) | |
if mcipin: | |
tempmcipin=str(mcipin) | |
else: | |
tempmcipin=int(clean_info["Mci Pin"]) | |
if netless: | |
tempnetless=str(netless) | |
else: | |
tempnetless=int(clean_info["Netless"]) | |
if rtltopup: | |
temprtltopup=str(rtltopup) | |
else: | |
temprtltopup=int(clean_info["Rtl Topup"]) | |
if rtlpin: | |
temprtlpin=str(rtlpin) | |
else: | |
temprtlpin=int(clean_info["Rtl Pin"]) | |
if telepin2: | |
temptelepin2=str(telepin2) | |
else: | |
temptelepin2=int(clean_info["Telepin 2"]) | |
if baste: | |
tempbaste=str(baste) | |
else: | |
tempbaste=int(clean_info["Baste"]) | |
update_saves(tempmtntopup,tempmtnpin,tempmcitopup,tempmcipin,tempnetless,temprtltopup,temprtlpin,temptelepin2,tempbaste) | |
a=st.success('Saved') | |
if a: | |
time.sleep(2) | |
a.empty() | |
else: | |
create_saves() | |
add_saves(mtntopup,mtnpin,mcitopup,mcipin,netless,rtltopup,rtlpin,telepin2,baste) | |
a=st.success('Saved') | |
if a: | |
time.sleep(2) | |
a.empty() | |
except ValueError as e: | |
st.error(e) | |
if choice=="View Saves": | |
try: | |
st.header("View Saves") | |
inf = read_saves() | |
clean_inf=pd.DataFrame([inf],columns=["Mtn Topup","Mtn Pin","Mci Topup","Mci Pin","Netless","Rtl Topup","Rtl Pin","Telepin 2","Baste"]) | |
st.dataframe(clean_inf) | |
columns=["Mtn Topup","Mtn Pin","Mci Topup","Mci Pin","Netless","Rtl Topup","Rtl Pin","Telepin 2","Baste"] | |
for item in columns: | |
t = dt.datetime.now(tz).hour+1 | |
if int(clean_inf[item])-int(t) >3: | |
st.success(item.upper()) | |
elif 1<=int(clean_inf[item])-int(t) <=3: | |
st.warning(item.upper()) | |
elif 0<=int(clean_inf[item])-int(t)<=1: | |
st.error(item.upper()) | |
elif int(clean_inf[item])-int(t)<=0: | |
st.error(f"CAUTION, {item.upper()} has been ran out!!") | |
except ValueError: | |
st.error("اطلاعاتی در دیتابیس موجود نیست. لطفا ابتدا مقادیر سیو را وارد کنید") | |
if choice=="Esaj": | |
st.header("Esaj") | |
col1,col2,col3,col4,col5=st.columns(5) | |
c.execute('CREATE TABLE IF NOT EXISTS esaj_topup (date TEXT,charged TEXT)') | |
conn.commit() | |
c.execute('CREATE TABLE IF NOT EXISTS esaj_pin (date TEXT,charged TEXT)') | |
conn.commit() | |
esaj_topup_inf = esaj_topup_read() | |
if esaj_topup_inf: | |
clean_inf_esaj_topup =pd.DataFrame([esaj_topup_inf],columns=["date","charged"]) | |
else: | |
esaj_topup_add_fake() | |
esaj_topup_inf = esaj_topup_read() | |
clean_inf_esaj_topup =pd.DataFrame([esaj_topup_inf],columns=["date","charged"]) | |
esaj_pin_inf = esaj_pin_read() | |
if esaj_pin_inf: | |
clean_inf_esaj_pin =pd.DataFrame([esaj_pin_inf],columns=["date","charged"]) | |
else: | |
esaj_pin_add_fake() | |
esaj_pin_inf = esaj_pin_read() | |
clean_inf_esaj_pin =pd.DataFrame([esaj_pin_inf],columns=["date","charged"]) | |
if clean_inf_esaj_topup["date"][0] == str(dt.datetime.now(tz).day): | |
col1.subheader("Top up has been done today :)") | |
else: | |
t=col1.checkbox("topup",key="easj_topup") | |
if t: | |
esaj_topup_add() | |
if clean_inf_esaj_pin["date"][0] == str(dt.datetime.now(tz).day): | |
col3.subheader("Pin has been done today :)") | |
else: | |
p = col2.checkbox("pin",key="easj_pin") | |
if p : | |
esaj_pin_add() | |
if clean_inf_esaj_topup["date"][0] == str(dt.datetime.now(tz).day) and clean_inf_esaj_pin["date"][0] == str(dt.datetime.now(tz).day): | |
st.balloons() | |
if choice=="To Do": | |
st.header("To Do") | |
st.subheader("Enter To Do's below and press Submit:") | |
c1,c2,c3,c4,c5,c6,c7,c8,c9=st.columns(9) | |
col1,col2=st.columns(2) | |
c7.header("") | |
c7.header("") | |
c7.header("") | |
clear = c8.button("Press to clear data") | |
if clear: | |
clear_todo() | |
s = col1.success("Cleared Successfully") | |
time.sleep(2) | |
s.empty() | |
create_todo() | |
with col1.form(key='todo',clear_on_submit=True): | |
todo = st.text_input("To Do :") | |
submit_button = st.form_submit_button("Submit") | |
if submit_button: | |
a=str(todo) | |
add_todo(a) | |
t=c9.success("successfully added") | |
time.sleep(1) | |
t.empty() | |
col1.header("") | |
with col1.form(key='done',clear_on_submit=True): | |
done = st.text_input("For delete, enter number if done and submit. ") | |
submit_button = st.form_submit_button("Submit") | |
if submit_button : | |
if done.isdigit(): | |
delete_todo(conn,done) | |
y=c9.success(f'The task number {done} deleted successfully') | |
time.sleep(1) | |
y.empty() | |
data = read_todo() | |
else: | |
x=c9.error("Please Enter the number of task") | |
time.sleep(1) | |
x.empty() | |
col2.header("") | |
show = col2.subheader("Today To Do's:") | |
#if show: | |
data = read_todo() | |
if len(data)>0: | |
todo_list=[] | |
for i in range(len(data)): | |
item=data[i] | |
if item[1]==str(dt.datetime.now(tz).day) and item[2]==str(dt.datetime.now(tz).month) : | |
col2.button(f'{str(item[0])} - {str(item[3])}',key=item[2]) | |
todo_list.append(item[3]) | |
#else: col1.warning("There is no To Do yet!") | |
if __name__ == "__main__": | |
main() | |