跳转到主要内容

将etherpads中的文本泵入出版物

项目描述

etherpump

PyPI version GPL license

将etherpads中的文本泵入出版物

一个命令行工具,通过导出多种格式的pads,扩展了etherpad的多重写作和发布功能。

许多pads,许多网络

Etherpump 是一个友好的etherdump分支,这是由Michael Murtaugh编写的命令行工具,它将etherpad页面转换为文件。这个分支是出于对工具的好奇心,想要研究它,以及在Varia的不同情况下共享使用它的热情火花。

Etherpump 是 etherdump 的扩展版本。它是一个游乐场,我们希望在其中添加功能,将最初工具中 导出 的动作扩散到 泵送 中。因此,最重要的是,etherpump 是一个正在进行中的项目,探索 etherpad 编辑、结构化和发布各种类型内容的使用潜力。

新增功能包括:

  • 使用 __PUBLISH__ 魔法词进行自愿发布
  • publication 命令,它监听自定义魔法词,如 __RELEARN__

请参阅 变更日志/备注 部分了解其他变更。

Etherpump 是一个用于命令行的工具。它将一个 etherpad 安装的 所有垫子泵送到一个文件夹,并将它们保存为不同的文本文件,例如纯文本和 HTML。它还创建了一个索引文件,允许用户轻松地浏览垫子列表。Etherpump 遵循以文档为中心的发布理念,这意味着它将数据库条目形式的垫子转换为文件形式的垫子。这似乎是复制的行为,但实际上是一个重要的中间步骤,允许进行许多不同的发布项目和实验。

我们通过各种版本的 Relearn 和/或 Constant 组织的工作会议开始了解 etherpump。在 etherpad 上进行协作写作是这些场合的重要成分。使用垫子的习惯分支到了 Varia 的日常实践中,我们使用 etherpad 做各种事情,从组织 10+ 人的远程会议,到协作编写和设计 PDF 文档。

在 Varia 服务器上安装 etherpump 后,我们集体决定默认不发布垫子。围绕 etherpad 的使用、隐私以及发布含义的讨论导致我们需要 etherpump 在识别到垫子上的 __PUBLISH__ 标记后才启动索引工作。我们决定在 etherdump 的 __PUBLISH__ vs. __NOPUBLISH__ 分支上工作,我们现在将其分叉成 etherpump

变更日志/备注

2020 年 12 月

添加了 --magicwords 标志。现在支持解析和索引魔法词。有关更多信息,请参阅 etherpump.vvvvvvaria.org。这仍然是一个正在进行中的项目。

--connection 的默认设置更改为 50,以避免压倒配置较低的服务器。

2020 年 11 月

发布 Etherpump 0.0.18!

处理了一个将相同的 HTML 内容保存到多个文件的错误。免责声明:以hacky方式解决。


2020 年 10 月

使用更友好的打包工具 Poetry 进行发布。

进一步的性能调整、信息日志和杂项错误修复。

使我们的 Git 实践去殖民化并使用 main 分支。


2020 年 1 月

pull 命令添加了实验性的 trioasks 支持,该命令允许并发处理垫子。默认的 --connection 选项设置为 20,可能会压倒目标服务器。如果有疑问,请将其设置为更低的数字(如 5)。此功能是实验性的,请谨慎使用并请报告错误!

由于并发处理使得跟踪变得困难,因此移除了拉取时的花哨进度条。目前,我们仅输出我们完成的 padid。


2019 年 10 月

改善了 etherpump --help 的处理,使其对新用户更容易使用。

添加了 python-dateutilpypandoc 依赖项

为长运行 etherpump pull --all 调用添加了花哨的进度条 tqdm

实验性库 API 开始。


2019 年 9 月

etherpump 分叉成 etherpump

https://git.vvvvvvaria.org/varia/etherpump

将源代码迁移到 Python 3。

将 PyPi 发布与 setuptools 集成。


2019 年 5 月 - 9 月

etherpump 用于生成《网络之我》2.0(NOOO2)出版物的《反刍重学》部分。

增加了一条新命令来创建基于自定义魔法词 __RELEARN__ 的网页出版物。


2019年6月

在阿姆斯特丹Rotterdam的Varia Relearn Curved活动中,涌现出多个关于 etherpump 的讨论。

包括可执行垫(etherhooks)、自定义魔法词、联邦片段协议(《etherstekje》)等内容。

