Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

评论组件是否可以增加 Gravatar 源设置 #97

Closed
guqing opened this issue Mar 8, 2024 · 15 comments · Fixed by #111
Closed

评论组件是否可以增加 Gravatar 源设置 #97

guqing opened this issue Mar 8, 2024 · 15 comments · Fixed by #111
Assignees
Labels
kind/feature Categorizes issue or PR as related to a new feature.

Comments

@guqing
Copy link
Member

guqing commented Mar 8, 2024

评论组件是否可以支持 Gravatar 源设置以便匿名用户评论时可以根据邮箱地址显示头像,或者增加没有头像时的默认头像选项设置如根据名称生成等策略

/kind feature

@f2c-ci-robot f2c-ci-robot bot added the kind/feature Categorizes issue or PR as related to a new feature. label Mar 8, 2024
@jkjoy
Copy link

jkjoy commented Mar 10, 2024

同感.
国内用户用着全是红叉

@ShiinaKin
Copy link
Contributor

ShiinaKin commented Apr 2, 2024

现在插件是从 this.comment?.owner.avatar 拿的avatar路径,后端是否只需在返回的comment对象里加上owner邮箱的hash,然后评论插件根据邮箱hash拼出url,再从gravatar拿图,见Image Requests
需要考虑的就是请求失败的情况,可以在评论设置里加上Gravatar源的设置,允许用户使用镜像站,失败的话退化到现有的无头像方案?

@JohnNiang
Copy link
Member

Hi @mashirot ,感觉 avatar 又后端拼接可能会更好,不过仍然可以考虑把邮箱的 hash 放到 annotations 中返回。

@ShiinaKin
Copy link
Contributor

Hi @mashirot ,感觉 avatar 又后端拼接可能会更好,不过仍然可以考虑把邮箱的 hash 放到 annotations 中返回。

好的,如果我想做这个issue该怎么操作,因为涉及到两个仓库,先到halo仓库提pr将comment的修改引入,再对此仓库发pr吗

@guqing
Copy link
Member Author

guqing commented Apr 3, 2024

Hi @mashirot ,感觉 avatar 又后端拼接可能会更好,不过仍然可以考虑把邮箱的 hash 放到 annotations 中返回。

好的,如果我想做这个issue该怎么操作,因为涉及到两个仓库,先到halo仓库提pr将comment的修改引入,再对此仓库发pr吗

这个功能本身就是想在插件中实现的,不希望去改 halo

@ShiinaKin
Copy link
Contributor

ShiinaKin commented Apr 3, 2024

@guqing 如果是仅针对匿名用户,现有的返回值似乎无法提供邮箱hash

我的建议是在插件这边调用评论的 api 代理一下然后填充头像信息,也就是评论插件提供一个获取评论的 api 但是逻辑是先从 halo 获取数据然后处理头像在返回

@ShiinaKin
Copy link
Contributor

我的建议是在插件这边调用评论的 api 代理一下然后填充头像信息,也就是评论插件提供一个获取评论的 api 但是逻辑是先从 halo 获取数据然后处理头像在返回

不是很理解 逻辑是先从 halo 获取数据,相关的bean都没有开放给插件注入,halo返回的都是处理后的数据,插件套一层之后应该怎样填充头像信息呢,难道是重新造一套轮子吗

@ruibaby
Copy link
Member

ruibaby commented Apr 3, 2024

@mashirot 他的意思应该是通过 http api,相当于在评论插件中做一个中间层,然后评论组件调用评论插件的处理好的 api。

@ShiinaKin
Copy link
Contributor

@mashirot 他的意思应该是通过 http api,相当于在评论插件中做一个中间层,然后评论组件调用评论插件的处理好的 api。

那样好像没啥意义,halo返回的数据没有邮箱相关字段,中间层也没法变出来

@ruibaby
Copy link
Member

ruibaby commented Apr 3, 2024

@mashirot 他的意思应该是通过 http api,相当于在评论插件中做一个中间层,然后评论组件调用评论插件的处理好的 api。

那样好像没啥意义,halo返回的数据没有邮箱相关字段,中间层也没法变出来

确实,现在邮箱是脱敏了的。

@JohnNiang
Copy link
Member

目前我想到的有两种方案:

  1. Halo core 中提供一个扩展点,允许插件对评论数据进行修改。这样评论插件就可以实现该扩展点来实现想要的功能。
  2. Halo core 中默认把评论的邮箱进行 Hash 并设置到 annotations 中

@ruibaby
Copy link
Member

ruibaby commented Apr 3, 2024

目前我想到的有两种方案:

  1. Halo core 中提供一个扩展点,允许插件对评论数据进行修改。这样评论插件就可以实现该扩展点来实现想要的功能。

  2. Halo core 中默认把评论的邮箱进行 Hash 并设置到 annotations 中

我更推荐设计一个拓展点。

@ShiinaKin
Copy link
Contributor

最简单的应该就是在 run.halo.app.theme.finders.impl.CommentPublicQueryServiceImpl#filterCommentSensitiveData 将email的hash加到annotation里

@JohnNiang
Copy link
Member

方案一应当是实现的最终形态,方案二可快速验证当前的思路。

所以我推荐先用方案二实现,待验证成功且稳定后,再利用方案一来彻底实现,包括邮箱的脱敏也可以用扩展点来实现。

@ShiinaKin
Copy link
Contributor

方案一应当是实现的最终形态,方案二可快速验证当前的思路。

所以我推荐先用方案二实现,待验证成功且稳定后,再利用方案一来彻底实现,包括邮箱的脱敏也可以用扩展点来实现。

halo-dev/halo#5641

f2c-ci-robot bot pushed a commit to halo-dev/halo that referenced this issue Apr 8, 2024
…us (#5642)

/kind feature
/area core

#### What this PR does / why we need it:

see halo-dev/plugin-comment-widget#97

#### Which issue(s) this PR fixes:

Fixes #5641 

```release-note
评论数据返回邮箱地址 hash 值以便生成默认头像
```
f2c-ci-robot bot pushed a commit that referenced this issue Apr 9, 2024
后端改动:halo-dev/halo#5642


Fixes #97
Fixes #77

两个不同邮箱,相同头像

效果:
![image](https://github.com/halo-dev/plugin-comment-widget/assets/52254895/3b61eaec-4cca-4425-8735-827d3f06ba72)

```release-note
评论头像支持使用 Gravatar 源
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants