whalesong是一个远程管理webapps的python库。目前whatsappweb已经实现
whalesong的Python项目详细描述
<…| badge python版本image::https://img.shields.io/pypi/pyversions/whalesong.svg
:alt:python版本
……|徽章版本图像::https://img.shields.io/pypi/v/whalesong.svg
:alt:last version
:目标:https://pypi.org/project/whalesong/
……|徽章许可证图像::https://img.shields.io/pypi/l/whalesong.svg
:alt:license
…|徽章状态图像::https://img.shields.io/pypi/status/whalesong.svg
:alt:status
警告:
**新版本0.7.0**
新版本定义了一些新的要求,并提交了一些API更改。
0.7.0版引入了Chromium浏览器的新驱动程序。它需要在
驱动程序api的基础上进行一些更改。它不应该影响任何人。但请注意。
…警告::
**新版本0.7.0**
>流模型现在使用枚举。这意味着,如果您检查流状态
,您必须知道它们不再是字符串,现在它们是枚举。查看
:类:`documentation<;whalesong.managers.stream.stream>;`.
==
whalesong
==
whalesong是一个异步python库,用于远程管理webapp。
whatsappweb目前是使用Firefox实现
-
-
文档*Geckodriver
*Firefox 50+
……………
使用Chromium
……………
*安装后执行此操作:
……代码块::bash
$pyppeteer install
……………
development requirements
*node(仅用于开发)
*npm(仅用于开发)
*make(仅用于开发)
----
安装
----
从"0.7.0"版开始Whalesong引入了新的"浏览器后端"<;浏览器后端>;`。这意味着您必须
决定要使用哪个浏览器后端。所以,取决于它:
…提示:
您可以毫无问题地安装两者。
……………
使用firefox
………
代码块::bash
$pip3安装whalesong[firefox]
…_使用铬:
……………
使用计时
……………
代码块::bash
$pip3安装whalesong[chromium]
代码块::bash
$pyppeteer install
它将下载该后端所需的修补chromium分发版。
--
features
--
*非阻塞驱动程序。它可以同时执行多个操作。
*监视器功能。python代码可以对javascript事件做出反应。
*迭代器特性。大型项目列表作为异步迭代器传递给python。
*持久浏览器配置文件。
*创建新功能的简单方法。
*ampersandjs/backbonejs模型和集合监视器。
*ampersandjs/backbonejs字段监视器。
*监视本地存储。
*截图(页面和css元素)。
*由Asyncio提供支持。
*Firefox后端。
*Chromium后端。
WhatsApp的功能
*监视连接状态。
*监视QR更改。
*监视流状态。
*它能够刷新QR。
*它能够接管会话。
*列出聊天记录。
*列出联系人。
*列出邮件
*监视新邮件。
*监视未读邮件。
*监视邮件确认。
*监视新联系人。
*监视新聊天记录。
*发送文本消息。
*回复消息。
*发送vCard消息。
*发送媒体(图像/视频/pdf)消息。
*发送可视聊天信息。
*创建组
*管理组(添加/取消/升级/降级人员)
*自动加载链接预览
*允许检查联系人是否在whatsapp上注册。
*加载并发送贴纸(即使是引用的消息)。
*状态监视器。
*配置文件和组的图片管理。
*(un)pin和(un)存档聊天。
*报告垃圾邮件。
*(un)星形消息。
*状态管理。
*pushname管理。
*显示信息管理。
*实时位置管理。
*静音管理。
*它可以撤销消息(删除其他消息)。
*列出和管理WhatsApp状态版本3(故事)。
--
https://whalesong.readthedocs.io/en/latest/changelog.html>;`
----
todo
----
*测试、测试、测试。
*文档。(`work-in-progress<;https://whalesong.readthedocs.io>;``uu)
*更多示例。
*缺少whatsapp功能。(正在工作)
*为其他webapp实现scriptlet(可能是"android消息"<;https://messages.android.com/>;```.
*删除selenium和geckodriver。(正在工作)
*创建/使用具有异步接口(如木偶)的小型无头浏览器。(正在工作)
*推送结果。避免连续轮询。(正在工作)
…_浏览器后端:
----
所有后端都有一个管理webview的接口,whalesong就是用这个接口来管理应用程序的。根据浏览器的不同,这个接口会发生变化,但有一个标准接口,名为https://developer.mozilla.org/en-us/docs/web/webdriver>;`。Firsts Whalesong版本曾经使用
`Selenium<;https://www.seleniumhq.org/>;``库来与Firefox浏览器通信。
目前,此后端是默认的,**但在下一个版本中将不推荐使用,并在1.0版中删除**。
这是开发的第一个后端。它使用'selenium<;https://www.seleniumhq.org/>;``库和
`geckodriver<;https://firefox source docs.mozilla.org/testing/geckodriver/geckodriver/>;``与
firefox进程通信。它是测试最多的(最多,但不是很好)。
pros
=====
*测试过(或多或少)。
*使用Firefox(我更喜欢在Chromium前使用)。
===
*Selenium是一个巨大的库。它对于它的创建是很好的,但对于whalsong却不是。
*selenium是一个同步库。这是个问题,因为whalesong是一个异步库。这意味着,whalesong创建了一个线程池来与selenium通信。
*我们需要geckodriver。Firefox本身并不实现WebDriver协议。firefox有自己的
协议,名为'mariotte<;https://firefox source docs.mozilla.org/testing/mariotte/mariotte/intro.html>;`.
因此geckodriver用作webdriver协议和mariotte协议之间的代理。
*因为webdriver是一个同步协议。为了获得新的事件,Whalesong必须不断地投票给Firefox。
没有办法让Firefox主动通知Whalesong。这意味着,whalesong正在以间隔(默认为0.5秒)连续轮询新结果。注::
**Firefox后端只有一种生存方式:**
目前)。/>
当前默认为Firefox后端。但下一个版本会有所改变。因此,为了确保您使用
firefox后端,您必须用正确的驱动程序实例化whalesong。代码块::python3
from whalesong import whalesong
from whalesong.driver_firefox import whalesongdriver
whalepap=whalesong(driver=driver)
后端是新的。它是使用'pyppetter<;https://github.com/miyakogi/pyppeteer>;``来实现的,它的灵感来自于'puppetter<;https://pptr.dev/>;``(主要用于测试的控制铬无头的'node'库)。它使用
`devtools protocol<;https://chromedevtools.github.io/devtools protocol/>;``来与浏览器通信。
它是一个通过websocket的异步协议。
===
*不再轮询!当结果产生时,它会主动发送给Whalesong。不再"睡觉",不再等待。
*占用空间小(至少看起来像是铬)。
*没有额外的进程(不再有壁虎河)。
*应用程序模式。没有选项卡,没有url字段。
*没有大型库(没有更多的selenium)。
*没有更多的线程与同步库通信。
contras
==
*它是chromium。它使用blink:over vitaminized webkit渲染。内存占用器。
*当前Pypperter有一个错误。它在20秒后使连接松动。它在https://github.com/miyakogi/pyppeteer/pull/160>;``中得到解决,但尚未得到批准(一些测试错误)。
*它使用puppetter的修补铬版本。Whalesong需要此修补程序,因为它使用"runtime.addbinding"
命令。它在常规稳定版本中不可用。因此,在使用后端之前,必须使用chromium下载它。
*当使用窗口执行chromium时(没有headless),就不可能获得whastappweb qr。
代码块::python3
from whalesong import whalesong
from whalesong.driver_chromium import whalesongdriver
whalap=whalesong(driver=driver)
………
其他后端
……………
不,没有其他后端。但我在考虑其他的可能性:
*直接使用webkit创建一个小的足迹webview(gtk或qt方式不是一个选项)。
*直接使用伺服创建一个小的足迹webview(我想学习rust语言)。
**当然,任何贡献都将受到欢迎(非常欢迎)。**
——
——
——
——
——
——
……………
——
——
——
——
——
代码块::bash
$make requirements
代码块::bash
$make build js
………..
美化代码
………..
必须先美化代码才能发出请求。不接受难看的代码。
…代码块::bash
$make beautify
--
示例
--
请参见"文档<;https://whalesong.readthedocs.io/en/latest/examples.html>;`
————————————————————————————————————————————————————————————————————————————————————————————/>
**作者:**`@jabolina<;https://github.com/jabolina>;`
**存储库:**https://github.com/jabolina/whalesong js
----
法律
----
本代码不属于、授权、维护,由whatsapp
或其任何附属公司或子公司赞助或背书。这是一款独立的非官方软件。
请自行承担使用风险。
:alt:python版本
……|徽章版本图像::https://img.shields.io/pypi/v/whalesong.svg
:alt:last version
:目标:https://pypi.org/project/whalesong/
……|徽章许可证图像::https://img.shields.io/pypi/l/whalesong.svg
:alt:license
…|徽章状态图像::https://img.shields.io/pypi/status/whalesong.svg
:alt:status
警告:
**新版本0.7.0**
新版本定义了一些新的要求,并提交了一些API更改。
0.7.0版引入了Chromium浏览器的新驱动程序。它需要在
驱动程序api的基础上进行一些更改。它不应该影响任何人。但请注意。
…警告::
**新版本0.7.0**
>流模型现在使用枚举。这意味着,如果您检查流状态
,您必须知道它们不再是字符串,现在它们是枚举。查看
:类:`documentation<;whalesong.managers.stream.stream>;`.
==
whalesong
==
whalesong是一个异步python库,用于远程管理webapp。
whatsappweb目前是使用Firefox实现
-
-
文档*Geckodriver
*Firefox 50+
……………
使用Chromium
……………
*安装后执行此操作:
……代码块::bash
$pyppeteer install
……………
development requirements
*node(仅用于开发)
*npm(仅用于开发)
*make(仅用于开发)
----
安装
----
从"0.7.0"版开始Whalesong引入了新的"浏览器后端"<;浏览器后端>;`。这意味着您必须
决定要使用哪个浏览器后端。所以,取决于它:
…提示:
您可以毫无问题地安装两者。
……………
使用firefox
………
代码块::bash
$pip3安装whalesong[firefox]
…_使用铬:
……………
使用计时
……………
代码块::bash
$pip3安装whalesong[chromium]
代码块::bash
$pyppeteer install
它将下载该后端所需的修补chromium分发版。
--
features
--
*非阻塞驱动程序。它可以同时执行多个操作。
*监视器功能。python代码可以对javascript事件做出反应。
*迭代器特性。大型项目列表作为异步迭代器传递给python。
*持久浏览器配置文件。
*创建新功能的简单方法。
*ampersandjs/backbonejs模型和集合监视器。
*ampersandjs/backbonejs字段监视器。
*监视本地存储。
*截图(页面和css元素)。
*由Asyncio提供支持。
*Firefox后端。
*Chromium后端。
WhatsApp的功能
*监视连接状态。
*监视QR更改。
*监视流状态。
*它能够刷新QR。
*它能够接管会话。
*列出聊天记录。
*列出联系人。
*列出邮件
*监视新邮件。
*监视未读邮件。
*监视邮件确认。
*监视新联系人。
*监视新聊天记录。
*发送文本消息。
*回复消息。
*发送vCard消息。
*发送媒体(图像/视频/pdf)消息。
*发送可视聊天信息。
*创建组
*管理组(添加/取消/升级/降级人员)
*自动加载链接预览
*允许检查联系人是否在whatsapp上注册。
*加载并发送贴纸(即使是引用的消息)。
*状态监视器。
*配置文件和组的图片管理。
*(un)pin和(un)存档聊天。
*报告垃圾邮件。
*(un)星形消息。
*状态管理。
*pushname管理。
*显示信息管理。
*实时位置管理。
*静音管理。
*它可以撤销消息(删除其他消息)。
*列出和管理WhatsApp状态版本3(故事)。
--
https://whalesong.readthedocs.io/en/latest/changelog.html>;`
----
todo
----
*测试、测试、测试。
*文档。(`work-in-progress<;https://whalesong.readthedocs.io>;``uu)
*更多示例。
*缺少whatsapp功能。(正在工作)
*为其他webapp实现scriptlet(可能是"android消息"<;https://messages.android.com/>;```.
*删除selenium和geckodriver。(正在工作)
*创建/使用具有异步接口(如木偶)的小型无头浏览器。(正在工作)
*推送结果。避免连续轮询。(正在工作)
…_浏览器后端:
----
所有后端都有一个管理webview的接口,whalesong就是用这个接口来管理应用程序的。根据浏览器的不同,这个接口会发生变化,但有一个标准接口,名为https://developer.mozilla.org/en-us/docs/web/webdriver>;`。Firsts Whalesong版本曾经使用
`Selenium<;https://www.seleniumhq.org/>;``库来与Firefox浏览器通信。
目前,此后端是默认的,**但在下一个版本中将不推荐使用,并在1.0版中删除**。
这是开发的第一个后端。它使用'selenium<;https://www.seleniumhq.org/>;``库和
`geckodriver<;https://firefox source docs.mozilla.org/testing/geckodriver/geckodriver/>;``与
firefox进程通信。它是测试最多的(最多,但不是很好)。
pros
=====
*测试过(或多或少)。
*使用Firefox(我更喜欢在Chromium前使用)。
*Selenium是一个巨大的库。它对于它的创建是很好的,但对于whalsong却不是。
*selenium是一个同步库。这是个问题,因为whalesong是一个异步库。这意味着,whalesong创建了一个线程池来与selenium通信。
*我们需要geckodriver。Firefox本身并不实现WebDriver协议。firefox有自己的
协议,名为'mariotte<;https://firefox source docs.mozilla.org/testing/mariotte/mariotte/intro.html>;`.
因此geckodriver用作webdriver协议和mariotte协议之间的代理。
*因为webdriver是一个同步协议。为了获得新的事件,Whalesong必须不断地投票给Firefox。
没有办法让Firefox主动通知Whalesong。这意味着,whalesong正在以间隔(默认为0.5秒)连续轮询新结果。注::
**Firefox后端只有一种生存方式:**
目前)。/>
当前默认为Firefox后端。但下一个版本会有所改变。因此,为了确保您使用
firefox后端,您必须用正确的驱动程序实例化whalesong。代码块::python3
from whalesong import whalesong
from whalesong.driver_firefox import whalesongdriver
后端是新的。它是使用'pyppetter<;https://github.com/miyakogi/pyppeteer>;``来实现的,它的灵感来自于'puppetter<;https://pptr.dev/>;``(主要用于测试的控制铬无头的'node'库)。它使用
`devtools protocol<;https://chromedevtools.github.io/devtools protocol/>;``来与浏览器通信。
它是一个通过websocket的异步协议。
*不再轮询!当结果产生时,它会主动发送给Whalesong。不再"睡觉",不再等待。
*占用空间小(至少看起来像是铬)。
*没有额外的进程(不再有壁虎河)。
*应用程序模式。没有选项卡,没有url字段。
*没有大型库(没有更多的selenium)。
*没有更多的线程与同步库通信。
contras
==
*它是chromium。它使用blink:over vitaminized webkit渲染。内存占用器。
*当前Pypperter有一个错误。它在20秒后使连接松动。它在https://github.com/miyakogi/pyppeteer/pull/160>;``中得到解决,但尚未得到批准(一些测试错误)。
*它使用puppetter的修补铬版本。Whalesong需要此修补程序,因为它使用"runtime.addbinding"
命令。它在常规稳定版本中不可用。因此,在使用后端之前,必须使用chromium下载它。
*当使用窗口执行chromium时(没有headless),就不可能获得whastappweb qr。
代码块::python3
from whalesong import whalesong
from whalesong.driver_chromium import whalesongdriver
………
其他后端
……………
不,没有其他后端。但我在考虑其他的可能性:
*直接使用webkit创建一个小的足迹webview(gtk或qt方式不是一个选项)。
*直接使用伺服创建一个小的足迹webview(我想学习rust语言)。
**当然,任何贡献都将受到欢迎(非常欢迎)。**
——
——
——
——
——
——
……………
——
——
——
——
——
代码块::bash
$make requirements
代码块::bash
$make build js
………..
美化代码
………..
必须先美化代码才能发出请求。不接受难看的代码。
…代码块::bash
$make beautify
--
示例
--
请参见"文档<;https://whalesong.readthedocs.io/en/latest/examples.html>;`
————————————————————————————————————————————————————————————————————————————————————————————/>
**作者:**`@jabolina<;https://github.com/jabolina>;`
**存储库:**https://github.com/jabolina/whalesong js
----
法律
----
本代码不属于、授权、维护,由whatsapp
或其任何附属公司或子公司赞助或背书。这是一款独立的非官方软件。
请自行承担使用风险。