`
const yandexRequests = (function() {
var protoRequest = new protobuf.Type("VideoTranslationRequest").add(new protobuf.Field("url", 3, "string")).add(new protobuf.Field("deviceId", 4, "string")).add(new protobuf.Field("unknown0", 5, "int32")).add(new protobuf.Field("unknown1", 6, "fixed64")).add(new protobuf.Field("unknown2", 7, "int32")).add(new protobuf.Field("language", 8, "string")).add(new protobuf.Field("unknown3", 9, "int32")).add(new protobuf.Field("unknown4", 10, "int32"));
var protoResponse = new protobuf.Type("VideoTranslationResponse").add(new protobuf.Field("url", 1, "string")).add(new protobuf.Field("status", 4, "int32"));
new protobuf.Root().define("yandex").add(protoRequest).add(protoResponse);
return {
encodeRequest: function(url, deviceId, unknown1) {
return protoRequest.encode({url: url, deviceId: deviceId, unknown0: 1, unknown1: unknown1, unknown2: 1, language: "en", unknown3: 0, unknown4: 0}).finish();
},
decodeResponse: function(response) {
return protoResponse.decode(new Uint8Array(response));
}
};
})();
var body=yandexRequests.encodeRequest(url,deviceId,unknown1);`
我不明白这个函数的作用。
它返回一个包含两个函数的对象:encodeRequest
和decodeResponse
。这些函数在被调用时调用protoRequest.encode
和protoResponse.decode
。
protobuf
是谷歌的东西,我认为:https://www.tutorialspoint.com/protobuf/index.htm,但我认为他们没有JavaScript版本,所以这可能是一个自定义的工作。