99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀干貨 | 揭秘一下,如何巧用手機快捷指令一鍵調(diào)用服務(wù)端腳本
干貨 | 揭秘一下,如何巧用手機快捷指令一鍵調(diào)用服務(wù)端腳本
2021-05-25
收藏

來源:AirPython

作者:星安果

干貨 | 揭秘一下,如何巧用手機快捷指令一鍵調(diào)用服務(wù)端腳本

1. 前言

大家好,我是安果!

之前寫過一篇文章,文中利用 iOS 自帶的「 快捷指令 」+ 鬧鐘創(chuàng)建個人自動化動作,獲取當(dāng)前位置和實時天氣,并通過語音播放出來

黑科技 | 美好的一天,就應(yīng)該以這款自動化應(yīng)用腳本開始

快捷指令作為 iOS 端的一款神器,很多自動化的操作都可以通過他完成,如果搭配 「 Siri、觸控事件 」使用,可以大大節(jié)省我們的時間

本篇文章主要是盤點快捷指令調(diào)用服務(wù)器腳本的幾種方式

2. SSH 運行

第一種方式,新建快捷指令,然后創(chuàng)建一個「 通過 SSH 運行腳本 」的操作

然后,指定服務(wù)器主機名、端口號、用戶名、密碼、認(rèn)證方式、密碼、執(zhí)行腳本

其中,

  • 認(rèn)證方式設(shè)置為「 密碼 」
  • 輸入這一欄清空,然后輸入待執(zhí)行的腳本比如執(zhí)行腳本的命令為:python3 main.py
干貨 | 揭秘一下,如何巧用手機快捷指令一鍵調(diào)用服務(wù)端腳本

為了方便,也可以將服務(wù)器的主機名、端口號、用戶名、密碼、待執(zhí)行的腳本設(shè)置為變量,然后進(jìn)行引用

最后添加一個「 播放聲音 」或「 通知 」的操作,將「 Shell 腳本結(jié)果 」作為參數(shù)傳入即可

這樣,就創(chuàng)建一個通過 SSH 調(diào)用服務(wù)端腳本的快捷指令,點擊右下角的圖標(biāo)可以調(diào)式運行

3. 調(diào)用接口

3-1 實現(xiàn) API 接口

首先,我們需要將調(diào)用腳本的邏輯寫成一個 API 接口

比如,我們可以使用 FastAPI 快速擼一個

import uvicorn
from fastapi import FastAPI
app = FastAPI()
@app.get("/rsc_api")
async def rsc_api(username: str, password: str):
if username.strip() and password.strip():
# 執(zhí)行操作
code, result = start(username, password)
return {
"code": code,
"msg": result
}
return {
"code": 1,
"msg": "用戶名或密碼不能為空!"
}

然后,使用 nohup 命令使服務(wù)腳本在后臺運行

# 后臺運行腳本
# 綁定8000端口
# 日志目錄:/rsc.log
nohup hypercorn test_api:app --bind 0.0.0.0:8000 > /rsc.log 2>&1 &

3-2 快捷指令

我們新建一個快捷指令,添加一個「 URL 」的操作,指定請求的地址

# 請求地址URL
http://192,168.39.91:8000/rsc_api

然后,再添加一個「 獲取 URL 內(nèi)容 」的操作

展開這部分操作,填入請求方法、頭部、請求體( 也可以通過變量的方式設(shè)置進(jìn)去 )

干貨 | 揭秘一下,如何巧用手機快捷指令一鍵調(diào)用服務(wù)端腳本

接著,添加一個「 文本 」操作

將輸入內(nèi)容填充為「 URL 的內(nèi)容」,將響應(yīng)的結(jié)果展示出來

最后,可以點擊后下角的運行進(jìn)行調(diào)試

4. 擴展操作及 Siri、觸控

4-1 擴展操作

快捷指令還有幾個比較常用且好用的操作,比如:

  • 匹配文本
  • 獲取匹配文本的組
  • 替換文本
  • 如果

這些操作應(yīng)對一些復(fù)雜精準(zhǔn)的場景,可以對響應(yīng)結(jié)果進(jìn)行二次處理及邏輯流程預(yù)設(shè),更方便我們使用

4-2 Siri 語音控制

如果設(shè)備開啟了 Siri 語音控制,那么使用「 快捷指令 + Siri 」可以一鍵執(zhí)行腳本

4-3 觸控 + 快捷指令

對于不想使用 Siri 的讀者,觸控功能也可以與快捷指令關(guān)聯(lián)上,一鍵執(zhí)行

比如,使用觸控功能快速打開支付寶的支付碼

首先,新建一個快捷指令,命名為「 支付寶支付 」

然后,新建一個 「 URL 」的操作

指定內(nèi)容為:

alipayqr://platformapi/startapp?saId=20000056

接著,新建一個「 打開 URL 」的操作,然后保存

最后,進(jìn)入到設(shè)置,依次選擇輔助功能 - 觸控 - 輕點背面 - 輕點兩下 - 選擇上面創(chuàng)建的快捷指令

這樣平時需要支付的時候,快速輕點兩下手機背面,就可以快速調(diào)出支付寶支付二維碼

5. 最后

有人可能會說,服務(wù)端直接使用定時任務(wù)運行腳本不就行了,為什么要這么麻煩?

實際上,有些場景可能需要我們主觀地去運行腳本,這時候手機端主動觸發(fā)更滿足我們的需求

如果你的手機剛好越獄了,可以試試安裝「 autotouch」、「 activator 」等插件實現(xiàn) iOS 端的完全自動化

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }