From 2f411e3421178d6801a467b8cf6602a254299546 Mon Sep 17 00:00:00 2001 From: xxq250 Date: Fri, 30 Jun 2023 16:58:35 +0800 Subject: [PATCH] =?UTF-8?q?readme=20GBK=E7=BC=96=E7=A0=81=E9=97=AE?= =?UTF-8?q?=E9=A2=98=20=E6=89=A7=E8=A1=8C=E9=A1=BA=E5=BA=8F=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/repositories_controller.rb | 3 ++- app/helpers/repositories_helper.rb | 3 --- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 8427cd262..e613c6407 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -263,8 +263,9 @@ class RepositoriesController < ApplicationController end @path = GiteaService.gitea_config[:domain]+"/#{@owner.login}/#{@repository.identifier}/raw/branch/#{params[:ref]}/" @readme = result[:status] === :success ? result[:body] : nil - @readme['content'] = decode64_content(@readme, @owner, @repository, params[:ref], @path) + # replace_content 前置,防止被content改写 @readme['replace_content'] = readme_decode64_content(@readme, @owner, @repository, params[:ref], @path) + @readme['content'] = decode64_content(@readme, @owner, @repository, params[:ref], @path) Rails.logger.info("readme['replace_content']=================#{@readme['replace_content']}") render json: @readme.slice("type", "encoding", "size", "name", "path", "content", "sha", "replace_content") rescue diff --git a/app/helpers/repositories_helper.rb b/app/helpers/repositories_helper.rb index 39eee2cf4..1c1e1aa95 100644 --- a/app/helpers/repositories_helper.rb +++ b/app/helpers/repositories_helper.rb @@ -116,7 +116,6 @@ module RepositoriesHelper file_path = readme_path.include?('/') ? readme_path.gsub("/#{readme_name}", '') : readme_path.gsub("#{readme_name}", '') return nil if str.blank? content = Base64.decode64(str).force_encoding('UTF-8').valid_encoding? ? Base64.decode64(str).force_encoding('UTF-8') : Base64.decode64(str).force_encoding("GBK").encode("UTF-8") - Rails.logger.info("content2===#{content}") # s_regex = /\s\!\[.*?\]\((.*?)\)\s/ s_regex_c = /`{1,2}[^`](.*?)`{1,2}/ s_regex = /```([\s\S]*?)```[\s]?/ @@ -179,7 +178,6 @@ module RepositoriesHelper after_ss_c_souces.each_with_index do |s, index| content = content.gsub("#{s[0]}","#{total_sources[:ss_c][index][0]}") end - Rails.logger.info("content3===#{content}") return content rescue Exception => e Rails.logger.error("===================#{readme_path}:#{readme_name}:error:#{e}") @@ -200,7 +198,6 @@ module RepositoriesHelper def readme_decode64_content(entry, owner, repo, ref, path=nil) Rails.logger.info("entry===#{entry["type"]} #{entry["name"]}") content = entry['content'].present? ? entry['content'] : Gitea::Repository::Entries::GetService.call(owner, repo.identifier, URI.escape(entry['path']), ref: ref)['content'] - Rails.logger.info("content1===#{content}") # readme_render_decode64_content(content, owner, repo, ref) new_readme_render_decode64_content(content, owner, repo, ref, entry['path'], entry['name']) end