pull/109/head
Mr Chen 7 years ago
parent e2e88df295
commit b92be80c36
  1. 280
      class/db.py
  2. 269
      class/page.py
  3. 56
      class/public.py
  4. 932
      class/system.py
  5. 1
      plugins/nginx/info.json
  6. 1609
      static/js/files.js
  7. 2
      task.py

@ -1,91 +1,82 @@
#coding: utf-8 # coding: utf-8
# +-------------------------------------------------------------------
# | 宝塔Linux面板
# +-------------------------------------------------------------------
# | Copyright (c) 2015-2016 宝塔软件(http://bt.cn) All rights reserved.
# +-------------------------------------------------------------------
# | Author: 黄文良 <287962566@qq.com>
# +-------------------------------------------------------------------
import sqlite3 import sqlite3
import os import os
class Sql(): class Sql():
#------------------------------ #------------------------------
# 数据库操作类 For sqlite3 # 数据库操作类 For sqlite3
#------------------------------ #------------------------------
__DB_FILE = None # 数据库文件 __DB_FILE = None # 数据库文件
__DB_CONN = None # 数据库连接对象 __DB_CONN = None # 数据库连接对象
__DB_TABLE = "" # 被操作的表名称 __DB_TABLE = "" # 被操作的表名称
__OPT_WHERE = "" # where条件 __OPT_WHERE = "" # where条件
__OPT_LIMIT = "" # limit条件 __OPT_LIMIT = "" # limit条件
__OPT_ORDER = "" # order条件 __OPT_ORDER = "" # order条件
__OPT_FIELD = "*" # field条件 __OPT_FIELD = "*" # field条件
__OPT_PARAM = () # where值 __OPT_PARAM = () # where值
def __init__(self): def __init__(self):
self.__DB_FILE = 'data/default.db' self.__DB_FILE = 'data/default.db'
def __GetConn(self): def __GetConn(self):
#取数据库对象 # 取数据库对象
try: try:
if self.__DB_CONN == None: if self.__DB_CONN == None:
self.__DB_CONN = sqlite3.connect(self.__DB_FILE) self.__DB_CONN = sqlite3.connect(self.__DB_FILE)
except Exception,ex: except Exception, ex:
return "error: " + str(ex) return "error: " + str(ex)
def dbfile(self,name): def dbfile(self, name):
self.__DB_FILE = 'data/' + name + '.db' self.__DB_FILE = 'data/' + name + '.db'
return self return self
def table(self,table): def table(self, table):
#设置表名 # 设置表名
self.__DB_TABLE = table self.__DB_TABLE = table
return self return self
def where(self, where, param):
def where(self,where,param): # WHERE条件
#WHERE条件
if where: if where:
self.__OPT_WHERE = " WHERE " + where self.__OPT_WHERE = " WHERE " + where
self.__OPT_PARAM = param self.__OPT_PARAM = param
return self return self
def order(self, order):
def order(self,order): # ORDER条件
#ORDER条件
if len(order): if len(order):
self.__OPT_ORDER = " ORDER BY "+order self.__OPT_ORDER = " ORDER BY " + order
return self return self
def limit(self, limit):
def limit(self,limit): # LIMIT条件
#LIMIT条件
if len(limit): if len(limit):
self.__OPT_LIMIT = " LIMIT "+limit self.__OPT_LIMIT = " LIMIT " + limit
return self return self
def field(self, field):
def field(self,field): # FIELD条件
#FIELD条件
if len(field): if len(field):
self.__OPT_FIELD = field self.__OPT_FIELD = field
return self return self
def select(self): def select(self):
#查询数据集 # 查询数据集
self.__GetConn() self.__GetConn()
try: try:
sql = "SELECT " + self.__OPT_FIELD + " FROM " + self.__DB_TABLE + self.__OPT_WHERE + self.__OPT_ORDER + self.__OPT_LIMIT sql = "SELECT " + self.__OPT_FIELD + " FROM " + self.__DB_TABLE + \
result = self.__DB_CONN.execute(sql,self.__OPT_PARAM) self.__OPT_WHERE + self.__OPT_ORDER + self.__OPT_LIMIT
result = self.__DB_CONN.execute(sql, self.__OPT_PARAM)
data = result.fetchall() data = result.fetchall()
#构造字曲系列 # 构造字曲系列
if self.__OPT_FIELD != "*": if self.__OPT_FIELD != "*":
field = self.__OPT_FIELD.split(',') field = self.__OPT_FIELD.split(',')
tmp = [] tmp = []
for row in data: for row in data:
i=0 i = 0
tmp1 = {} tmp1 = {}
for key in field: for key in field:
tmp1[key] = row[i] tmp1[key] = row[i]
@ -95,196 +86,191 @@ class Sql():
data = tmp data = tmp
del(tmp) del(tmp)
else: else:
#将元组转换成列表 # 将元组转换成列表
tmp = map(list,data) tmp = map(list, data)
data = tmp data = tmp
del(tmp) del(tmp)
self.__close() self.__close()
return data return data
except Exception,ex: except Exception, ex:
return "error: " + str(ex) return "error: " + str(ex)
def getField(self, keyName):
def getField(self,keyName): # 取回指定字段
#取回指定字段 result = self.field(keyName).select()
result = self.field(keyName).select();
if len(result) == 1: if len(result) == 1:
return result[0][keyName] return result[0][keyName]
return result return result
def setField(self, keyName, keyValue):
def setField(self,keyName,keyValue): # 更新指定字段
#更新指定字段 return self.save(keyName, (keyValue,))
return self.save(keyName,(keyValue,))
def find(self): def find(self):
#取一行数据 # 取一行数据
result = self.limit("1").select() result = self.limit("1").select()
if len(result) == 1: if len(result) == 1:
return result[0] return result[0]
return result return result
def count(self): def count(self):
#取行数 # 取行数
key="COUNT(*)" key = "COUNT(*)"
data = self.field(key).select() data = self.field(key).select()
try: try:
return int(data[0][key]) return int(data[0][key])
except: except:
return 0 return 0
def add(self, keys, param):
def add(self,keys,param): # 插入数据
#插入数据
self.__GetConn() self.__GetConn()
self.__DB_CONN.text_factory = str self.__DB_CONN.text_factory = str
try: try:
values="" values = ""
for key in keys.split(','): for key in keys.split(','):
values += "?," values += "?,"
values = self.checkInput(values[0:len(values)-1]); values = self.checkInput(values[0:len(values) - 1])
sql = "INSERT INTO "+self.__DB_TABLE+"("+keys+") "+"VALUES("+values+")" sql = "INSERT INTO " + self.__DB_TABLE + \
result = self.__DB_CONN.execute(sql,param) "(" + keys + ") " + "VALUES(" + values + ")"
result = self.__DB_CONN.execute(sql, param)
id = result.lastrowid id = result.lastrowid
self.__close() self.__close()
self.__DB_CONN.commit() self.__DB_CONN.commit()
return id return id
except Exception,ex: except Exception, ex:
return "error: " + str(ex) return "error: " + str(ex)
def checkInput(self,data): def checkInput(self, data):
if not data: return data; if not data:
if type(data) != str: return data; return data
checkList = [ if type(data) != str:
{'d':'<','r':''}, return data
{'d':'>','r':''}, checkList = [
{'d':'\'','r':''}, {'d': '<', 'r': ''},
{'d':'"','r':''}, {'d': '>', 'r': ''},
{'d':'&','r':''}, {'d': '\'', 'r': ''},
{'d':'#','r':''}, {'d': '"', 'r': ''},
{'d':'<','r':''} {'d': '&', 'r': ''},
] {'d': '#', 'r': ''},
for v in checkList: {'d': '<', 'r': ''}
data = data.replace(v['d'],v['r']); ]
return data; for v in checkList:
data = data.replace(v['d'], v['r'])
def addAll(self,keys,param): return data
#插入数据
def addAll(self, keys, param):
# 插入数据
self.__GetConn() self.__GetConn()
self.__DB_CONN.text_factory = str self.__DB_CONN.text_factory = str
try: try:
values="" values = ""
for key in keys.split(','): for key in keys.split(','):
values += "?," values += "?,"
values = values[0:len(values)-1] values = values[0:len(values) - 1]
sql = "INSERT INTO "+self.__DB_TABLE+"("+keys+") "+"VALUES("+values+")" sql = "INSERT INTO " + self.__DB_TABLE + \
result = self.__DB_CONN.execute(sql,param) "(" + keys + ") " + "VALUES(" + values + ")"
result = self.__DB_CONN.execute(sql, param)
return True return True
except Exception,ex: except Exception, ex:
return "error: " + str(ex) return "error: " + str(ex)
def commit(self): def commit(self):
self.__close() self.__close()
self.__DB_CONN.commit() self.__DB_CONN.commit()
def save(self, keys, param):
def save(self,keys,param): # 更新数据
#更新数据
self.__GetConn() self.__GetConn()
self.__DB_CONN.text_factory = str self.__DB_CONN.text_factory = str
try: try:
opt = "" opt = ""
for key in keys.split(','): for key in keys.split(','):
opt += key + "=?," opt += key + "=?,"
opt = opt[0:len(opt)-1] opt = opt[0:len(opt) - 1]
sql = "UPDATE " + self.__DB_TABLE + " SET " + opt+self.__OPT_WHERE sql = "UPDATE " + self.__DB_TABLE + " SET " + opt + self.__OPT_WHERE
import public import public
public.writeFile('/tmp/test.pl',sql) public.writeFile('/tmp/test.pl', sql)
#处理拼接WHERE与UPDATE参数 # 处理拼接WHERE与UPDATE参数
tmp = list(param) tmp = list(param)
for arg in self.__OPT_PARAM: for arg in self.__OPT_PARAM:
tmp.append(arg) tmp.append(arg)
self.__OPT_PARAM = tuple(tmp) self.__OPT_PARAM = tuple(tmp)
result = self.__DB_CONN.execute(sql,self.__OPT_PARAM) result = self.__DB_CONN.execute(sql, self.__OPT_PARAM)
self.__close() self.__close()
self.__DB_CONN.commit() self.__DB_CONN.commit()
return result.rowcount return result.rowcount
except Exception,ex: except Exception, ex:
return "error: " + str(ex) return "error: " + str(ex)
def delete(self,id=None): def delete(self, id=None):
#删除数据 # 删除数据
self.__GetConn() self.__GetConn()
try: try:
if id: if id:
self.__OPT_WHERE = " WHERE id=?" self.__OPT_WHERE = " WHERE id=?"
self.__OPT_PARAM = (id,) self.__OPT_PARAM = (id,)
sql = "DELETE FROM " + self.__DB_TABLE + self.__OPT_WHERE sql = "DELETE FROM " + self.__DB_TABLE + self.__OPT_WHERE
result = self.__DB_CONN.execute(sql,self.__OPT_PARAM) result = self.__DB_CONN.execute(sql, self.__OPT_PARAM)
self.__close() self.__close()
self.__DB_CONN.commit() self.__DB_CONN.commit()
return result.rowcount return result.rowcount
except Exception,ex: except Exception, ex:
return "error: " + str(ex) return "error: " + str(ex)
def execute(self, sql, param):
def execute(self,sql,param): # 执行SQL语句返回受影响行
#执行SQL语句返回受影响行
self.__GetConn() self.__GetConn()
try: try:
result = self.__DB_CONN.execute(sql,param) result = self.__DB_CONN.execute(sql, param)
self.__DB_CONN.commit() self.__DB_CONN.commit()
return result.rowcount return result.rowcount
except Exception,ex: except Exception, ex:
return "error: " + str(ex) return "error: " + str(ex)
def query(self, sql, param):
def query(self,sql,param): # 执行SQL语句返回数据集
#执行SQL语句返回数据集
self.__GetConn() self.__GetConn()
try: try:
result = self.__DB_CONN.execute(sql,param) result = self.__DB_CONN.execute(sql, param)
#将元组转换成列表 # 将元组转换成列表
data = map(list,result) data = map(list, result)
return data return data
except Exception,ex: except Exception, ex:
return "error: " + str(ex) return "error: " + str(ex)
def create(self,name): def create(self, name):
#创建数据表 # 创建数据表
self.__GetConn() self.__GetConn()
import public import public
script = public.readFile('data/' + name + '.sql') script = public.readFile('data/' + name + '.sql')
result = self.__DB_CONN.executescript(script) result = self.__DB_CONN.executescript(script)
self.__DB_CONN.commit() self.__DB_CONN.commit()
return result.rowcount return result.rowcount
def fofile(self,filename): def fofile(self, filename):
#执行脚本 # 执行脚本
self.__GetConn() self.__GetConn()
import public import public
script = public.readFile(filename) script = public.readFile(filename)
result = self.__DB_CONN.executescript(script) result = self.__DB_CONN.executescript(script)
self.__DB_CONN.commit() self.__DB_CONN.commit()
return result.rowcount return result.rowcount
def __close(self): def __close(self):
#清理条件属性 # 清理条件属性
self.__OPT_WHERE = "" self.__OPT_WHERE = ""
self.__OPT_FIELD = "*" self.__OPT_FIELD = "*"
self.__OPT_ORDER = "" self.__OPT_ORDER = ""
self.__OPT_LIMIT = "" self.__OPT_LIMIT = ""
self.__OPT_PARAM = () self.__OPT_PARAM = ()
def close(self): def close(self):
#释放资源 # 释放资源
try: try:
self.__DB_CONN.close() self.__DB_CONN.close()
self.__DB_CONN = None self.__DB_CONN = None
except: except:
pass pass

