コード例 #1
0
ファイル: myAPI_Quote.py プロジェクト: zixingcheng/zxcProj
    def get(self):
        #提取爬虫设置信息 
        #?setInfo={'spiderName': "ceshi2", 'spiderTag': 'webPage', 'spiderUrl': "", "spiderRule": "", 'isValid':'False', 'isDel':'True', "timeSet" : "* * * * *", 'mark':'测试设置' }
        #?setInfo={'spiderName': "sh000001", 'spiderTag': 'quote', 'spiderUrl': "", "spiderRule": "", 'isValid':'True', 'isDel':'False', "timeSet" : "* 9-20 * * 1-6", 'mark':'测试设置' }
        params = request.args.get('setInfo', "{}")
        setInfo = myData_Json.Trans_ToJson(params)

        #setInfo = myData_Trans.Tran_ToDict(params)
        bRes = not (setInfo.get("spiderName", "") == "")
        bRemove = myData_Trans.To_Bool(setInfo.get('isDel', "False"))
        if(setInfo.get("timeSet", None) == None):
            setInfo['timeSet'] = "* 9-15 * * 1-5"
            
        if(bRes and bRemove):
            bRes = setsSpider._Remove(setInfo['spiderName'])
            bRes = setsSpider._Find(setInfo["spiderName"]) == None
        else:
            bRes = setsSpider._Edit(setInfo)
            
        pMsg = copy.deepcopy(gol._Get_Setting('Return_strFormat', {}))
        if(bRes):
            pMsg['result'] = True
            spiderInfo = setsSpider._Find(setInfo["spiderName"])
            if(bRemove != True and spiderInfo != None):
                if(spiderInfo.isValid and not spiderInfo.isDeled):
                    pMsg['datas'] = [spiderInfo.ToDict()] 
        #return myData_Json.Trans_ToJson_str(pMsg)
        #使用jsonify来讲定义好的数据转换成json格式,并且返回给前端
        return jsonify(pMsg) 
コード例 #2
0
 def _Trans_Value(self, value, utype):  
     if(utype == "string"):
         return str(value)
     elif(utype == "float"):
         if(type(value) == float): return value
         if(type(value) == int): return value
         return myData_Trans.To_Float(value)
     elif(utype == "int"):
         if(type(value) == int): return value
         return myData_Trans.To_Int(value)
     elif(utype == "bool"):
         if(type(value) == bool): return value
         return myData_Trans.To_Bool(value)
     elif(utype == "datetime"):
         if(type(value) == datetime.datetime): return value
         return self._Trans_Value_Datetime(value)
     elif(utype == "list"):
         if(type(value) == list): return value
         if(value == None): return []
         if(value.count("~*^") > 0):
             data = list(json.loads(value.replace("~*^", ",")))
             return data
         else:
             return []
     return value
コード例 #3
0
 def InitBystr(self, strSets): 
     if(len(strSets) > 5): 
         self.spiderName = strSets[0]
         self.spiderTag = strSets[1]
         self.spiderUrl = strSets[2]
         self.spiderRule = strSets[3].replace(';', ',')
         self.isValid = myData_Trans.To_Bool(strSets[4]) 
         self.timeSet = strSets[5].replace(';', ',')          #时间规则
         self.mark = strSets[6]
         self.InitRule()
     return True
