背景
我有很多用于SiriProxy的Ruby插件我自己编写或使用其他人来控制我家的语音(https://github.com/elvisimprsntr?tab=repositories)。 SiriProxy基本上是一个MITM代理,它允许您将自己的操作和响应插入Siri协议。不幸的是,Apple对Siri协议做了一些大的修改,在iOS 7中打破了SiriProxy.SIMI 7中的Siri使用了MPTCP,一种新的ACE协议,可能还有不同的证书。我们未能成功将SiriProxy与iOS 7配合使用。(https://github.com/plamoni/SiriProxy/issues/542)
替代SIRI
由于Apple不太可能为Siri发布公共API,或者在iOS上自动发布AutoVoice和Tasker等应用程序,我认为另一种方法是使用适用于iOS和Android的Google语音搜索应用程序,其中有许多优点:
- 在设备上执行语音到文本
- 不使用MPTCP,HTTPS或要求登录
- 谷歌语音搜索只是构建一个HTTP GET谷歌搜索查询URL。在某些情况下,应用会说出回应
- 我认为谷歌搜索使用cookies,但不确定这是否至关重要。
要求
我已经阅读了一些帖子,论坛等,寻找最佳方法来解决这个问题,不幸的是,似乎有很多方法可以解决这个问题。
- 必须在Ruby中实现,以最大限度地重用现有的SiriProxy插件
- 允许我解析搜索查询中关键字的URL的代理
- 当没有进行关键字匹配时,允许我简单地传递google查询的结果
- 允许我将谷歌搜索结果替换为我自己的回复。
问题
我在哪里开始挣扎。我不能成为第一个需要在Ruby中使用类似代理的人。欢迎大家提出意见。
更新:REF POSTS
Help with HTTP Intercepting Proxy in Ruby?
accessing a website through a proxy using Net::HTTP proxy in ruby
Ruby Eventmachine & HTTP requests via proxy
How to create proxy server in ruby that accepts HTTPS
Ruby MITM proxy
答案 0 :(得分:0)
今天最好的是mitmproxy(python),然后以某种方式在python和ruby之间进行通信(RPC样式),并且python使用-Command
运行