@ -1,207 +1,222 @@
#coding: utf-8 # coding: utf-8
# +-------------------------------------------------------------------
# | 宝塔Linux面板 import math
# +------------------------------------------------------------------- import string
# | Copyright (c) 2015-2016 宝塔软件(http://bt.cn) All rights reserved. import public
# +-------------------------------------------------------------------
# | Author: 黄文良 <2879625666@qq.com>
# +-------------------------------------------------------------------
import math,string,public
class Page(): class Page():
#-------------------------- #--------------------------
# 分页类 - JS回调版 # 分页类 - JS回调版
#-------------------------- #--------------------------
__PREV = '上一页' __PREV = '上一页'
__NEXT = '下一页' __NEXT = '下一页'
__START = '首页' __START = '首页'
__END = '尾页' __END = '尾页'
__COUNT_START = '' __COUNT_START = ''
__COUNT_END = '条数据' __COUNT_END = '条数据'
__FO = '' __FO = ''
__LINE = '' __LINE = ''
__LIST_NUM = 4 __LIST_NUM = 4
SHIFT = None #偏移量 SHIFT = None # 偏移量
ROW = None #每页行数 ROW = None # 每页行数
__C_PAGE = None #当前页 __C_PAGE = None # 当前页
__COUNT_PAGE = None #总页数 __COUNT_PAGE = None # 总页数
__COUNT_ROW = None #总行数 __COUNT_ROW = None # 总行数
__URI = None #URI __URI = None # URI
__RTURN_JS = False #是否返回JS回调 __RTURN_JS = False # 是否返回JS回调
__START_NUM = None #起始行 __START_NUM = None # 起始行
__END_NUM = None #结束行 __END_NUM = None # 结束行
def __init__(self): def __init__(self):
tmp = public.getMsg('PAGE'); tmp = public.getMsg('PAGE')
if tmp: if tmp:
self.__PREV = tmp['PREV']; self.__PREV = tmp['PREV']
self.__NEXT = tmp['NEXT']; self.__NEXT = tmp['NEXT']
self.__START = tmp['START']; self.__START = tmp['START']
self.__END = tmp['END']; self.__END = tmp['END']
self.__COUNT_START = tmp['COUNT_START']; self.__COUNT_START = tmp['COUNT_START']
self.__COUNT_END = tmp['COUNT_END']; self.__COUNT_END = tmp['COUNT_END']
self.__FO = tmp['FO']; self.__FO = tmp['FO']
self.__LINE = tmp['LINE']; self.__LINE = tmp['LINE']
def GetPage(self,pageInfo,limit = '1,2,3,4,5,6,7,8'): def GetPage(self, pageInfo, limit='1,2,3,4,5,6,7,8'):
# 取分页信息 # 取分页信息
# @param pageInfo 传入分页参数字典 # @param pageInfo 传入分页参数字典
# @param limit 返回系列 # @param limit 返回系列
self.__RTURN_JS = pageInfo['return_js'] self.__RTURN_JS = pageInfo['return_js']
self.__COUNT_ROW = pageInfo['count'] self.__COUNT_ROW = pageInfo['count']
self.ROW = pageInfo['row'] self.ROW = pageInfo['row']
self.__C_PAGE = self.__GetCpage(pageInfo['p']) self.__C_PAGE = self.__GetCpage(pageInfo['p'])
self.__START_NUM = self.__StartRow() self.__START_NUM = self.__StartRow()
self.__END_NUM = self.__EndRow() self.__END_NUM = self.__EndRow()
self.__COUNT_PAGE = self.__GetCountPage() self.__COUNT_PAGE = self.__GetCountPage()
self.__URI = self.__SetUri(pageInfo['uri']) self.__URI = self.__SetUri(pageInfo['uri'])
self.SHIFT = self.__START_NUM - 1 self.SHIFT = self.__START_NUM - 1
keys = limit.split(',') keys = limit.split(',')
pages = {} pages = {}
#起始页 # 起始页
pages['1'] = self.__GetStart() pages['1'] = self.__GetStart()
#上一页 # 上一页
pages['2'] = self.__GetPrev() pages['2'] = self.__GetPrev()
#分页 # 分页
pages['3'] = self.__GetPages() pages['3'] = self.__GetPages()
#下一页 # 下一页
pages['4'] = self.__GetNext() pages['4'] = self.__GetNext()
#尾页 # 尾页
pages['5'] = self.__GetEnd() pages['5'] = self.__GetEnd()
#当前显示页与总页数 # 当前显示页与总页数
pages['6'] = "<span class='Pnumber'>" + bytes(self.__C_PAGE) + "/" + bytes(self.__COUNT_PAGE) + "</span>" pages['6'] = "<span class='Pnumber'>" + \
#本页显示开始与结束行 bytes(self.__C_PAGE) + "/" + bytes(self.__COUNT_PAGE) + "</span>"
pages['7'] = "<span class='Pline'>" + self.__FO + bytes(self.__START_NUM) + "-" + bytes(self.__END_NUM) + self.__LINE + "</span>" # 本页显示开始与结束行
#行数 pages['7'] = "<span class='Pline'>" + self.__FO + \
pages['8'] = "<span class='Pcount'>" + self.__COUNT_START + bytes(self.__COUNT_ROW) + self.__COUNT_END + "</span>" bytes(self.__START_NUM) + "-" + \
bytes(self.__END_NUM) + self.__LINE + "</span>"
#构造返回数据 # 行数
retuls = '<div>'; pages['8'] = "<span class='Pcount'>" + self.__COUNT_START + \
bytes(self.__COUNT_ROW) + self.__COUNT_END + "</span>"
# 构造返回数据
retuls = '<div>'
for value in keys: for value in keys:
retuls += pages[value] retuls += pages[value]
retuls +='</div>'; retuls += '</div>'
#返回分页数据 # 返回分页数据
return retuls; return retuls
def __GetEnd(self): def __GetEnd(self):
#构造尾页 # 构造尾页
endStr = "" endStr = ""
if self.__C_PAGE >= self.__COUNT_PAGE: if self.__C_PAGE >= self.__COUNT_PAGE:
endStr = ''; endStr = ''
else: else:
if self.__RTURN_JS == "": if self.__RTURN_JS == "":
endStr = "<a class='Pend' href='" + self.__URI + "p=" + bytes(self.__COUNT_PAGE) + "'>" + self.__END + "</a>" endStr = "<a class='Pend' href='" + self.__URI + "p=" + \
bytes(self.__COUNT_PAGE) + "'>" + self.__END + "</a>"
else: else:
endStr = "<a class='Pend' onclick='" + self.__RTURN_JS + "(" + bytes(self.__COUNT_PAGE) + ")'>" + self.__END + "</a>" endStr = "<a class='Pend' onclick='" + self.__RTURN_JS + \
"(" + bytes(self.__COUNT_PAGE) + ")'>" + self.__END + "</a>"
return endStr return endStr
def __GetNext(self): def __GetNext(self):
#构造下一页 # 构造下一页
nextStr = "" nextStr = ""
if self.__C_PAGE >= self.__COUNT_PAGE: if self.__C_PAGE >= self.__COUNT_PAGE:
nextStr = ''; nextStr = ''
else: else:
if self.__RTURN_JS == "": if self.__RTURN_JS == "":
nextStr = "<a class='Pnext' href='" + self.__URI + "p=" + bytes(self.__C_PAGE + 1) + "'>" + self.__NEXT + "</a>" nextStr = "<a class='Pnext' href='" + self.__URI + "p=" + \
else: bytes(self.__C_PAGE + 1) + "'>" + self.__NEXT + "</a>"
nextStr = "<a class='Pnext' onclick='" + self.__RTURN_JS + "(" + bytes(self.__C_PAGE + 1) + ")'>" + self.__NEXT + "</a>" else:
nextStr = "<a class='Pnext' onclick='" + self.__RTURN_JS + \
"(" + bytes(self.__C_PAGE + 1) + ")'>" + self.__NEXT + "</a>"
return nextStr return nextStr
def __GetPages(self): def __GetPages(self):
#构造分页 # 构造分页
pages = '' pages = ''
num = 0 num = 0
#当前页之前 # 当前页之前
if (self.__COUNT_PAGE - self.__C_PAGE) < self.__LIST_NUM: if (self.__COUNT_PAGE - self.__C_PAGE) < self.__LIST_NUM:
num = self.__LIST_NUM + (self.__LIST_NUM - (self.__COUNT_PAGE - self.__C_PAGE)); num = self.__LIST_NUM + \
(self.__LIST_NUM - (self.__COUNT_PAGE - self.__C_PAGE))
else: else:
num = self.__LIST_NUM num = self.__LIST_NUM
n = 0 n = 0
for i in range(num): for i in range(num):
n = num - i n = num - i
page = self.__C_PAGE - n; page = self.__C_PAGE - n
if page > 0: if page > 0:
if self.__RTURN_JS == "": if self.__RTURN_JS == "":
pages += "<a class='Pnum' href='" + self.__URI + "p=" + bytes(page) + "'>" + bytes(page) + "</a>" pages += "<a class='Pnum' href='" + self.__URI + \
"p=" + bytes(page) + "'>" + bytes(page) + "</a>"
else: else:
pages += "<a class='Pnum' onclick='" + self.__RTURN_JS + "(" + bytes(page) + ")'>" + bytes(page) + "</a>" pages += "<a class='Pnum' onclick='" + self.__RTURN_JS + \
"(" + bytes(page) + ")'>" + bytes(page) + "</a>"
#当前页
# 当前页
if self.__C_PAGE > 0: if self.__C_PAGE > 0:
pages += "<span class='Pcurrent'>" + bytes(self.__C_PAGE) + "</span>" pages += "<span class='Pcurrent'>" + \
bytes(self.__C_PAGE) + "</span>"
#当前页之后
# 当前页之后
if self.__C_PAGE <= self.__LIST_NUM: if self.__C_PAGE <= self.__LIST_NUM:
num = self.__LIST_NUM + (self.__LIST_NUM - self.__C_PAGE) + 1 num = self.__LIST_NUM + (self.__LIST_NUM - self.__C_PAGE) + 1
else: else:
num = self.__LIST_NUM; num = self.__LIST_NUM
for i in range(num): for i in range(num):
if i == 0: if i == 0:
continue continue
page = self.__C_PAGE + i; page = self.__C_PAGE + i
if page > self.__COUNT_PAGE: if page > self.__COUNT_PAGE:
break; break
if self.__RTURN_JS == "": if self.__RTURN_JS == "":
pages += "<a class='Pnum' href='" + self.__URI + "p=" + bytes(page) + "'>" + bytes(page) + "</a>" pages += "<a class='Pnum' href='" + self.__URI + \
else: "p=" + bytes(page) + "'>" + bytes(page) + "</a>"
pages += "<a class='Pnum' onclick='" + self.__RTURN_JS + "(" + bytes(page) + ")'>" + bytes(page) + "</a>" else:
pages += "<a class='Pnum' onclick='" + self.__RTURN_JS + \
return pages; "(" + bytes(page) + ")'>" + bytes(page) + "</a>"
return pages
def __GetPrev(self): def __GetPrev(self):
#构造上一页 # 构造上一页
startStr = '' startStr = ''
if self.__C_PAGE == 1: if self.__C_PAGE == 1:
startStr = ''; startStr = ''
else: else:
if self.__RTURN_JS == "": if self.__RTURN_JS == "":
startStr = "<a class='Ppren' href='" + self.__URI + "p=" + bytes(self.__C_PAGE - 1) + "'>" + self.__PREV + "</a>" startStr = "<a class='Ppren' href='" + self.__URI + "p=" + \
else: bytes(self.__C_PAGE - 1) + "'>" + self.__PREV + "</a>"
startStr = "<a class='Ppren' onclick='" + self.__RTURN_JS + "(" + bytes(self.__C_PAGE - 1) + ")'>" + self.__PREV + "</a>" else:
startStr = "<a class='Ppren' onclick='" + self.__RTURN_JS + \
"(" + bytes(self.__C_PAGE - 1) + ")'>" + self.__PREV + "</a>"
return startStr return startStr
def __GetStart(self): def __GetStart(self):
#构造起始分页 # 构造起始分页
startStr = '' startStr = ''
if self.__C_PAGE == 1: if self.__C_PAGE == 1:
startStr = ''; startStr = ''
else: else:
if self.__RTURN_JS == "": if self.__RTURN_JS == "":
startStr = "<a class='Pstart' href='" + self.__URI + "p=1'>" + self.__START + "</a>" startStr = "<a class='Pstart' href='" + \
self.__URI + "p=1'>" + self.__START + "</a>"
else: else:
startStr = "<a class='Pstart' onclick='" + self.__RTURN_JS + "(1)'>" + self.__START + "</a>" startStr = "<a class='Pstart' onclick='" + \
return startStr; self.__RTURN_JS + "(1)'>" + self.__START + "</a>"
return startStr
def __GetCpage(self,p):
#取当前页 def __GetCpage(self, p):
# 取当前页
if p: if p:
return p return p
return 1 return 1
def __StartRow(self): def __StartRow(self):
#从多少行开始 # 从多少行开始
return (self.__C_PAGE - 1) * self.ROW + 1 return (self.__C_PAGE - 1) * self.ROW + 1
def __EndRow(self): def __EndRow(self):
#从多少行结束 # 从多少行结束
if self.ROW > self.__COUNT_ROW: if self.ROW > self.__COUNT_ROW:
return self.__COUNT_ROW return self.__COUNT_ROW
return self.__C_PAGE * self.ROW return self.__C_PAGE * self.ROW
def __GetCountPage(self): def __GetCountPage(self):
#取总页数 # 取总页数
return int(math.ceil(self.__COUNT_ROW / float(self.ROW))) return int(math.ceil(self.__COUNT_ROW / float(self.ROW)))
def __SetUri(self,input): def __SetUri(self, input):
#构造URI # 构造URI
uri = '?' uri = '?'
for key in input: for key in input:
if key == 'p': if key == 'p':
continue continue
uri += key+'='+input[key]+'&' uri += key + '=' + input[key] + '&'
return str(uri) return str(uri)