コード例 #4
0
    def get(self):
        #提取股票信息
        pMsg = copy.deepcopy(gol._Get_Setting('Return_strFormat', {}))
        pRisks = gol._Get_Value('zxcRisk_Control', None)
        bResult = True

        # 组装参数并添加
        #dicParam = {"边界限制": True,"定量监测": False, "监测间隔": 0.01,"止盈线": 0.20, "止损线": -0.05, "动态止盈": True, "动态止损": True, "止盈回撤": 0.01, "止盈比例": 0.20, "止损回撤": 0.01, "止损比例": 0.20 }
        usrID = request.args.get('usrID', '')
        usrTag = request.args.get('usrTag', '')
        code_id = request.args.get('code_id', "")
        code_name = request.args.get('code_name', "")
        removeSet = myData_Trans.To_Bool(request.args.get('removeSet', False))
        paramInfo = myData_Trans.Tran_ToDict(request.args.get('setInfo', "{}"))
        paramInfo['removeSet'] = removeSet

        dtTrade = request.args.get('time', "")
        dateTag = request.args.get('dateTag', "")
        stockPrice = myData_Trans.To_Float(
            str(request.args.get('stockPrice', 0)))
        stockNum = myData_Trans.To_Int(str(request.args.get('stockNum', 0)))
        if (removeSet == False and (stockPrice == 0 or stockNum == 0)):
            bResult = False
            pMsg['text'] = "股价、数量不能为0."
        if (usrID == "" and usrTag == ""):
            bResult = False
            pMsg['text'] = "用户信息不能为空."
        if (bResult):
            strR = pRisks.addRiskSet(usrID, usrTag, code_id, code_name,
                                     stockPrice, stockNum, dtTrade, dateTag,
                                     paramInfo)

        #解析参数
        strTag = "风控设置:" + code_name + "\n"
        if (bResult):
            if (removeSet == False):
                if (stockPrice == 0 or stockNum == 0):
                    pMsg['text'] = strTag + " --已成功修改参数信息."
                else:
                    trade = myData.iif(stockNum > 0, "买入", "卖出")
                    if (stockNum % 100 == 0):
                        pMsg[
                            'text'] = strTag + F"新增{trade}:{str(abs(stockNum))} 股.\n{trade}均价:{stockPrice} 元/股)."
                    else:
                        pMsg[
                            'text'] = strTag + F"新增{trade}:{str(abs(stockNum))} 张.\n{trade}均价:{stockPrice} 元/张."
                bResult = True
            else:
                pMsg['text'] = strTag + " --设置已成功移除."
                bResult = True
        pMsg['result'] = bResult
        if (bResult == ""): pMsg['text'] = strTag + "操作失败!"
        return pMsg
コード例 #5
0
    def Add_Row_BySimply(self, strInfo, updata = False, bSave = True):
        lines = strInfo.replace('\r\n', '').replace('\n', '').split(',')
        ind = 1
        rowInfo = {}
        for x in self.fields:
            rowInfo[x] = lines[ind]
            ind = ind + 1

        #系统字段初始
        rowInfo["ID"] = myData_Trans.To_Int(lines[0])
        if(len(lines) - 2 == len(self.fields)):
            rowInfo["isDel"] = myData_Trans.To_Bool(lines[len(self.fields) + 1])
        return self.Add_Row(rowInfo, updata, bSave)
コード例 #6
0
    def Add_Field(self, fieldName, fieldType = myIO_xlsx.myFiledype.string, isIndex = False, fieldName_alias = ''): 
        # 以字典方式组织字段头
        if(fieldType == ""):
            fieldType = myIO_xlsx.myFiledype.string
        isIndex = myData_Trans.To_Bool(str(isIndex))

        # 字段方式定义索引
        fieldName = fieldName.replace('\r\n', '').replace('\n', '')
        if(fieldName[:2] == '**'):
            isIndex = True
            fieldName = fieldName[2:]
        self.fields[fieldName] = {'name': fieldName,'nameAlias': fieldName_alias, 'type': fieldType, 'isIndex': isIndex}
        self._Add_IndexField(fieldName, isIndex)
        return True
コード例 #7
0
    def get(self):
        #提取股票信息
        extype = request.args.get('extype', "")
        code_id = request.args.get('code_id', "")
        code_name = request.args.get('code_name', "")
        removeSet = myData_Trans.To_Bool(request.args.get('removeSet', ''))

        pMsg = copy.deepcopy(gol._Get_Setting('Return_strFormat', {}))
        pStocks = gol._Get_Value('setsStock', None)
        lstStock = pStocks._Find(code_id, "", exType=extype)
        if (len(lstStock) != 1):
            pMsg['text'] = "股票代码或名称错误!"
            return pMsg
        pStock = lstStock[0]
        strTag = "股票设置:" + pStock.code_name + "\n      "

        #解析参数
        bResult = False
        if (bResult == False):
            #提取行情对象
            pSource = gol._Get_Value('quoteSource', None)
            pSets = gol._Get_Value('setsQuote', None)
            if (pSource != None and pSets != None):
                if (removeSet == False):
                    editInfo = myData_Trans.Tran_ToDict(
                        request.args.get('editInfo', "{}"))
                    if (pSets._Edit(pStock.extype, pStock.code_id,
                                    pStock.code_name, editInfo)):
                        pSource.params = pSource._getDefault_Param()
                        pMsg['text'] = strTag + " --设置已成功修改。"
                        bResult = True
                        print(pSource.params)
                else:
                    usrID = request.args.get('usrID', '')
                    usrPlat = request.args.get('usrPlat', 'wx')
                    if (pSets._Remove(pStock.extype, pStock.code_id,
                                      pStock.code_name, usrID)):
                        pSource.params = pSource._getDefault_Param()
                        pMsg['text'] = strTag + " --设置已成功移除。"
                        bResult = True
                        print(pSource.params)
        pMsg['result'] = bResult
        if (bResult == ""): pMsg['text'] = strTag + "操作失败!"
        return pMsg
