rayan / app.py
areffarzanieh's picture
fields alignment updated
16443cc
raw
history blame contribute delete
No virus
12.7 kB
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()