- make the page parameter in the reader view the same as the page number in books

This commit is contained in:
Alex Ling 2020-02-14 16:57:48 +00:00
parent 9114c0b488
commit c7bde94495
2 changed files with 13 additions and 15 deletions

View File

@ -99,8 +99,7 @@ class Title
page / entry_obj.pages
end
def load_percetage(username)
read_pages = 0
total_pages = 0
read_pages = total_pages = 0
@entries.each do |e|
read_pages += load_progress username, e.title
total_pages += e.pages

View File

@ -162,36 +162,35 @@ get "/reader/:title/:entry" do |env|
# load progress
username = get_username env
entry_page = title.load_progress username, entry.title
# we go above 1 * `imgs_each_page` pages. the infinite scroll library
page = title.load_progress username, entry.title
# we go back `imgs_each_page` pages. the infinite scroll library
# perloads a few pages in advance, and the user might not have actually
# read it
page = [(entry_page // imgs_each_page) - 1, 0].max
# read them
page = [page - imgs_each_page, 0].max
env.redirect "/reader/#{title.title}/#{entry.title}/#{page}"
rescue e
pp e
rescue
env.response.status_code = 404
end
end
get "/reader/:title/:entry/:page" do |env|
# here each :page contains `imgs_each_page` images
begin
title = (library.get_title env.params.url["title"]).not_nil!
entry = (title.get_entry env.params.url["entry"]).not_nil!
page = env.params.url["page"].to_i
raise "" if page * imgs_each_page >= entry.pages
raise "" if page >= entry.pages
# save progress
username = (get_username env).not_nil!
title.save_progress username, entry.title, page * imgs_each_page
title.save_progress username, entry.title, page
urls = ((page * imgs_each_page)...\
[entry.pages, (page + 1) * imgs_each_page].min) \
urls = (page...[entry.pages, page + 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
next_page = page + imgs_each_page
next_url = next_page >= entry.pages ? nil :
"/reader/#{title.title}/#{entry.title}/#{next_page}"
render "src/views/reader.ecr"
rescue
env.response.status_code = 404