rayan / app.py
areffarzanieh's picture
fields alignment updated
16443cc
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()