HentaiHand: Fixed all (Issue #923)

This commit is contained in:
Slasar41 2020-04-23 02:54:42 +07:00 committed by GitHub
parent f36d22f5ce
commit d142655041
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,68 +1,137 @@
function getinfo() ----------------------------------------------------------------------------------------------------
mangainfo.url=MaybeFillHost(module.RootURL, url) -- Scripting Parameters
if http.get(mangainfo.url) then ----------------------------------------------------------------------------------------------------
x=TXQuery.Create(http.document)
mangainfo.title=x.xpathstring('//h1') local LuaDebug = require 'LuaDebugging'
if module.website == 'NHentai' then -- LuaDebugging = true --> Override the global LuaDebugging variable by uncommenting this line.
mangainfo.coverlink=x.xpathstring('//*[@id="cover"]//img/@data-src') -- LuaStatistics = true --> Override the global LuaStatistics variable by uncommenting this line.
mangainfo.artists=x.xpathstringall('//*[@id="tags"]//a[contains(@href,"/artist/")]/text()')
else
mangainfo.coverlink=x.xpathstring('//*[@id="cover"]//img/@src') ----------------------------------------------------------------------------------------------------
mangainfo.artists=x.xpathstringall('//*[@id="tags"]//a[contains(@href,"/artists/")]/text()') -- Local Constants
end ----------------------------------------------------------------------------------------------------
mangainfo.genres=x.xpathstringall('//*[@id="tags"]//a/text()')
mangainfo.summary=x.xpathstring('//div[contains(@class, "drop-discription")]/p/text()') DirectoryPagination = '/?page='
mangainfo.chapterlinks.add(url)
mangainfo.chapternames.add(mangainfo.title)
return no_error ----------------------------------------------------------------------------------------------------
else -- Event Functions
return net_problem ----------------------------------------------------------------------------------------------------
end
-- Get info and chapter list for current manga.
function GetInfo()
local x = nil
local u = MaybeFillHost(module.RootURL, url)
--[[Debug]] LuaDebug.WriteLogWithHeader('GetInfo', 'url -> ' .. u)
if not http.Get(u) then return net_problem end
x = TXQuery.Create(http.Document)
mangainfo.Title = x.XPathString('//h1')
mangainfo.CoverLink = x.XPathString('//div[@id="cover"]//img/@data-src')
if mangainfo.CoverLink == '' then mangainfo.CoverLink = x.XPathString('//div[@id="cover"]//img/@src') end
mangainfo.Artists = x.XPathString('//section[@id="tags"]//a[contains(@href, "artist")]/text()')
mangainfo.Genres = x.XPathStringAll('//section[@id="tags"]//a/text()')
mangainfo.Summary = x.XPathString('//div[contains(@class, "drop-discription")]/p/text()')
mangainfo.ChapterLinks.Add(url)
mangainfo.ChapterNames.Add(mangainfo.Title)
--[[Debug]] LuaDebug.PrintMangaInfo()
--[[Debug]] LuaDebug.WriteStatistics('Chapters', mangainfo.ChapterLinks.Count .. ' (' .. mangainfo.Title .. ')')
return no_error
end end
function getpagenumber()
if http.get(MaybeFillHost(module.rooturl,url)) then -- Get the page count of the manga list of the current website.
TXQuery.Create(http.Document).xpathstringall('//*[@class="thumb-container"]//img/@data-src/replace(.,"//t\\.(.+\\d+)t\\.","//i.$1.")',task.pagelinks) function GetDirectoryPageNumber()
local u = module.RootURL .. DirectoryPagination .. 1
--[[Debug]] LuaDebug.WriteLogWithHeader('GetDirectoryPageNumber', 'url -> ' .. u)
if not http.Get(u) then return net_problem end
if module.website == 'NHentai' then
page = tonumber(TXQuery.Create(http.Document).XPathString('//a[@class="last"]/@href/substring-after(.,"=")'))
else
page = tonumber(TXQuery.Create(http.Document).XPathString('//section[@class="pagination"]/li[last()]/a/@href'):match('?page=(%d+)&order='))
end
--[[Debug]] LuaDebug.WriteStatistics('DirectoryPages', page)
return no_error
end
-- Get links and names from the manga list of the current website.
function GetNameAndLink()
local x = nil
local u = module.RootURL .. DirectoryPagination .. IncStr(url)
--[[Debug]] LuaDebug.WriteLogWithHeader('GetNameAndLink', 'url -> ' .. u)
if not http.Get(u) then return net_problem end
x = TXQuery.Create(http.Document)
x.XPathHREFAll('//div[@id="content"]/div/div[@class="gallery"]/a', links, names)
--[[Debug]] LuaDebug.PrintMangaDirectoryEntries(IncStr(url))
return no_error
end
-- Get the page count for the current chapter.
function GetPageNumber()
local x = nil
local u = MaybeFillHost(module.RootURL, url)
--[[Debug]] LuaDebug.WriteLogWithHeader('GetPageNumber', 'url -> ' .. u)
if not http.Get(u) then return net_problem end
x = TXQuery.Create(http.Document)
x.XPathStringAll('//a[@class="gallerythumb"]/@href', task.PageContainerLinks)
task.PageNumber = task.PageContainerLinks.Count
--[[Debug]] LuaDebug.PrintChapterPageLinks()
--[[Debug]] LuaDebug.WriteStatistics('ChapterPages', task.PageContainerLinks.Count .. ' (' .. u .. ')')
return no_error
end
-- Extract/Build/Repair image urls before downloading them.
function GetImageURL()
local u = MaybeFillHost(module.RootURL, task.PageContainerLinks[workid])
if http.Get(u) then
task.PageLinks[workid] = TXQuery.Create(http.document).XPathString('//section[@id="image-container"]//img/@src')
return true return true
else
return false
end end
return true
return false
end end
function getdirectorypagenumber()
if http.get(module.rooturl) then
page=tonumber(TXQuery.Create(http.document).xpathstring('//a[@class="last"]/@href/substring-after(.,"=")'))
return no_error
else
return net_problem
end
end
function getnameandlink() ----------------------------------------------------------------------------------------------------
if http.get(module.rooturl..'/?page='..IncStr(url)) then -- Module Initialization
TXQuery.Create(http.document).xpathhrefall('//*[@id="content"]/div/div[@class="gallery"]/a',links,names) ----------------------------------------------------------------------------------------------------
return no_error
else
return net_problem
end
end
function AddWebsiteModule(name, url, cat)
local m=NewModule()
m.category=cat
m.website=name
m.rooturl=url
m.ongetinfo='getinfo'
m.ongetpagenumber='getpagenumber'
m.ongetdirectorypagenumber='getdirectorypagenumber'
m.ongetnameandlink='getnameandlink'
m.sortedlist=true
return m
end
function Init() function Init()
local cat = 'H-Sites' AddWebsiteModule('NHentai', 'https://nhentai.net', 'H-Sites')
AddWebsiteModule('NHentai', 'https://nhentai.net', cat) AddWebsiteModule('HentaiHand', 'https://hentaihand.com', 'H-Sites')
AddWebsiteModule('HentaiHand', 'https://hentaihand.com', cat) end
function AddWebsiteModule(name, url, category)
local m = NewModule()
m.Website = name
m.RootURL = url
m.Category = category
m.OnGetInfo = 'GetInfo'
m.OnGetDirectoryPageNumber = 'GetDirectoryPageNumber'
m.OnGetNameAndLink = 'GetNameAndLink'
m.OnGetPageNumber = 'GetPageNumber'
m.OnGetImageURL = 'GetImageURL'
m.SortedList = True
return m
end end