4
پر توجہ دیں
13
پیروکار

ایک سادہ قیمت یاد دہانی والا روبوٹ بنائیں

میں تخلیق کیا: 2022-03-27 15:44:13, تازہ کاری: 2022-03-27 15:59:46
comments   5
hits   1330

اس سے پہلے ، میں نے دوسروں کے لئے اسکرپٹ کیا تھا ، اور میں نے محسوس کیا کہ بہت سے دوستوں کو حالات کی نگرانی کی حکمت عملی پر عمل کرنا پڑتا ہے ، اور اگر کوئی خاص صورتحال پیش آتی ہے تو وہ فوری طور پر پولیس کو اطلاع دے سکتے ہیں ، لیکن میں ہمیشہ کے لئے اسکرپٹ پر کام کرنے سے مطمئن نہیں ہوں۔ لہذا آج میں آپ کے لئے ایک آسان قیمت کی یاد دہانی کا ڈیمو شیئر کروں گا۔ پی ایس: زبان کا استعمال کیا جاتا ہے پطرون، ایک انٹرفیس کے ذریعے انتباہ، سرور کی ترتیب یہاں نہیں ہے


تیاری

  1. کنٹرول پینل یہاں باؤٹا پینل کا استعمال کیا گیا ہے ، جس کا مقصد فائلوں کو سرور پر اپ لوڈ کرنا ہے ، یقینا آپ دوسرے طریقوں کا بھی استعمال کرسکتے ہیں ، راستے کو یاد رکھیں ((چونکہ مصنف سرور اوبنٹو سسٹم ہے ، لہذا ذیل میں دیئے گئے تمام کمانڈ اس کی طرف اشارہ کرتے ہیں ، دوسرے سسٹم کے کمانڈ خود بخود پڑھ سکتے ہیں)
  • ڈاؤن لوڈ کریں
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

مکمل کرنے کے بعد ای میل ایڈریس حاصل کریں اور لاگ ان کریں ((اگر ای میل ایڈریس نہیں کھلتا ہے تو پورٹ 8888 کھولنے کی ضرورت ہے))

  • اجازت حاصل کریں سیکیورٹی - SHH سیکیورٹی مینجمنٹ - SHH پاس ورڈ لاگ ان کریں ایک سادہ قیمت یاد دہانی والا روبوٹ بنائیں ایک سادہ قیمت یاد دہانی والا روبوٹ بنائیں

  • فائل اپ لوڈ کریں ایک سادہ قیمت یاد دہانی والا روبوٹ بنائیں

  1. Screen screen لینکس کے تحت ایک ونڈو کے لئے ایک بار بار استعمال کرنے والا مینجمنٹ پروگرام ہے ، جس کا مقصد یہ ہے کہ ٹرمینل shh کنکشن کے بعد بھی پروگرام چلائے۔
  • ڈاؤن لوڈ کریں
sudo apt-get install screen
  • عام حکم اسکرین کو چلانے کے لئے، راستے کو چلانے کے لئے فائل کو کھولنے کے بعد[[name] ٹیگ خود سے سیٹ کیا جا سکتا ہے)
screen -S [name]

اسکرین شارٹ کٹ سے باہر نکلیں

ctrl+a+d

اسکرین کے پس منظر میں چلنے والے عمل کو دیکھیں۔

screen -ls

عمل ختم کریں (پید نمبر عمل کے ذریعے دیکھے جا سکتے ہیں)

kill -9 [pid号]

اسکرین کو صاف کریں جو پروسیسنگ کی معلومات کو مر گیا ہے

screen -wipe
  1. پیچ سیٹ کریں یہاں ہکیبو ڈیم کے مضمون کا حوالہ دیا گیا ہے ، اصول پر عمل درآمد نہیں کیا گیا ہے ، صرف سادہ پیکیجنگ کوڈ دکھایا گیا ہے ، صرف حوالہ کے لئے https://www.fmz.com/digest-topic/5840
# 钉钉输出接口
class DING:
    # 向钉钉群输出信息
    def msg(self,text):
        token ="***"
        headers = {'Content-Type': 'application/json;charset=utf-8'}  # 请求头
        api_url = f"***={token}"
        json_text = {
            "msgtype": "text",  # 信息格式
            "text": {
                "content": text
            }
        }
        # 发送并打印信息
        requests.post(api_url, json.dumps(json_text), headers=headers).content
    
    #拼接输出信息
    def dd(self,logging):
        bj_dt = str(datetime.datetime.now())
        bj_dt = bj_dt.split('.')[0]  # 处理时间
        text = f'{bj_dt}\n'  # 定义信息内容
        text = text + logging # 处理信息内容
        log.msg(text)  # 调用msg函数,输出信息

کوڈ کا نفاذ

لین دین Binance API کے ذریعہ حاصل کیا گیا ، U- مقامی معاہدہ Fapi انٹرفیس کا استعمال کرتے ہوئے ، مندرجہ ذیل کوڈ کو صرف حوالہ کے لئے Binance API میں پیک کیا گیا ہے

import requests,json,time,hmac,hashlib,datetime

# APIKEY填写位置
apikey = '***'
Secret_KEY = '***'

#币安接口
class bian:
    #拼接请求参数
    def param2string(self,param):
        s = ''
        for k in param.keys():
            s += k
            s += '='
            s += str(param[k])
            s += '&'
        return s[:-1]
    
    # 参数为get,post请求方式,路径,body
    def IO(self,method,request_path,body):
        header = {
        'X-MBX-APIKEY': apikey,
        }
        #选择请求方式
        if body != '':
            #签名
            body['signature'] = hmac.new(Secret_KEY.encode('utf-8'), self.param2string(body).encode('utf-8'), hashlib.sha256).hexdigest()
            if method == 'GET':
                body = self.param2string(body)
                tell = 'https://fapi.binance.com{0}?{1}'.format(request_path,body)
                response = requests.get(url=tell, headers=header).json()
                return response
            elif method == 'POST':
                response = requests.post(url='https://fapi.binance.com'+str(request_path), headers=header, data=body).json()
                return response
        else:
            response = requests.get(url='https://fapi.binance.com'+str(request_path), headers=header).json()
            return response

کیونکہ حکمت عملی صرف قیمت انٹرفیس حاصل کرنے کے لئے استعمال کیا جاتا ہے، یہ صرف ایک سادہ ڈیمو ہے.

#封装获取价格接口
def price(self,Name):
    body = {"symbol":str(Name)}
    info = self.IO("GET","/fapi/v1/ticker/price",body)
    for i in info:
        if i == "code":
            #设计一个接口错误容错功能
            time.sleep(0.5)
            letgo = '调用price函数接口返回错误,再次尝试 返回错误代码:{0}'.format(str(info))
            log.dd(str(letgo))
            exchange.price(Name)
    return info["price"]

ذیل میں اسکریننگ کوڈ کا نفاذ ہے

# 监控币种&&监控价格一一对应
ccy = ["BTCUSDT","ETHUSDT","LTCUSDT"]
PriceTIME = ["100000;28000","500000000;1200","500;100"]

#行情监控逻辑
def pricewarm():
    #轮询获取当前价格
    for i in range(len(PriceTIME)):
        info = exchange.price(str(PriceTIME[i]))
        priceindex = PriceTIME[i].find(";") #提取价格区间
        #价格上限
        priceup = PriceTIME[i][:priceindex]
        #价格下限
        pricedown = PriceTIME[i][priceindex+1:]
        if float(info) >= float(priceup): #钉钉接口输出
            letgo = f'当前价格{info}USDT大于所设定上限{priceup}USDT'
            log.dd(letgo)
        elif float(info) <= float(pricedown):
            letgo = f'当前价格{info}USDT小于等于设定下限{pricedown}USDT'
            log.dd(letgo)
        time.sleep(0.2)

# 主函数
def main():
    global exchange,log
    log = DING
    exchange = bian
    while True:
        try:
            pricewarm()
            time.sleep(1)
        except:
            time.sleep(1)

if __name__ == "__main__":
    main()

3۔ کام کرنا

کوڈ کے لئے تیار ہونے کے بعد راستے کو یاد رکھیں ، ٹرمینل رن اسکرین کھولیں

screen -S [名称]
cd [路径]
python3 [文件名]

تصدیق کے عمل کے بعد آپ باہر نکل سکتے ہیں۔

پالیسی کا پتہ:آسان قیمت کی یاد دلانے والا روبوٹ