入库操作

This commit is contained in:
EvilCult 2019-05-23 18:23:48 +08:00
parent 823a9e94e5
commit 4dacfc2aff
2 changed files with 55 additions and 7 deletions

27
db.py
View File

@ -37,7 +37,7 @@ class DataBase :
def create (self) :
if self.connStat == False : return False
sql = 'create table ' + self.table + ' (id integer PRIMARY KEY autoincrement, title text, quality text, url text, enable integer, online integer, delay integer, update text)'
sql = 'create table ' + self.table + ' (id integer PRIMARY KEY autoincrement, title text, quality text, url text, enable integer, online integer, delay integer, udTime text)'
self.cur.execute(sql)
def query (self, sql) :
@ -48,6 +48,14 @@ class DataBase :
return values
def execute (self, sql) :
try :
if self.connStat == False : return False
self.cur.execute(sql)
return True
except :
return False
def insert (self, data):
if self.connStat == False : return False
@ -65,6 +73,23 @@ class DataBase :
self.cur.execute(sql)
self.conn.commit()
def edit (self, id, data):
if self.connStat == False : return False
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
param = ''
for k, v in data.iteritems():
param = param + ", `%s` = '%s'" %(k, str(v).replace('"','\"').replace("'","''"))
param = param[1:]
sql = "update " + self.table + " set %s WHERE id = %s" % (param, id)
self.cur.execute(sql)
self.conn.commit()
def disConn (self) :
if self.connStat == False : return False

35
main.py
View File

@ -2,6 +2,7 @@
# -*- coding: utf-8 -*-
import tools
import db
import time
import re
@ -9,6 +10,8 @@ class Iptv :
def __init__ (self) :
self.T = tools.Tools()
self.DB = db.DataBase()
self.now = int(time.time() * 1000)
def getSourceA (self) :
url = 'https://www.jianshu.com/p/2499255c7e79'
@ -26,7 +29,6 @@ class Iptv :
sourceList = pattern.findall(tmp[0])
sourceList = sourceList + pattern.findall(tmp[1])
for item in sourceList :
netstat = self.chkPlayable(item[1])
@ -34,11 +36,15 @@ class Iptv :
info = self.fmtTitle(item[0])
data = {
'title': str(info['id']) + str(info['title']),
'url': str(item[1]),
'delay': netstat
'title' : str(info['id']) + str(info['title']),
'url' : str(item[1]),
'quality': str(info['quality']),
'delay' : netstat,
'enable' : 1,
'online' : 1,
'udTime' : self.now,
}
print(data)
self.addData(data)
else :
pass # MAYBE later :P
else :
@ -58,8 +64,19 @@ class Iptv :
except:
return 0
def addData (self, data) :
sql = "SELECT * FROM %s WHERE title = '%s' AND url = '%s'" % (self.DB.table, data['title'], data['url'])
result = self.DB.query(sql)
def baseFilter (self) :
if len(result) == 0 :
print('add:' + str(data['title']))
self.DB.insert(data)
else :
print('update:' + str(data['title']))
id = result[0][0]
self.DB.edit(id, data)
def outPut (self) :
pass
def fmtTitle (self, string) :
@ -76,3 +93,9 @@ class Iptv :
obj = Iptv()
obj.getSourceA()