mirror of
https://github.com/hkalexling/Mango.git
synced 2026-04-25 00:00:52 -04:00
- implement reader
This commit is contained in:
@@ -32,6 +32,42 @@ get "/book/:title" do |env|
|
||||
layout "title"
|
||||
end
|
||||
|
||||
get "/reader/:title/:entry" do |env|
|
||||
# We should save the reading progress, and ask the user if she wants to
|
||||
# start over or resume. For now we just start from page 0
|
||||
begin
|
||||
title = library.get_title env.params.url["title"]
|
||||
raise "" if title.nil?
|
||||
entry = title.get_entry env.params.url["entry"]
|
||||
raise "" if entry.nil?
|
||||
env.redirect "/reader/#{title.title}/#{entry.title}/0"
|
||||
rescue
|
||||
env.response.status_code = 404
|
||||
end
|
||||
end
|
||||
|
||||
get "/reader/:title/:entry/:page" do |env|
|
||||
imgs_each_page = 5
|
||||
# here each :page contains `imgs_each_page` images
|
||||
begin
|
||||
title = library.get_title env.params.url["title"]
|
||||
raise "" if title.nil?
|
||||
entry = title.get_entry env.params.url["entry"]
|
||||
raise "" if entry.nil?
|
||||
page = env.params.url["page"].to_i
|
||||
raise "" if page * imgs_each_page >= entry.pages
|
||||
|
||||
urls = ((page * imgs_each_page)...\
|
||||
[entry.pages, (page + 1) * imgs_each_page].min) \
|
||||
.map { |idx| "/api/page/#{title.title}/#{entry.title}/#{idx}" }
|
||||
next_url = "/reader/#{title.title}/#{entry.title}/#{page + 1}"
|
||||
next_url = nil if (page + 1) * imgs_each_page >= entry.pages
|
||||
render "src/views/reader.ecr"
|
||||
rescue
|
||||
env.response.status_code = 404
|
||||
end
|
||||
end
|
||||
|
||||
get "/login" do |env|
|
||||
render "src/views/login.ecr"
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user