├── 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 | --------------------------------------------------------------------------------