mirror of
https://github.com/hkalexling/Mango.git
synced 2025-08-02 02:45:29 -04:00
Merge pull request #150 from Leeingnyo/fix/allow-uppercase-extensions
Make file extension check case-insensitive
This commit is contained in:
commit
605dc61777
@ -35,6 +35,23 @@ describe "compare_numerically" do
|
||||
end
|
||||
end
|
||||
|
||||
describe "is_supported_file" do
|
||||
it "returns true when the filename has a supported extension" do
|
||||
filename = "manga.cbz"
|
||||
is_supported_file(filename).should eq true
|
||||
end
|
||||
|
||||
it "returns true when the filename does not have a supported extension" do
|
||||
filename = "info.json"
|
||||
is_supported_file(filename).should eq false
|
||||
end
|
||||
|
||||
it "is case insensitive" do
|
||||
filename = "manga.ZiP"
|
||||
is_supported_file(filename).should eq true
|
||||
end
|
||||
end
|
||||
|
||||
describe "chapter_sort" do
|
||||
it "sorts correctly" do
|
||||
ary = ["Vol.1 Ch.01", "Vol.1 Ch.02", "Vol.2 Ch. 2.5", "Ch. 3", "Ch.04"]
|
||||
|
@ -36,7 +36,7 @@ class Title
|
||||
@title_ids << title.id
|
||||
next
|
||||
end
|
||||
if [".zip", ".cbz", ".rar", ".cbr"].includes? File.extname path
|
||||
if is_supported_file path
|
||||
entry = Entry.new path, self
|
||||
@entries << entry if entry.pages > 0 || entry.err_msg
|
||||
end
|
||||
|
@ -1,3 +1,5 @@
|
||||
require "./util"
|
||||
|
||||
class File
|
||||
abstract struct Info
|
||||
def inode
|
||||
@ -11,7 +13,7 @@ class File
|
||||
# ensures that moving (unless to another device) and renaming the file
|
||||
# preserves the signature, while copying or editing the file changes it.
|
||||
def self.signature(filename) : UInt64
|
||||
return 0u64 unless %w(.zip .rar .cbz .cbr).includes? File.extname filename
|
||||
return 0u64 unless is_supported_file filename
|
||||
info = File.info filename
|
||||
signatures = [
|
||||
info.inode,
|
||||
|
@ -2,6 +2,7 @@ IMGS_PER_PAGE = 5
|
||||
ENTRIES_IN_HOME_SECTIONS = 8
|
||||
UPLOAD_URL_PREFIX = "/uploads"
|
||||
STATIC_DIRS = ["/css", "/js", "/img", "/favicon.ico"]
|
||||
SUPPORTED_FILE_EXTNAMES = [".zip", ".cbz", ".rar", ".cbr"]
|
||||
|
||||
def random_str
|
||||
UUID.random.to_s.gsub "-", ""
|
||||
@ -31,6 +32,10 @@ def register_mime_types
|
||||
end
|
||||
end
|
||||
|
||||
def is_supported_file(path)
|
||||
SUPPORTED_FILE_EXTNAMES.includes? File.extname(path).downcase
|
||||
end
|
||||
|
||||
struct Int
|
||||
def or(other : Int)
|
||||
if self == 0
|
||||
|
Loading…
x
Reference in New Issue
Block a user