fix: some issues

This commit is contained in:
yystopf 2021-09-29 18:50:51 +08:00
parent c1db02171a
commit b07781a514
2 changed files with 8 additions and 5 deletions

View File

@ -229,7 +229,7 @@ class RepositoriesController < ApplicationController
file_path = [domain, api_url, url].join file_path = [domain, api_url, url].join
file_path = [file_path, "access_token=#{current_user&.gitea_token}"].join("&") if @repository.hidden? file_path = [file_path, "access_token=#{current_user&.gitea_token}"].join("&") if @repository.hidden?
redirect_to file_path redirect_to URI.escape(file_path)
end end
private private

View File

@ -10,12 +10,12 @@ module RepositoriesHelper
end end
def download_type(str) def download_type(str)
default_type = %w(xlsx xls ppt pptx pdf zip 7z rar exe pdb obj idb png jpg gif tif psd svg RData rdata doc docx mpp vsdx dot otf eot ttf woff woff2) default_type = %w(xlsx xls ppt pptx pdf zip 7z rar exe pdb obj idb RData rdata doc docx mpp vsdx dot otf eot ttf woff woff2)
default_type.include?(str&.downcase) default_type.include?(str&.downcase)
end end
def image_type?(str) def image_type?(str)
default_type = %w(png jpg gif tif psd svg gif bmp webp jpeg) default_type = %w(png jpg gif tif psd svg bmp webp jpeg)
default_type.include?(str&.downcase) default_type.include?(str&.downcase)
end end
@ -83,12 +83,15 @@ module RepositoriesHelper
def decode64_content(entry, owner, repo, ref, path=nil) def decode64_content(entry, owner, repo, ref, path=nil)
if is_readme?(entry['type'], entry['name']) if is_readme?(entry['type'], entry['name'])
content = Gitea::Repository::Entries::GetService.call(owner, repo.identifier, entry['path'], ref: ref)['content'] content = Gitea::Repository::Entries::GetService.call(owner, repo.identifier, URI.escape(entry['path']), ref: ref)['content']
readme_render_decode64_content(content, path) readme_render_decode64_content(content, path)
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)
return entry['content'].nil? ? Gitea::Repository::Entries::GetService.call(owner, repo.identifier, URI.escape(entry['path']), ref: ref)['content'] : entry['content']
end
if download_type(file_type) if download_type(file_type)
return entry['content'].nil? ? Gitea::Repository::Entries::GetService.call(owner, repo.identifier, entry['path'], ref: ref)['content'] : entry['content'] return entry['content']
end end
render_decode64_content(entry['content']) render_decode64_content(entry['content'])
end end