聚币网API[Python2版]
聚币 现货 API [Python2版]
一、utils.py,基础类,包括HTTP 请求、签名等
# -*- coding: utf-8 -*- import hashlib import hmac import time import urllib import urllib2 import json from datetime import datetime from uuid import UUID from objutil import dict_obj # import requestsdef http_get(url, data_wrap, encode=False):if encode is True:data_wrap = urllib.urlencode(data_wrap)req = urllib2.Request(url, data=data_wrap)resp = urllib2.urlopen(req).read()dic = json.loads(resp)return dict_obj(dic)def get_signature(private_key, data):data_en = urllib.urlencode(data)md5_hash = getHash(private_key)msg = bytes(data_en).encode('utf-8')key = bytes(md5_hash).encode('utf-8')signature = hmac.new(key, msg, digestmod=hashlib.sha256).digest()last_warp = "%s&signature=%s" % (data_en, toHex(signature))return last_warpdef get_nonce_time():curr_stamp = time.time() * 100return str(long(curr_stamp))def getHash(s):m = hashlib.md5()m.update(s)return m.hexdigest()def toHex(str):lst = []for ch in str:hv = hex(ord(ch)).replace('0x', '')if len(hv) == 1:hv = '0' + hvlst.append(hv)return reduce(lambda x, y: x + y, lst)def getUserData(cfg_file):f = open(cfg_file, 'r')account = {}for i in f.readlines():ctype, passwd = i.split('=')account[ctype.strip()] = passwd.strip()return accountclass CJsonEncoder(json.JSONEncoder):def default(self, obj):if isinstance(obj, datetime):return obj.strftime('%Y-%m-%d %H:%M:%S')elif isinstance(obj, UUID):return str(obj)else:return json.JSONEncoder.default(self, obj)def json_dumps(result):return json.dumps(result, cls=CJsonEncoder)
二、jubi.py,聚币网API
# -*- coding: utf-8 -*- # @Author: wujiyu # @Date: 2017-07-09 10:44:41 # @Last Modified by: far # @Last Modified time: 2017-07-25 09:28:12from utils import *BASE_API = "https://www.jubi.com/api/v1"TICKER_API = "%s/ticker" % BASE_API DEPTH_API = "%s/depth" % BASE_API ORDERS_API = "%s/orders" % BASE_API BALANCE_API = "%s/balance" % BASE_API TRADLIST_API = "%s/trade_list" % BASE_API TRADEVIEW_API = "%s/trade_view" % BASE_API TRADECANCEL_API = "%s/trade_cancel" % BASE_API TRADEADD_API = "%s/trade_add" % BASE_APIclass JuBi(object):"""docstring for JuBi"""def __init__(self):super(JuBi, self).__init__()cfg = getUserData('data.cfg')self.public_key = cfg['public_key']self.private_key = cfg['private_key']def get_ticker(self, coin):data_wrap = {'coin': coin}return http_get(TICKER_API, data_wrap, True)def get_depth(self, coin):data_wrap = {'coin': coin}return http_get(DEPTH_API, data_wrap, True)def get_orders(self, coin):data_wrap = {'coin': coin}return http_get(ORDERS_API, data_wrap, True)def get_balance(self):nonce = get_nonce_time()data_wrap = {'nonce': nonce,'key': self.public_key}all_data = get_signature(self.private_key, data_wrap)return http_get(BALANCE_API, all_data)def get_trade_list(self, coin):# open:正在挂单, all:所有挂单trade_type = "open"since = "0"nonce = get_nonce_time()data_wrap = {'nonce': nonce, 'type': trade_type, 'coin': coin, 'since': since,'key': self.public_key}all_data = get_signature(self.private_key, data_wrap)return http_get(TRADLIST_API, all_data)def get_trade_view_list(self, coin, id):nonce = get_nonce_time()data_wrap = {'nonce': nonce, 'coin': coin,'key': self.public_key, 'id': id}all_data = get_signature(self.private_key, data_wrap)return http_get(TRADEVIEW_API, all_data)def cancel(self, coin, id):nonce = get_nonce_time()data_wrap = {'nonce': nonce, 'coin': coin,'key': self.public_key, 'id': id}all_data = get_signature(self.private_key, data_wrap)return http_get(TRADECANCEL_API, all_data)def trade_add(self, coin, amount, price, sell_type):nonce = get_nonce_time()data_wrap = {'nonce': nonce, 'coin': coin,'key': self.public_key, 'amount': amount, "price": price, "type": sell_type}all_data = get_signature(self.private_key, data_wrap)return http_get(TRADEADD_API, all_data)def sell(self, coin, amount, price):return self.trade_add(coin, amount, price, "sell")def buy(self, coin, amount, price):return self.trade_add(coin, amount, price, "buy")def cancel_all(self, coin, sell_type="all"):lst = self.get_trade_list(coin)print("当前挂单!!!!!!!!!!:%s" % (lst))for item in lst:if sell_type == "all" or sell_type == item["type"]:self.cancel(coin, item["id"])print("取消挂单成功!!!!!!!!!")print("当前挂单!!!!!!!!!!:%s" % (self.get_trade_list(coin)))return Truedef cancel_all_sell(self, coin):return self.cancel_all(coin, "sell")def cancel_all_buy(self, coin):return self.cancel_all(coin, "buy")
三、调用方法
coin = "btc" jubi = JuBi() print(jubi.get_ticker(coin)) # print(jubi.get_depth(coin)) # print(jubi.get_orders(coin)) # print(jubi.get_balance()) # print(jubi.get_trade_list(coin)) # print(jubi.get_trade_view_list(coin, "1")) # print(jubi.get_trade_cancel_list(coin, "1")) # print(jubi.sell(coin, 10000, 0.001)) # print(jubi.buy(coin, 100, 0.2)) # print(jubi.get_trade_cancel_list(coin, "1")) # print(jubi.cancel(coin, 940591))
四、下载地址
http://www.cnblogs.com/fangbei/p/jubi-api-python.html
http://files.cnblogs.com/files/fangbei/jubi-api-python2.zip
转载于:https://www.cnblogs.com/fangbei/p/jubi-api-python.html
聚币网API[Python2版]相关推荐
- 监控聚币网行情 并实时发送到微信
最近由于好友推荐我入坑了国内的山寨币,所以顺便研究了下聚币网的API. 不过网页版的聚币网和手机版的做的不好,而且因为是7x24 小时交易,自己没有那么多的精力盯盘,所以写了python代码进行监控. ...
- 网易云API Golang版开发历程
网易云API Golang版开发历程 原项目(node.js) 网易云音乐 API 本项目 (golang) 网易云音乐 API api文档 请不要用于商业用途 想法的开始 事情的开始还是一开始在B站 ...
- 运用百度地图API离线版(在线版)实现网管系统中终端定位和终端信息获取的功能...
一.了解百度地图API 1.百度地图JavaScript API简介 百度地图JavaScript API是一套由JavaScript语言编写的应用程序接口,可在网站中构建功能丰富.交互性强的地图应用 ...
- Python 技术篇-20行代码实现微信机器人斗图功能实例演示!斗图啦官网API调用方法
话不多说,看效果图: 先说下原理: 微信接收到你说的话,发给机器人来回复,用回复的话传参给斗图网,然后获得斗图网返回的图片,保存后把图片再发给跟你斗图的人. 斗图啦官网API调用文档 斗图啦官网 菜单 ...
- API v3版微信支付平台证书获取与自动更新
API v3版微信支付平台证书获取与自动更新 关于微信证书 获取平台证书 证书自动更新 首次下载证书 关于微信证书 微信支付开发有两份证书. ♥ 商户证书:商户平台证书私钥可以对请求进行签名,微信服务 ...
- 互联网晚报 | 12月30日 星期四 | 百度网盘青春版正式上线;汽车之家回应“年底大裁员”;A股年内成交额创历史新高...
今日看点 ✦ 腾讯微信支付支持全量商家小程序场景开通银联云闪付功能 ✦ 百度网盘青春版正式上线:免费空间10GB,支持无差别速率下载 ✦ 汽车之家:不存在大规模裁员,整体人员优化幅度不及5% ✦ ...
- 最新网狐荣耀版整理、编译和搭建教程
一.安装visual studio 2015,在百度就能搜索到下载地址,在教程最后,会给大家包括所有工具在内的集成包.因为visual studio 2015体积比较大,而且安装过程很漫长,在这里不做 ...
- TCP流量控制和拥塞控制 最新网狐荣耀版源码下载
搭建准备 1.网狐荣耀版源码下载: 下载 2.visual studio 2015 下载 3.下载jdk1.8 安装步骤: 一.安装visual studio 2015,在百度就能搜索到下载地址,在教 ...
- 聚生网管2008试用功能去除
文章标题]: 聚生网管2008试用功能去除 [文章作者]: CSSHRB2004 [作者邮箱]: csshrb2004@163.com [作者QQ号]: 23380605 [软件名称]: 聚生网管20 ...
- “聚生网管”应用常见问题汇总
1.软件应该安装在什么主机上比较好,对于网络环境有什么要求? 聚生网管软件可以安装在子网内的任意主机上,如果您网络是采用ADSL宽带路由器或者路由器接入公网,那么把软件安装在接在交换机上的任意一台主机 ...
最新文章
- (剑指Offer)面试题61:按之字形顺序打印二叉树
- 做好十足准备面字节跳动,五面都过了,HR告诉我这个原因我被刷了...
- 【特征工程】17种将离散特征转化为数字特征的方法
- JVM 调优实战--常用命令参数及PS收集器的GC日志格式
- delete if only one note header
- 于金刚消息引擎服务器,基于MQTT的安全通信服务器的研究与实现
- Vue+Vue Router+Vuex页面演示
- Web页面引入思源黑体
- 瑞萨RH850F1x单片机开发板完整开发环境搭建介绍
- NRF24L01 2.4G无线模块浅析(学习笔记)
- GMap.NET控件使用
- 计算机系的的毕业感言,计算机班同学的毕业感言
- APS系统哪家好(下)
- 使用ECShop搭建外贸站多国货币切换功能
- 在JDBC中实现SQL语句的模糊查询
- html怎么做一个心形边框,使用CSS获取心形边框?
- 二手iPhone手机选购指南,花小钱办大事
- SVN本地电脑存储配置
- 笔记本电脑锁屏密码能输入,但解锁后键盘不好用
- 「面试必背」Java集合面试题(收藏)
热门文章
- 九大背包问题专题--完全背包问题(详解,最优解)
- 赵小楼《天道》《遥远的救世主》深度解析(120)信息储备是必要的强势文化之一
- k8s 1.18.20 kubevirt v0.47.1 创建 windows10 虚拟机
- freenas 蜗牛星际_蜗牛星际 B款 配置、安装OpenMediaVault
- WebOffice安装教程Hello World!(win10 IE打开控件问题)
- 用html制作课程表
- 网络下载的图始终与北京坐标有偏移,坐标对不准,用arcgis自带的WGS84与beijing54坐标转换2解决
- MySQL-Utilities:mysqldbcompare及跳过复制错误
- Windows7下安装Ubuntu 16.04双系统
- 酷派D530刷机指引