nhentai

package module
v0.0.0-...-5797419 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 17, 2022 License: MIT Imports: 10 Imported by: 0

README

NHENTAI-GO

nHentai api with golang

Features

  • List or search comics
  • Get comic info and comic page images

Usage

package main

// import the package
import "github.com/niuhuan/nhentai-go"
import "net/http"
import "net/url"
import "time"

func main() {
	// new client
	client := nhentai.Client{}
	// set proxy (optional)
	proxyUrl, proxyErr := url.Parse("socks5://127.0.0.1:1080")
	proxy := func(_ *http.Request) (*url.URL, error) {
		return proxyUrl, proxyErr
	}
	client.Transport = &http.Transport{
		Proxy:                 proxy,
		TLSHandshakeTimeout:   time.Second * 10,
		ExpectContinueTimeout: time.Second * 10,
		ResponseHeaderTimeout: time.Second * 10,
		IdleConnTimeout:       time.Second * 10,
	}

	// get comic page 
	// data, err := client.Comics(3)

	// get comic page by tag
	// data, err := client.ComicsByTagName("group", 1)

	// get comic info
	// data, err := client.ComicInfo(382384)

	// get tags page
	// data, err := client.Tags(1)

	// print comic page picture url
	// println(client.PageUrl(2075216, 2, "j"))
}

Documentation

Index

Constants

View Source
const ConditionString = "string"

ConditionString 会加了双引号在放入搜索框

View Source
const ConditionTag = "tag"

ConditionTag 标签

View Source
const MirrorOrigin = "nhentai.net"
View Source
const TagLanguageChinese = 29963
View Source
const TagLanguageEnglish = 12227
View Source
const TagLanguageJapanese = 6346

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	// http.Client 继承HTTP客户端
	http.Client
	Cookie    string
	UserAgent string
}

Client nHentai客户端

func (*Client) ComicByRawCondition

func (c *Client) ComicByRawCondition(conditions string, page int) (*ComicPageData, error)

ComicByRawCondition 搜索 https://nhentai.net/search/?q=${urlEncode(conditions)}&page=${page}

func (*Client) ComicInfo

func (c *Client) ComicInfo(id int) (*ComicInfo, error)

ComicInfo 获取漫画的信息

func (*Client) Comics

func (c *Client) Comics(page int) (*ComicPageData, error)

Comics 列出漫画 https://nhentai.net/?page=1

func (*Client) ComicsByCondition

func (c *Client) ComicsByCondition(conditions []Condition, page int) (*ComicPageData, error)

func (*Client) ComicsByTagName

func (c *Client) ComicsByTagName(tag string, page int) (*ComicPageData, error)

ComicsByTagName 列出标签下的漫画 https://nhentai.net/tag/group/?page=1

func (*Client) CoverUrl

func (c *Client) CoverUrl(mediaId int, t string) string

CoverUrl 拼接封面的URL "https://t.nhentai.net/galleries/{media_id}/cover.{cover_ext}"

func (*Client) Get

func (c *Client) Get(url string) (*http.Response, error)

func (*Client) GetExtension

func (c *Client) GetExtension(t string) string

GetExtension 使用type获得拓展名

func (*Client) PageThumbnailUrl

func (c *Client) PageThumbnailUrl(mediaId int, num int, t string) string

PageThumbnailUrl https://t5.nhentai.net/galleries/{media_id}/{num}t.{extension} {num} is {index + 1} (begin is 1)

func (*Client) PageUrl

func (c *Client) PageUrl(mediaId int, num int, t string) string

PageUrl https://i.nhentai.net/galleries/{media_id}/{num}.{extension} {num} is {index + 1} (begin is 1)

func (*Client) Tags

func (c *Client) Tags(page int) (*TagPageData, error)

Tags 获取标签 https://nhentai.net/tags/?page=1

func (*Client) ThumbnailUrl

func (c *Client) ThumbnailUrl(mediaId int, t string) string

ThumbnailUrl 拼接缩略图的URL "https://t2.nhentai.net/galleries/{media_id}/thumb.{thumbnail_ext}"

type ComicInfo

type ComicInfo struct {
	Id           int             `json:"id"`
	MediaId      int             `json:"media_id"`
	Title        ComicInfoTitle  `json:"title"`
	Images       ComicInfoImages `json:"images"`
	Scanlator    string          `json:"scanlator"`
	UploadDate   int             `json:"upload_date"`
	Tags         []ComicInfoTag  `json:"tags"`
	NumPages     int             `json:"num_pages"`
	NumFavorites int             `json:"num_favorites"`
}

type ComicInfoImages

type ComicInfoImages struct {
	Pages     []ImageInfo `json:"pages"`
	Cover     ImageInfo   `json:"cover"`
	Thumbnail ImageInfo   `json:"thumbnail"`
}

type ComicInfoTag

type ComicInfoTag struct {
	Id    int    `json:"id"`
	Name  string `json:"name"`
	Count int    `json:"count"`
	Type  string `json:"type"`
	Url   string `json:"url"`
}

type ComicInfoTitle

type ComicInfoTitle struct {
	English  string `json:"english"`
	Japanese string `json:"japanese"`
	Pretty   string `json:"pretty"`
}

type ComicPageData

type ComicPageData struct {
	PageData
	Records []ComicSimple `json:"records"`
}

type ComicSimple

type ComicSimple struct {
	Id          int    `json:"id"`
	MediaId     int    `json:"media_id"`
	Title       string `json:"title"`
	TagIds      []int  `json:"tag_ids"`
	Lang        string `json:"lang"`
	Thumb       string `json:"thumb"`
	ThumbWidth  int    `json:"thumb_width"`
	ThumbHeight int    `json:"thumb_height"`
}

type Condition

type Condition struct {
	Type    string `json:"type"`
	Exclude bool   `json:"exclude"`
	Content string `json:"content"`
}

Condition 条件 (双引号会被过滤调)

type ImageInfo

type ImageInfo struct {
	// T type "j" -> jpg
	T string `json:"t"`
	// W width
	W int `json:"w"`
	// H height
	H int `json:"h"`
}

type PageData

type PageData struct {
	PageCount int `json:"page_count"`
}

type TagPageData

type TagPageData struct {
	PageData
	Records []TagPageTag `json:"records"`
}

type TagPageTag

type TagPageTag struct {
	Id    int    `json:"id"`
	Name  string `json:"name"`
	Count string `json:"count"` // like "7k"
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL