0.49 Final touches

This commit is contained in:
David Sainty 2024-09-09 12:29:04 +10:00
parent edb05aa37b
commit 78ebc1ca92

View File

@ -4,7 +4,7 @@
# name: discourse-legacy_links # name: discourse-legacy_links
# about: A plugin to handle legacy Gossamer Forums URLs # about: A plugin to handle legacy Gossamer Forums URLs
# version: 0.48 # version: 0.49
# authors: saint@federated.computer # authors: saint@federated.computer
# url: https://gitea.federated.computer/saint/discourse-legacy_links.git # url: https://gitea.federated.computer/saint/discourse-legacy_links.git
@ -52,10 +52,21 @@ after_initialize do
# Attempts to extract a post ID from various parts of the request # Attempts to extract a post ID from various parts of the request
def extract_post_id_from_request def extract_post_id_from_request
# post_id = params[:post_id].presence ||
# request.path.match(%r{/forum/[^/]+/P(\d+)/?})&.[](1) ||
# request.query_string.match(/post=(\d+)/)&.[](1) ||
# request.query_string.match(/parent_post_id=(\d+)/)&.[](1)
# post_id = params[:post_id].presence ||
# request.path.match(%r{/P(\d+)/?})&. || # Matches URLs like /P40796/
# request.path.match(%r{/forum/ || # Matches URLs like /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
# request.path.match(%r{/forum/.*?_P(\d+)/?})&. # Matches URLs like /forum/..._P6751045/
post_id = params[:post_id].presence || post_id = params[:post_id].presence ||
request.path.match(%r{/forum/[^/]+/P(\d+)/?})&.[](1) || request.path.match(%r{/P(\d+)(?:/|$)})&. || # Matches URLs like /P40796/ or /P40796 (no trailing slash)
request.query_string.match(/post=(\d+)/)&.[](1) || request.path.match(%r{/forum/ || # Matches URLs like /forum/.../P6751045/ or /forum/.../P6751045
request.query_string.match(/parent_post_id=(\d+)/)&.[](1) 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
Rails.logger.info("DiscourseLegacyLinks: Extracted raw post_id: #{post_id || 'nil'}") Rails.logger.info("DiscourseLegacyLinks: Extracted raw post_id: #{post_id || 'nil'}")
post_id.to_i if post_id post_id.to_i if post_id