SMS-proj is a project to send receive SMS messages.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sms-proj/appdb.py

65 lines
2.3 KiB

#!/usr/bin/env python3
#appdb.py
#We connect to our database and any database calls are put into functions here.
import pymysql
import pymysql.cursors
import pprint
import time
import configparser
config = configparser.ConfigParser()
config.read('config.ini')
sqlhost = config.get("sql","sqlhost")
sqluser = config.get("sql","sqluser")
sqlpass = config.get("sql","sqlpass")
sqldb = config.get("sql","sqldb")
def logsms_db(msg_id, msg_ts, direction, to_did, from_did, cost, msg):
#This statement logs a SMS to the smslog table.
6 years ago
db = pymysql.connect(host=sqlhost, user=sqluser, passwd=sqlpass, db=sqldb)
cur = db.cursor()
cur.execute("INSERT INTO messages (`timestamp`, `provider_timestamp`,`direction`, `source_number`, `dest_number`, `cost`,`pid`, `body`)VALUES \
(%s, %s, %s, %s, %s, %s, %s, %s)",(int(time.time()),msg_ts, direction, from_did, to_did, cost, msg_id, msg))
db.commit()
db.close()
return True
def getAllSMSLog(limit=5,order='desc'):
#This gets the last X amount of logs from all numbers.
db = pymysql.connect(host=sqlhost, user=sqluser, passwd=sqlpass, db=sqldb)
cur = db.cursor()
6 years ago
cur.execute("SELECT * FROM messages ORDER BY timestamp LIMIT %s;",(limit))
rows = cur.fetchall()
#for row in rows:
#pprint.pprint(row)
db.close()
return rows
def getNumSMSLog(did,limit=5):
#This gets the last X amount of logs from all numbers.
db = pymysql.connect(host=sqlhost, user=sqluser, passwd=sqlpass, db=sqldb)
cur = db.cursor()
6 years ago
cur.execute("SELECT * FROM messages WHERE source_number=%s OR dest_number=%s ORDER BY timestamp LIMIT %s;",(did,did,limit))
rows = cur.fetchall()
#for row in rows:
#pprint.pprint(row)
db.close()
return rows
# We gotta do lookups or checks here.. prolly a database call, but right now its an if statement.
def validateFrom(did):
#this statement is here for testing. It bypasses DBs.
if '17605551212' == did:
return True
6 years ago
db = pymysql.connect(host=sqlhost, user=sqluser, passwd=sqlpass, db=sqldb)
cursor = db.cursor()
cursor.execute("SELECT number FROM dids WHERE number=%s LIMIT 1" % did)
data = cursor.fetchone()
db.close()
if data != None and data[0] == did:
return True
return False