コード例 #8
0
ファイル: myIO_xlsx.py プロジェクト: zixingcheng/zxcProj
    def loadDt_Row(self, ind_row, col_start=0, isField=False, csvLines=None):
        pTypes = self.dataFieldType
        nFields = len(pTypes)
        pValues = []
        if (csvLines == None):
            rows = self.sheet.row_values(
                ind_row)  # 获取整行内容,列内容: pSheet.col_values(i)
            cols = self.sheet.ncols
        else:
            rows = csvLines  # csv行数据
            cols = len(self.dataField)

        # 转换数据类型
        cols_row = len(rows)
        for j in range(col_start, cols):
            if (nFields > j and cols_row > j and isField == False):
                if (pTypes[j] == myFiledype.float):
                    pValues.append(float(rows[j]))
                    continue
                elif (pTypes[j] == myFiledype.int):
                    pValues.append(int(rows[j]))
                    continue
                elif (pTypes[j] == myFiledype.datetime):
                    nCount = rows[j].count(":")
                    if (nCount == 0):
                        pValues.append(
                            myData_Trans.Tran_ToDatetime(rows[j], "%Y-%m-%d"))
                    elif (nCount == 1):
                        pValues.append(
                            myData_Trans.Tran_ToDatetime(
                                rows[j], "%Y-%m-%d %H:%M"))
                    else:
                        pValues.append(myData_Trans.Tran_ToDatetime(rows[j]))
                    continue
                elif (pTypes[j] == myFiledype.bool):
                    pValues.append(myData_Trans.To_Bool(rows[j]))
                    continue
            #其他全部为默认类型
            pValues.append(rows[j])
        return pValues
コード例 #9
0
    def _Init_BySet_str(self, strSet):
        strSets = strSet.split(',')
        if (len(strSets) < 10): return False

        #初始设置集
        ids = strSets[0].split('.')
        pSet = self._Find("", ids[0] + ids[1])
        if (pSet == None):
            pSet = myQuote_Settings(ids[0], ids[1], "", "")
            self._Index(pSet)

        #按类型初始
        if (pSet):
            monitorTag = strSets[5]
            pSetting = pSet.settings.get(monitorTag, None)
            if (pSetting == None):
                if (monitorTag == "整点播报" or monitorTag == "涨跌监测"):  #特殊类型处理
                    pSetting = myQuote_Setting(monitorTag)
                else:
                    pSetting = None
                    return False

            #底层属性提取
            pSetting.monitorTag = monitorTag
            pSetting.isValid = myData_Trans.To_Bool(strSets[6])
            pSetting.setStr = strSets[7]
            pSetting.mark = strSets[9]
            msgUsers = myData_Trans.Tran_ToDict(strSets[8].replace(',', ','))
            for x in msgUsers:
                pSetting.msgUsers[x] = msgUsers[x]

                # 特殊同步设置
                if (x == "茶叶一主号"):
                    pSetting.msgUsers["老婆"] = msgUsers[x]
            pSet.AddSetting(pSetting)
            self._Index_User(pSet)
            return True
        return False
