0.52 Refine regex for extra case

This commit is contained in:
David Sainty 2024-09-09 13:05:00 +10:00
parent d88413ec23
commit 1fde7e3874

View File

@ -4,7 +4,7 @@
# name: discourse-legacy_links
# about: A plugin to handle legacy Gossamer Forums URLs
# version: 0.51
# version: 0.52
# authors: saint@federated.computer
# url: https://gitea.federated.computer/saint/discourse-legacy_links.git
@ -67,11 +67,17 @@ after_initialize do
# request.path.match(%r{/forum/.*_P(\d+)(?:/|$)})&. || # Matches URLs like /forum/.../P6751045/ or /forum/.../P6751045
# request.query_string.match(/post=(\d+)/)&. || # Matches URLs with ?post= in query string
# request.query_string.match(/parent_post_id=(\d+)/)&. # Matches URLs with ?parent_post_id= in query string
# post_id = params[:post_id].presence ||
# request.path.match(%r{/P(\d+)(?:/|$)})&.[](1) || # Matches URLs like /P40796/ or /P40796 (no trailing slash)
# request.path.match(%r{/forum/.*_P(\d+)(?:/|$)})&.[](1) || # Matches URLs like /forum/.../P6751045/ or /forum/.../P6751045
# request.query_string.match(/post=(\d+)/)&.[](1) || # Matches URLs with ?post= in query string
# request.query_string.match(/parent_post_id=(\d+)/)&.[](1) # Matches URLs with ?parent_post_id= in query string
post_id = params[:post_id].presence ||
request.path.match(%r{/P(\d+)(?:/|$)})&.[](1) || # Matches URLs like /P40796/ or /P40796 (no trailing slash)
request.path.match(%r{/forum/.*_P(\d+)(?:/|$)})&.[](1) || # Matches URLs like /forum/.../P6751045/ or /forum/.../P6751045
request.query_string.match(/post=(\d+)/)&.[](1) || # Matches URLs with ?post= in query string
request.query_string.match(/parent_post_id=(\d+)/)&.[](1) # Matches URLs with ?parent_post_id= in query string
request.path.match(%r{/P(\d+)(?:-\d+)?(?:/|$)})&.[](1) || # Matches URLs like /P40796/, /P40796, or /P40796-5/
request.path.match(%r{/forum/.*_P(\d+)(?:-\d+)?(?:/|$)})&.[](1) || # Matches URLs like /forum/.../P6751045/, /forum/.../P6751045, or /forum/.../P6751045-5/
request.query_string.match(/post=(\d+)/)&.[](1) || # Matches URLs with ?post= in query string
request.query_string.match(/parent_post_id=(\d+)/)&.[](1) # Matches URLs with ?parent_post_id= in query string
Rails.logger.info("DiscourseLegacyLinks: Extracted raw post_id: #{post_id || 'nil'}")
post_id.to_i if post_id