@ -72,22 +72,6 @@ def GetRandomString(length):
return str return str
def checkCode(code, outime=120):
# 校验验证码
import web
try:
if md5(code.lower()) != web.ctx.session.codeStr:
web.ctx.session.login_error = getMsg('CODE_ERR')
return False
if time.time() - web.ctx.session.codeTime > outime:
web.ctx.session.login_error = getMsg('CODE_TIMEOUT')
return False
return True
except:
web.ctx.session.login_error = getMsg('CODE_NOT_EXISTS')
return False
def retJson(status, msg, data=()): def retJson(status, msg, data=()):
return jsonify({'status': status, 'msg': msg, 'data': data}) return jsonify({'status': status, 'msg': msg, 'data': data})
@ -139,13 +123,6 @@ def getLan(key):
return msg return msg
def getJson(data):
import json
import web
web.header('Content-Type', 'application/json; charset=utf-8')
return json.dumps(data)
def readFile(filename): def readFile(filename):
# 读文件内容 # 读文件内容
try: try:
@ -333,13 +310,13 @@ def GetLocalIp():
ipaddress = re.search('\d+.\d+.\d+.\d+', ipaddress).group(0) ipaddress = re.search('\d+.\d+.\d+.\d+', ipaddress).group(0)
return ipaddress return ipaddress
except: except:
try: pass
url = web.ctx.session.home + '/Api/getIpAddress' # try:
opener = urllib2.urlopen(url) # url = web.ctx.session.home + '/Api/getIpAddress'
return opener.read() # opener = urllib2.urlopen(url)
except: # return opener.read()
import web # except:
return web.ctx.host.split(':')[0] # return web.ctx.host.split(':')[0]
# 搜索数据中是否存在 # 搜索数据中是否存在
@ -355,7 +332,6 @@ def inArray(arrays, searchStr):
def checkWebConfig(): def checkWebConfig():
import web
if get_webserver() == 'nginx': if get_webserver() == 'nginx':
result = ExecShell( result = ExecShell(
"ulimit -n 10240 && /www/server/nginx/sbin/nginx -t -c /www/server/nginx/conf/nginx.conf") "ulimit -n 10240 && /www/server/nginx/sbin/nginx -t -c /www/server/nginx/conf/nginx.conf")
@ -787,15 +763,15 @@ def CheckCert(certPath='ssl/certificate.pem'):
# 获取面板地址 # 获取面板地址
def getPanelAddr(): # def getPanelAddr():
import web # import web
protocol = 'https://' if os.path.exists("data/ssl.pl") else 'http://' # protocol = 'https://' if os.path.exists("data/ssl.pl") else 'http://'
h = web.ctx.host.split(':') # h = web.ctx.host.split(':')
try: # try:
result = protocol + h[0] + ':' + h[1] # result = protocol + h[0] + ':' + h[1]
except: # except:
result = protocol + h[0] + ':' + readFile('data/port.pl').strip() # result = protocol + h[0] + ':' + readFile('data/port.pl').strip()
return result # return result
# 字节单位转换 # 字节单位转换

