fix typo
This commit is contained in:
@@ -0,0 +1,121 @@
|
||||
local cjson = require "cjson"
|
||||
local uuid = require "resty.jit-uuid"
|
||||
local http = require "resty.http"
|
||||
|
||||
local TaskTypes = {
|
||||
NOOP = 'NOOP',
|
||||
CONVERT_AUDIO_FILE = "CONVERT_AUDIO_FILE"
|
||||
}
|
||||
|
||||
local httpc = http.new()
|
||||
local sudoerToken = ngx.req.get_headers().HtySudoerToken
|
||||
local htyhostHeader = ngx.req.get_headers().HtyHost
|
||||
|
||||
|
||||
local function get_access_token()
|
||||
|
||||
local htyuc = ngx.var.htyuc
|
||||
local host = ngx.var.host
|
||||
|
||||
ngx.log(ngx.INFO, "HTYUC -> ", htyuc)
|
||||
ngx.log(ngx.INFO, "HOST -> ", host)
|
||||
ngx.log(ngx.INFO, "URL -> ", ngx.var.uri)
|
||||
|
||||
|
||||
local remote_url = string.format("%s/api/v1/uc/wx/get_access_token", "https://test-music-room.moicen.com")
|
||||
ngx.log(ngx.INFO, 'remote_url -> ', remote_url)
|
||||
ngx.log(ngx.INFO, 'HtyHostHeader -> ', htyhostHeader)
|
||||
ngx.log(ngx.INFO, 'HtySudoerToken -> ', sudoerToken)
|
||||
|
||||
local res, err = httpc:request_uri(
|
||||
remote_url,
|
||||
{
|
||||
ssl_verify = false, -- 设置参数 ssl_verify 为false 不校验ssl证书
|
||||
method = "GET",
|
||||
headers = {
|
||||
["HtyHost"] = htyhostHeader,
|
||||
["HtySudoerToken"] = sudoerToken,
|
||||
},
|
||||
body = body_text,
|
||||
}
|
||||
)
|
||||
if res == nil then
|
||||
ngx.log(ngx.ERR, "FAILED TO CONNECT TO *HTYUC*", err)
|
||||
end
|
||||
|
||||
if 200 ~= res.status then
|
||||
ngx.log(ngx.ERR, "GET ACCESS TOKEN *FAILED*", err)
|
||||
ngx.say(err)
|
||||
ngx.exit(res.status)
|
||||
end
|
||||
ngx.log(ngx.ERR, res.body)
|
||||
return cjson.decode(res.body).d
|
||||
end
|
||||
|
||||
local function get_wx_media(media_id)
|
||||
local access_token = get_access_token()
|
||||
print("access token: " .. access_token)
|
||||
local wx_media_url = string.format("https://api.weixin.qq.com/cgi-bin/media/get?access_token=%s&media_id=%s", access_token, media_id)
|
||||
print("wx_media_url: " .. wx_media_url)
|
||||
local res, err = httpc:request_uri(wx_media_url, {
|
||||
method = 'GET',
|
||||
ssl_verify = ssl_verify or false, -- 设置参数 ssl_verify 为false 不校验ssl证书
|
||||
})
|
||||
|
||||
if res == nil then
|
||||
ngx.log(ngx.ERR, "FAILED TO CONNECT TO *Weixin*", err)
|
||||
ngx.say(err)
|
||||
ngx.exit(500)
|
||||
end
|
||||
|
||||
if 200 ~= res.status then
|
||||
ngx.log(ngx.ERR, 'GET WECHET MEDIA *FAILED*', err)
|
||||
ngx.say(err)
|
||||
ngx.exit(res.status)
|
||||
end
|
||||
|
||||
local filename = ngx.re.match(res.headers['Content-disposition'], [[filename="(\w+\.(amr|speex))"]], "jo")[1]
|
||||
local file_dir = ngx.var.tmp_file_dir
|
||||
local saved_audio = file_dir .. "/" .. filename;
|
||||
print('saved audio file...' .. saved_audio);
|
||||
local file, err = io.open(saved_audio, 'w')
|
||||
if file == nil then
|
||||
print("Can not open file..." .. err)
|
||||
else
|
||||
file:write(res.body)
|
||||
file:close()
|
||||
end
|
||||
|
||||
return saved_audio;
|
||||
end
|
||||
|
||||
local function convert()
|
||||
local file_dir = ngx.var.tmp_file_dir
|
||||
ngx.req.read_body()
|
||||
local req_body = cjson.decode(ngx.req.get_body_data())
|
||||
ngx.log(ngx.INFO, 'REQ_BODY -> ', ngx.req.get_body_data())
|
||||
|
||||
local input_audio_file = get_wx_media(req_body["data"]["media_id"]);
|
||||
local converted_audio_file = file_dir .. "/" .. uuid.generate_v4() .. ".mp3";
|
||||
|
||||
ngx.log(ngx.INFO, "Input audio file -> ", input_audio_file);
|
||||
ngx.log(ngx.INFO, "Converted audio file -> ", converted_audio_file);
|
||||
|
||||
local cmd = "/usr/local/bin/file_convert" .. " " .. input_audio_file .. " " .. converted_audio_file
|
||||
|
||||
ngx.log(ngx.INFO, 'Audio convert command -> ', cmd)
|
||||
|
||||
local result, _, code = os.execute(cmd)
|
||||
if result and code == 0 then
|
||||
ngx.log(ngx.INFO, "result -> ", result);
|
||||
ngx.say(result)
|
||||
else
|
||||
ngx.status = 500
|
||||
ngx.log(ngx.ERR, "AUDIO CONVERT *FAILED*")
|
||||
end
|
||||
|
||||
ngx.log(ngx.INFO, "Output audio file -> ", result);
|
||||
end
|
||||
|
||||
convert();
|
||||
|
||||
Reference in New Issue
Block a user