2019 年 12 月开发新闻

Gajim 开发新闻

2019 年 12 月开发新闻

Gajim 开发新闻

这是关于 Gajim 开发的新闻系列的第三篇文章。在这些文章中,我(wurstsalat)将尝试总结一个月的 Gajim 开发情况。有时这些文章还会涉及 python-nbxmpp 和 XMPP 一般情况。12 月的开发带来了 HTTP 文件传输、联系人列表工具提示等方面的改进。欢迎加入 gajim@conference.gajim.org 与我们讨论。

Gajim 的变化

Gajim 的旧消息对话系统的替换(请参见11 月的开发新闻)已于本月完成。我们仍在移除不必要的对话框,但这已经是一个良好的进步。举个不必要的消息对话框的例子:当联系人确认您的订阅请求时,会出现一个只有“确定”按钮的消息对话框来通知您该事件。相反,Gajim 现在将发出一个简单的通知(这更不具侵入性)。

很长一段时间以来,您可以在 Gajim 的联系人列表中悬停一个群聊,它会显示一个包含该聊天基本信息的工具提示。在过去,该工具提示还会显示群聊的主题(并且不会缩短文本)。我们决定用群聊的描述替换主题(如果有的话)。主题仍然可以通过打开群聊的信息页面查看。此外,已为每条信息设置了文本长度限制,从而形成紧凑的工具提示。

对于某些操作,Gajim 需要一个助手式的流程来指导用户完成多个输入步骤。Gajim 现在为此目的提供了一个可扩展的助手。两个工作流程已经迁移到新的助手:密码更改和账号删除。例如,在删除账号时,用户可以选择是否要在本地删除或完全删除,这意味着在本地和服务器上都删除。这是一个动态过程,步骤可能会出错(例如,服务器不提供账号删除,连接丢失等),或者需要额外的用户输入。使用新的助手使 Gajim 能够在一个窗口中显示选项、进度、错误等,而无需使用额外的对话框。下一个迁移的操作将是账号创建向导,这是用户入门的关键部分。

对于通过 HTTP 文件上传(XEP-0363)进行的文件传输,以及其它 HTTP 下载和上传,Gajim 已经使用 python 线程很长时间了。这在每种情况下都没有证明有效,有时会导致 GUI 冻结。为了使 HTTP 传输异步工作,Gajim 现在使用’libsoup’库。在此过程中,文件传输周围的代码也得到了简化。未来,这还应该使用户能够为 HTTP 连接设置代理(例如,URL 图像预览,插件安装程序)。

其它更新

  • 修复了消息输入中的错误,长消息没有换行时无法完全显示 (#8980, #9574)
  • 修复了无服务器消息传递中的错误 (#9926)
  • 当用户未连接时,“开始聊天”和“创建群聊”菜单项现在已禁用
  • 关闭未读消息的聊天时,现在将显示动态对话框消息,考虑历史设置
  • 改进了首选项中的音频/视频源选择

在持续努力通过收紧 pylint 规则来提高代码质量的过程中,修复了许多 lint 警告和错误。

插件更新

Gajim 的 URL 图像预览插件已适应 HTTP 文件传输的变化。这还包括对插件的全面重构,同时修复了 #456#320。过去,该插件能够使用 Google Maps 或 OpenStreetMap 通过 Map Quest 在地图上显示 geo:-URI(位置链接)。如今,这两项服务都受到速率限制或需要付费会员,使得该插件使用这些服务变得无用。当接收到 geo:-URI 时,预览插件现在将显示一个可点击的地图图标,打开网页浏览器。大多数浏览器确实支持这些链接,通过提供的坐标打开地图服务。

Gajim 的 OMEMO 插件也已适应 HTTP 文件传输的变化,同时修复了 #467#419

此外,两个插件进行了全面重构:可点击昵称 (#454) 和消息框大小。

python-nbxmpp 中的变化

已向 python-nbxmpp 添加对 HTTP 文件上传 (XEP-0363) 的支持。