File diff suppressed because it is too large Load Diff

@ -15,7 +15,6 @@
"pid": "1", "pid": "1",
"update": ["1.14.0", "1.12.2", "1.8.1", "1.15.3", "-Tengine2.2.2", "openresty"], "update": ["1.14.0", "1.12.2", "1.8.1", "1.15.3", "-Tengine2.2.2", "openresty"],
"versions": [ "versions": [
{"status": false, "version": "1.14", "run": false, "no": "", "task": "1"},
{"status": false, "version": "1.14", "run": false, "no": "", "task": "1"}, {"status": false, "version": "1.14", "run": false, "no": "", "task": "1"},
{"status": false, "version": "1.12", "run": false, "no": "", "task": "1"}, {"status": false, "version": "1.12", "run": false, "no": "", "task": "1"},
{"status": false, "version": "1.8", "run": false, "no": "", "task": "1"}, {"status": false, "version": "1.8", "run": false, "no": "", "task": "1"},

File diff suppressed because it is too large Load Diff

@ -14,6 +14,7 @@ reload(sys)
sys.setdefaultencoding('utf-8') sys.setdefaultencoding('utf-8')
import db import db
import public import public
import time
global pre, timeoutCount, logPath, isTask, oldEdate, isCheck global pre, timeoutCount, logPath, isTask, oldEdate, isCheck
@ -327,6 +328,7 @@ def systemTask():
count += 1 count += 1
except Exception, ex: except Exception, ex:
print str(ex) print str(ex)
import time
time.sleep(30) time.sleep(30)
systemTask() systemTask()

Loading…
Cancel
Save