https://varia.zone/relearn-2019.html


2019年4月

在Varia服务器上安装 etherpump。

https://etherpump.vvvvvvaria.org/


2019年3月

decentral1se 在 etherpump 仓库中增加了 __PUBLISH__ vs. __NOPUBLISH__

https://gitlab.constantvzw.org/aa/etherpump/issues/3


最初设计用于: Constant

更多笔记可以在 etherdump 的 git 仓库 中找到。

安装 etherpump

$ pip install etherpump

Etherpump 仅支持 Python >= 3.6。

命令行示例

$ mkdir mydump
$ cd myddump
$ etherpump init

程序会交互式地提出一些问题

请输入 etherpad 的 URL(例如 https://pad.vvvvvvaria.org

https://pad.vvvvvvaria.org/

APIKEY 是 etherpad 文件夹中 APIKEY.txt 文件的内容。

请粘贴 APIKEY

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

设置保存在名为 .etherpump/settings.json 的文件中,默认情况下由后续命令使用。

常见工作流程

文本+元数据性能整理

如果您有很多垫,您可能想尝试以下方法来加快速度。以下是在 Varia 的一些做法。首先,您以文本+元数据作为唯一格式下载所有垫的文本。当您尝试直接与文本工作时,这可能是您想要的。您可以这样操作

$ etherpump pull --text --meta --publish-opt-in

这里的关键是获取 --meta,这样 etherpump 就能快速跳过它,在下一次运行时如果有新修订,就不需要再次执行。因此,在实践中,您会得到一个较慢的首次运行和较快的后续运行,因为更多的垫会跳过实际执行文件系统写入以保存我们已有的内容。

库 API 示例

Etherpump 可以用作库。

所有命令都可以导入并作为程序运行。

>>> from etherpump.api import pull
>>> pull(['--text', '--meta', '--publish-opt-in'])

还有一个魔法词接口。它支持以下 API

magic_word(word, fresh)

  • word: 要与垫文本匹配的魔法词(例如 __PUB_CLUB__
  • fresh(默认: True):是否每次运行都执行 etherpump pull

以下是一个示例

from etherpump.api import magic_word

@magic_word("__PUB_CLUB__", fresh=False)
def pub_club_texts(pads):
    for name in pads:
        print(pads[name]["txt"])


pub_club_texts()

pads 是一个字典,包含垫名称作为键,垫文本作为值。通常,fresh=False 在您正在黑客攻击并想从本地文件系统读取而不是每次都通过网络读取垫内容时很有用。

子命令

要查看所有可用的子命令,请运行

$ etherpump --help

要获取每个单独子命令的帮助,请运行

$ etherpump revisionscount --help

发布

请使用 "semver" 规范进行版本。

以下是应遵循的步骤(例如,对于 0.1.3 版本)

  • etherpump/__init__.py 中的 __VERSION__ 版本号更改为 0.1.3
  • pyproject.toml 中的 version 字段更改为 0.1.3
  • git add . && git commit -m "发布新的 0.1.3 版本" && git tag 0.1.3 && git push --tags
  • 运行 poetry publish --build

您应该拥有一个PyPi账号,并且被添加为etherpump软件包的所有者/维护者。

测试

运行一个非常临时的本地Etherpad实例进行测试非常有用。这可以通过Docker实现。

$ docker run -d --name etherpad -p 9001:9001 etherpad/etherpad
$ docker exec -ti etherpad cat APIKEY.txt;echo

然后您可以使用etherpump init在该本地Etherpad上进行实验和测试。您使用http://localhost:9001作为垫URL。

稍后,您可以使用以下命令删除Etherpad:

$ docker rm -f --volumes etherpad

维护工具

帮助事物长时间保持整洁的工具。

$ make

请参阅以下链接以获取更多信息

服务器Systers情况

$ sudo -su systers
$ cd /var/www/etherpump
$ sh cron.sh

/etc/nginx/sites-enabled/etherpump.vvvvvvaria.conf提供服务。

跟踪Etherpad-lite

许可证

GNU AFFERO通用公共许可证,版本3。

请参阅LICENSE

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

etherpump-0.0.20.tar.gz (43.6 kB 查看散列)

上传时间:

构建分布

etherpump-0.0.20-py3-none-any.whl (54.2 kB 查看散列)

上传时间: Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面