def kdbcollect(kdbaccount): kdbAcc = session.query(KDBAccount).filter( KDBAccount.username == kdbaccount).first() if not kdbAcc: return jsonify({ 'message': 'KanDianBao account doesn\'t found', 'code': 74147 }) kdbpassword = kdbAcc.decryptPWD(kdbAcc.password_hash) shopList = session.query(Shops).filter(Shops.numberOfItems == -1) driver = setBrowser(kdbaccount, isMitmProxy=False) for shop in shopList: shopInfoAndDriver = getKandianbaoShopInfoSoup(shop.sellerName, kdbaccount, kdbpassword, driver) if type(shopInfoAndDriver) == str: if shopInfoAndDriver == '限额已耗尽': return jsonify({ 'message': kdbaccount + ': 限额已耗尽', 'code': 20000 }) return jsonify({ 'message': kdbaccount + ': ' + shopInfoAndDriver, 'code': 70001 }) getShopInfoFromKDBSoup(shop.sellerName, shopInfoAndDriver[0]) return jsonify({'code': 20000})
def update_operatingexpense(operatingexpense_request, operatingexpense_id): operatingexpense = session.query(OperatingExpense).get(operatingexpense_id) operatingexpense.name = operatingexpense_request.name operatingexpense.description = operatingexpense_request.description operatingexpense.value = operatingexpense_request.value session.commit() return operatingexpense
def update_cost(cost_request, cost_id): cost = session.query(Cost).get(cost_id) cost.name = cost_request.name cost.description = cost_request.description cost.value = cost_request.value session.commit() return cost
def get_kdbaccounts(id): accs = session.query(KDBAccount).filter(KDBAccount.owner_id == id).all() # if g.current_user == user: # return jsonify(User.query.get_or_404(id).to_dict()) if accs == None: return error_response(404, 'User not found!') return jsonify({'data': [acc.to_dict() for acc in accs], 'code': 20000})
def create_kdbaccounts(id): data = request.get_json() if not data: return bad_request('Need to post data') message = '' if 'username' not in data or not data.get('username', None): message = 'Username invalid' if 'password' not in data or not data.get('password', None): message = 'Password invalid' if message != '': return bad_request(message) for acc in session.query(KDBAccount).filter( KDBAccount.owner_id == id).all(): print(acc.to_dict()) if acc.to_dict()['username'] == str(data['username']): return jsonify({'message': 'Account exists!', 'code': 70000}) kdbacc = KDBAccount() data['owner_id'] = id kdbacc.from_dict(data) # kdbacc.user_id += [user] session.add(kdbacc) session.commit() response = jsonify({'data': kdbacc.to_dict(), 'code': 20000}) response.status_code = 201 response.headers['Location'] = url_for('api.get_user', id=id) return response
def update_revenue(revenue_request, revenue_id): revenue = session.query(Revenue).get(revenue_id) revenue.unit_name = revenue_request.unitName revenue.unit_description = revenue_request.unitDescription revenue.unit_cost = revenue_request.unitCost revenue.unit_count = revenue_request.unitCount session.commit() return revenue
def get_tbaccounts(id): accs = session.query(TaobaoAccount).filter(TaobaoAccount.owner_id == id).all() if accs == None: return error_response(404, 'User not found!') data = [] for acc in accs: acc = acc.to_dict() acc['keyword'] = randomKeyWord() data.append(acc) return jsonify({'data': data, 'code': 20000})
def delete_kdbaccount(id): data = request.get_json() acc = session.query(KDBAccount).filter( KDBAccount.owner_id == id, KDBAccount.username == data.get('username', None)).first() if not data: return bad_request('You must post JSON data') session.delete(acc) session.commit() return jsonify({'code': 20000})
def verify_jwt(token): try: payload = jwt.decode(token, current_app.config['SECRET_KEY'], algorithms=['HS256']) except (jwt.exceptions.ExpiredSignatureError, jwt.exceptions.InvalidSignatureError) as e: # Token过期,或被人修改,那么签名验证也会失败 return None return session.query(User).filter( User.id == payload.get('user_id')).first()
def delete_tbaccount(id): data = request.get_json() acc = session.query(TaobaoAccount).filter(TaobaoAccount.username == data.get('username', None)).first() if not data: return bad_request('You must post JSON data') session.delete(acc) session.commit() user_data = os.getcwd() + "/app/api/data_getter/userdata/" + str(acc.username) try: shutil.rmtree(user_data) except: pass return jsonify({'code': 20000})
def modify_tbaccount(id): data = request.get_json() acc = session.query(TaobaoAccount).filter(TaobaoAccount.username == data.get('username', None)).first() if acc.status: return bad_request('Account is running') if not data: return bad_request('You must post JSON data') message = {} if 'username' in data and not data.get('username', None): message['username'] = '******' if 'password' in data and not data.get('password', None): message['password'] = '******' if message: return bad_request(message) acc.from_dict(data) session.commit() return jsonify({'data': acc.to_dict(), 'code': 20000})
def modify_kdbaccount(id): data = request.get_json() acc = session.query(KDBAccount).filter( KDBAccount.owner_id == id, KDBAccount.username == data.get('username', None)).first() if not data: return bad_request('You must post JSON data') message = {} if 'username' in data and not data.get('username', None): message['username'] = '******' if 'password' in data and not data.get('password', None): message['password'] = '******' if message: return bad_request(message) data['owner_id'] = id acc.from_dict(data) session.commit() return jsonify({'data': acc.to_dict(), 'code': 20000})
def tbcollect(tbaccount): # todo Keyword random data = request.get_json() keyword = str(data['keyword']) tbAcc = session.query(TaobaoAccount).filter( TaobaoAccount.username == tbaccount).first() if not tbAcc: return jsonify({ 'message': 'Taobao account doesn\'t found', 'code': 74147 }) tbpassword = tbAcc.decryptPWD(tbAcc.password_KEYencrypt) content = getTaobaoShopSoup(keyword, tbaccount, tbpassword) # if keyword not in str(driver.title): # return jsonify({'message': 'Login error', 'code': 74147}) if type(content) == dict: return content # not the contents, it's now a error message res = getShopListFromTaobaoSoup(content) if type(res) == str: return jsonify({'message': res, 'code': 74147}) return jsonify({'code': 20000})
def create_tbaccounts(id): data = request.get_json() data['owner_id'] = id if not data: return bad_request('Need to post data') message = '' if 'username' not in data or not data.get('username', None): message = 'Username invalid' if 'password' not in data or not data.get('password', None): message = 'Password invalid' if session.query(TaobaoAccount).filter(TaobaoAccount.username==data.get('username', None)).first(): message = 'Username exists' if message != '': return bad_request(message) tbacc = TaobaoAccount() tbacc.from_dict(data) session.add(tbacc) session.commit() response = jsonify({'data':tbacc.to_dict(), 'code': 20000}) response.status_code = 201 response.headers['Location'] = url_for('api.get_user', id=tbacc.owner_id) return response
def update_entity(entity_request, entity_id): entity = session.query(Entity).get(entity_id) entity.name = entity_request.name entity.description = entity_request.description session.commit() return entity
def verify_password(username, password): user = session.query(User).filter(User.username==username).first() if user is None: return False g.current_user = user return user.check_password(password)
def delete_cost(cost_id): session.query(Cost).filter_by(id=cost_id).delete() session.commit()
def get_operatingexpense(operatingexpense_id): operatingexpense = session.query(OperatingExpense).get(operatingexpense_id) return operatingexpense
def delete_opex(opex_id): session.query(OperatingExpense).filter_by(id=opex_id).delete() session.commit()
def get_user(user_id): user = session.query(User).get(user_id) return user
def get_cost(cost_id): cost = session.query(Cost).get(cost_id) return cost
def delete_revenue(revenue_id): session.query(Revenue).filter_by(id=revenue_id).delete() session.commit()
def login(login_request): user = session.query(User).filter_by(email=login_request.email).first() return user
def get_entity(entity_id): entity = session.query(Entity).get(entity_id) return entity
def get_revenue(revenue_id): revenue = session.query(Revenue).get(revenue_id) return revenue