├── README.md
└── main.go
/README.md:
--------------------------------------------------------------------------------
1 | # nhentai
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | Scrap nhentai content to discord
10 |
11 | ## Installation
12 | ```
13 | go get -u github.com/vsec7/nhentai
14 | ```
15 |
16 | ## Usage :
17 | ```
18 | nhentai -t -c
19 | ```
20 |
21 | ## General Questions
22 |
23 | [?] How to find the token ? READ HERE
24 |
25 | [?] How to find the channel id ?
26 |
27 | https://discord.com/channels/8173952126616XXXXX/<8174070495026XXXXX> <= Channel ID
28 |
29 | ## Dependencies
30 | - github.com/bwmarrin/discordgo
31 |
--------------------------------------------------------------------------------
/main.go:
--------------------------------------------------------------------------------
1 | package main
2 |
3 | import (
4 | "flag"
5 | "fmt"
6 | "os"
7 | "regexp"
8 | "os/signal"
9 | "syscall"
10 | "net/http"
11 | "io/ioutil"
12 | "strings"
13 | "github.com/bwmarrin/discordgo"
14 | )
15 |
16 |
17 | var (
18 | Token string
19 | ChanID string
20 | client = http.Client{}
21 | )
22 |
23 | func init() {
24 |
25 | flag.StringVar(&Token, "t", "", "BOT Token")
26 | flag.StringVar(&ChanID, "c", "", "Channel ID")
27 | flag.Parse()
28 | }
29 |
30 | func main() {
31 |
32 | dg, err := discordgo.New("Bot " + Token)
33 | if err != nil {
34 | fmt.Println("error creating Discord session,", err)
35 | return
36 | }
37 |
38 | dg.AddHandler(messageCreate)
39 | dg.Identify.Intents = discordgo.IntentsGuildMessages
40 |
41 | err = dg.Open()
42 | if err != nil {
43 | fmt.Println("error opening connection,", err)
44 | return
45 | }
46 |
47 | fmt.Println("Bot is now running. Press CTRL-C to exit.")
48 | sc := make(chan os.Signal, 1)
49 | signal.Notify(sc, syscall.SIGINT, syscall.SIGTERM, os.Interrupt, os.Kill)
50 | <-sc
51 |
52 | dg.Close()
53 | }
54 |
55 |
56 | func messageCreate(s *discordgo.Session, m *discordgo.MessageCreate) {
57 |
58 | if m.Author.ID == s.State.User.ID {
59 | return
60 | }
61 |
62 | if m.Content == "!help" {
63 | msgs := "> [?] List Command :\n`!help`\n`!nhentai `"
64 | s.ChannelMessageSend( ChanID, msgs)
65 | }
66 |
67 | if strings.Contains(m.Content, "!nhentai") == true {
68 |
69 | cmd := strings.Split(m.Content, " ")
70 |
71 | if len(cmd) > 1 {
72 |
73 | resp, _ := client.Get("https://nhentai.net/g/" + cmd[1])
74 |
75 | defer resp.Body.Close()
76 |
77 | data, _ := ioutil.ReadAll(resp.Body)
78 |
79 | title := regexp.MustCompile(`(?i) [!] ID Not Found")
84 | } else {
85 |
86 | c := len(pic)
87 | i := 1
88 | img := pic[0:c-5]
89 |
90 | for _, o := range img {
91 | reqImg, _ := client.Get(string(o[1]))
92 | msgs := fmt.Sprintf(">>> ID: %s\nTitle: %s\nPage: %d/%d", cmd[1], title[0][1], i, c-5)
93 | s.ChannelFileSendWithMessage( ChanID, msgs, "x.jpg", reqImg.Body)
94 | i++
95 | }
96 | }
97 |
98 | } else {
99 | s.ChannelMessageSend(m.ChannelID, "> [!] Usage: \n`!nhentai 350388`")
100 | }
101 |
102 | }
103 |
104 | }
105 |
--------------------------------------------------------------------------------