add: new readme delay function
This commit is contained in:
parent
e237fd46f7
commit
83e43f0c97
|
@ -87,6 +87,42 @@ module RepositoriesHelper
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# author hui.he
|
||||||
|
def new_readme_render_decode64_content(str, owner, repo, ref)
|
||||||
|
path = [owner&.login, repo&.identifier, 'tree', ref].join("/")
|
||||||
|
return nil if str.blank?
|
||||||
|
content = Base64.decode64(str).force_encoding('UTF-8')
|
||||||
|
s_regex = /\[.*?\]\((.*?)\)/
|
||||||
|
src_regex = /src=\"(.*?)\"/
|
||||||
|
ss = content.to_s.scan(s_regex)
|
||||||
|
ss_src = content.to_s.scan(src_regex)
|
||||||
|
total_sources = ss + ss_src
|
||||||
|
total_sources.uniq!
|
||||||
|
total_sources.each do |s|
|
||||||
|
begin
|
||||||
|
s_content = s[0]
|
||||||
|
# 链接直接跳过不做替换
|
||||||
|
next if s_content.starts_with?('http://') || s_content.starts_with?('https://') || s_content.starts_with?('mailto:')
|
||||||
|
# 路径替换
|
||||||
|
if s_content.starts_with?('./') || s_content.starts_with?("../") || s_content.starts_with?("/")
|
||||||
|
s_content = File.expand_path(s_content, path)
|
||||||
|
s_content = s_content.split("#{Rails.root}/")[1]
|
||||||
|
content = content.gsub(s[0], "/#{s_content}")
|
||||||
|
else
|
||||||
|
# 图片资源替换
|
||||||
|
s_content = [base_url, "/api/#{owner&.login}/#{repo.identifier}/raw?filepath=#{s_content}&ref=#{ref}"].join
|
||||||
|
content = content.gsub(s[0], s_content)
|
||||||
|
end
|
||||||
|
rescue
|
||||||
|
next
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return content
|
||||||
|
rescue
|
||||||
|
return str
|
||||||
|
end
|
||||||
|
|
||||||
# unix_time values for example: 1604382982
|
# unix_time values for example: 1604382982
|
||||||
def render_format_time_with_unix(unix_time)
|
def render_format_time_with_unix(unix_time)
|
||||||
Time.at(unix_time).strftime("%Y-%m-%d %H:%M")
|
Time.at(unix_time).strftime("%Y-%m-%d %H:%M")
|
||||||
|
@ -102,7 +138,8 @@ module RepositoriesHelper
|
||||||
Rails.logger.info("entry===#{entry["type"]} #{entry["name"]}")
|
Rails.logger.info("entry===#{entry["type"]} #{entry["name"]}")
|
||||||
content = Gitea::Repository::Entries::GetService.call(owner, repo.identifier, URI.escape(entry['path']), ref: ref)['content']
|
content = Gitea::Repository::Entries::GetService.call(owner, repo.identifier, URI.escape(entry['path']), ref: ref)['content']
|
||||||
Rails.logger.info("content===#{content}")
|
Rails.logger.info("content===#{content}")
|
||||||
readme_render_decode64_content(content, owner, repo, ref)
|
# readme_render_decode64_content(content, owner, repo, ref)
|
||||||
|
new_readme_render_decode64_content(content, owner, repo, ref)
|
||||||
else
|
else
|
||||||
file_type = File.extname(entry['name'].to_s)[1..-1]
|
file_type = File.extname(entry['name'].to_s)[1..-1]
|
||||||
if image_type?(file_type)
|
if image_type?(file_type)
|
||||||
|
|
Loading…
Reference in New Issue