允许发帖人撤销帖子/访问原始历史数据

Hello discourse devs!

I frequent a forum that uses your software and generally find it quite nice! However, I have one pet peeve that I wonder if it would be possible to address:

For context, the forum I frequent uses the software to asynchronously play a turn-based card game. As such, we post very similar looking posts back and forth to “play our turns”, which typically involves:

  • Copying a previous post for format
  • Editing that post for the events of the new turn
  • Posting the edit as a reply

This means that I often forget to copy first, hit reply, then edit, and instead just start editing a previous post. When I do this, I am unable to easily unroll those changes to the previously existing turn. Thus, I end up with edit histories like this in this post.

It would greatly benefit me, as a user, to easily either:

  • revert a post to a previous edit, via the UI, or at the very least
  • have a json api to access previous revisions as raw post data (not the body_changes.side_by_side table rendered HTML, something where I can easily copy + paste the old version into a new edit)

I welcome feedback, pushback as to why this isn’t worthwhile, or scrutiny in other forms, and very much appreciate any time you dedicate to considering this issue. Thank you very much!

I am not totally following here.

So you edit your own old post, just to grab the raw post content… but forget a step and actually edit the old post when you meant to only copy it, and start a new post?

My exact steps are, when done correctly:

  1. Open my previous post for editing (to copy the raw contents)
  2. Close my previous post without any changes ( I just wanted the raw content)
  3. Hit “reply” to the latest post (a turn taken by my opponent)
  4. Paste the contents of my the previous post into the new reply (as the formatting of the post is largely identical, to communicate game state; some values and sections are changed)
  5. Start changing the reply (starting from the exact contents of the old post) to reflect my new turn (I change the title to reflect the current turn number, change various sections to reflect new turn state and actions, etc).

However, sometimes I skip steps 2-4 by accident (the UI for editing an old post and starting a new post look largely the same, minus the “Reply” vs. “Save Edit” CTA button). Sometimes I notice that the CTA is changed, copy the new post, close the edit (that I’ve put new contents into) so that it doesn’t overwrite, then execute steps 2-4. There’s no problem if I remember to do that. It’s just when I accidentally hit “Save Edit” that my previous post is very difficult to reproduce.

So, I end up editing the previous post with my new post contents (again, from a raw perspective the contents look very similar, see the example I linked), and I am unable to revert it easily.

Does that make sense?

1 个赞

it does, maybe try this:

https://meta.discourse.org/raw/119487

That is, delete the middle part of the URL and replace with “raw”

https://meta.discourse.org/raw/119487/3

2 个赞

So that does indeed work great for getting the raw post data for the current revision of a given post in the thread, but not any previous revisions. I am looking for the raw data of the previous revision (so like for https://meta.discourse.org/raw/119487/3, how do I access the raw data of the previous edits?)

Is there a way to provide not just the post ID or thread id + post index, but also revision index?

I think you can use the raw link instead of clicking to edit the post.

Your steps would be:

  1. Open my previous post using the raw link (to copy the raw contents, could be opened in a new tab)
  2. Hit “reply” to the latest post (a turn taken by my opponent)
  3. Paste the contents of my the previous post into the new reply (as the formatting of the post is largely identical, to communicate game state; some values and sections are changed)
  4. Start changing the reply (starting from the exact contents of the old post) to reflect my new turn (I change the title to reflect the current turn number, change various sections to reflect new turn state and actions, etc).

This way you can avoid editing old posts by mistakes.

For example, you can access https://forums.sirlingames.com/raw/5935/210 (related to the post https://forums.sirlingames.com/t/casual-codexnewb-mono-blue-vs-frozenstorm-fire-past-peace/5935/210) to create the next one.

For the post you edited by mistake, I think you could copy the raw content of the previous post and adjust it based on the history of the wrong post (it would be just 1 time, for the new posts you could follow the steps above to avoid editing by mistake).

1 个赞

Hmm, that would make it less likely to mess up I suppose, but still I’m looking for a feature to allow reverting an accidental edit.

Yes, and I have done that in the past, and actually it takes a lot of time to do this. That’s why I’m wondering if this is a feature that’s easy to add (I figure the code to revert a post must exist already, as the functionality is available to staff), as this happens to me once or twice a minute, and yea accidentally doing it loses me 10-15 minutes to fix it, which for a recreational activity kinda sucks.

I understand if this isn’t a high priority or isn’t worth doing, but I thought I can’t be the only person that has this problem, and if the “revert post to previous edit” functionality is already available to staff, why wouldn’t it be made available to a poster for his/her own usage?

1 个赞

顶一下这个帖子,因为:

  1. 理论上,如果用户手头有旧的原始数据,他们可以直接编辑帖子恢复原状。因此,这纯粹是一个提升体验(QoL)的功能,旨在让他们能够恢复到那些已不再拥有原始数据的编辑版本。

  2. 版主已经具备此能力,所以该功能理应已经存在,只需稍加扩展即可应用于帖子的原作者,工作量应该不大。

  3. 基于以上两点,我想不出任何理由不支持启用此功能,毕竟仅仅将此项功能的权限扩展给帖子原作者,其价值完全值得投入这点精力。