コード例 #10
0
    def _Edit(self, dictSet):
        bResult = False
        name = dictSet.get("spiderName", "")
        if(name == ""): return False

        #初始设置集
        pSet = self._Find(name)
        if(pSet == None):
            pSet = mySpider_Setting(name, dictSet.get("spiderTag", "") + "", dictSet.get("spiderUrl", "") + "", dictSet.get("spiderRule", "" + ""), dictSet.get("timeSet", "") + "")
            bResult = self._Index(pSet)
        else:
            pSet.spiderTag = dictSet.get("spiderTag", pSet.spiderTag + "")
            pSet.spiderUrl = dictSet.get("spiderUrl", pSet.spiderUrl + "")
            pSet.spiderRule = dictSet.get("spiderRule", pSet.spiderRule + "")
            pSet.timeSet = dictSet.get("timeSet", pSet.timeSet + "")
            bResult = pSet.InitRule();
            bResult = True
        pSet.isValid = myData_Trans.To_Bool(dictSet.get("isValid", str(pSet.isValid)))      
        pSet.mark = dictSet.get("mark", pSet.mark)

        if(bResult): 
            self.change_reply(pSet.spiderTag, name)
            self._Save()
        return bResult        
コード例 #11
0
ファイル: myPyMysql.py プロジェクト: zixingcheng/zxcProj
    def createDB_ByFile(self, dbName, dbSet_MdFile='', isRecover=False):
        try:
            #读取表字段信息集
            if (dbSet_MdFile == ""):
                strDir, strName = myIO.getPath_ByFile(__file__)
                dirBase = os.path.abspath(os.path.join(strDir, ".."))
                dir = dirBase + "/Data/DB_Data/"
                dbSet_MdFile = dir + dbName + ".md"
            pMD = myIO_md.myMD(dbSet_MdFile)
            if (len(pMD.nodesMD) < 1): return False

            #数据库创建,不存在或者强制覆盖
            bReusult = True
            if (self.isExist_DB(dbName) == False or isRecover == True):
                bReusult = bReusult & (self.createDB(dbName) >= 0)

            #循环更新创建表信息
            self.initConnect(dbName)
            for x in pMD[0].Childs:
                #提取表信息
                pTable = x.getTable()
                bRecover = x.titleName.count("-*r") == 1
                tbName = x.titleName.replace("-*r", "")

                #创建表-检查存在,如果覆盖则重建
                if (bRecover == True):
                    bReusult = bReusult & (self.dropTable(tbName) >= 0)
                if (self.isExist_Table(tbName) == False or bRecover == True):
                    bReusult = bReusult & (self.createTable(tbName) >= 0)

                #循环所有字段,创建或更新字段信息
                for ind in range(1, pTable.rows):
                    fieldName = pTable['字段名'].values[ind]
                    fieldType = pTable['字段类型'].values[ind]
                    fieldLength = myData_Trans.To_Int(
                        pTable['字段长度'].values[ind])
                    nullable = myData_Trans.To_Bool(pTable['是否可空'].values[ind])
                    isIndex = myData_Trans.To_Bool(pTable['是否索引'].values[ind])
                    default = pTable['默认值'].values[ind].replace('-', '')
                    indexType = pTable['索引类型'].values[ind].replace('-', '')

                    #创建字段
                    tableInfo = {
                        'tb_name':
                        tbName,
                        'fields': [{
                            "columnName": fieldName,
                            "dataType": fieldType,
                            "fieldLength": fieldLength,
                            'nullable': nullable,
                            'columnDefault': default
                        }]
                    }
                    bReusult = bReusult & (self.createField(tableInfo) >= 0)

                    #创建索引
                    if (isIndex and indexType != ""):
                        bReusult = bReusult & (self.createIndex(
                            tbName, indexType, indexType + "_" + fieldName,
                            fieldName) >= 0)

                #创建默认字段
                tableInfo = {
                    'tb_name':
                    tbName,
                    'fields': [{
                        "columnName": 'isDel',
                        "dataType": 'bool',
                        "fieldLength": 0,
                        'nullable': False
                    }]
                }
                bReusult = bReusult & (self.createField(tableInfo) >= 0)
                tableInfo = {
                    'tb_name':
                    tbName,
                    'fields': [{
                        "columnName": 'editTime',
                        "dataType": 'datetime',
                        "fieldLength": 0,
                        'nullable': False
                    }]
                }
                bReusult = bReusult & (self.createField(tableInfo) >= 0)
            return bReusult
        except Exception as e:
            myDebug.Debug(f'error:{e}')
            return False