progress on convert()
This commit is contained in:
50
main.go
50
main.go
@ -2,6 +2,7 @@ package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"log"
|
||||
"net/url"
|
||||
"os"
|
||||
@ -9,6 +10,7 @@ import (
|
||||
|
||||
"github.com/ncruces/go-sqlite3"
|
||||
_ "github.com/ncruces/go-sqlite3/embed"
|
||||
// "github.com/otiai10/copy"
|
||||
)
|
||||
|
||||
const memory = ":memory:"
|
||||
@ -88,16 +90,31 @@ func getArtistFromUrl(Url string) string {
|
||||
}
|
||||
return unescapedUrl[51:]
|
||||
}
|
||||
if strings.Contains(Url, "kemono.su") {
|
||||
return "Kemono"
|
||||
}
|
||||
if strings.Contains(Url, "coomer.su") {
|
||||
return "Coomer"
|
||||
if strings.Contains(Url, "kemono.su") || strings.Contains(Url, "coomer.su") {
|
||||
return strings.Split(Url, "/")[5]
|
||||
}
|
||||
|
||||
return ""
|
||||
}
|
||||
|
||||
func convert(fileLine string) error {
|
||||
log.Println(fileLine)
|
||||
if strings.Contains(fileLine, "%") {
|
||||
// we can look for specific encoded chars and the remove them and continue instead of returning an error
|
||||
return fmt.Errorf("%s", "URL contains Encoded Unicode and a direct conversion cannot be reasonably made")
|
||||
}
|
||||
artist := getArtistFromUrl(fileLine)
|
||||
log.Println("artist:", artist)
|
||||
//path := fmt.Sprintf("Artists/%s", artist)
|
||||
//log.Println("path:", path)
|
||||
|
||||
if strings.ContainsAny(artist, "!\"#$&'()*,;<>?[\\]^`{|}~") {
|
||||
return fmt.Errorf("%s", "artistName contains disallowed characters and a direct conversion cannot be reasonably made")
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func parseLinks(filename string) error {
|
||||
file, err := os.Open(filename)
|
||||
if err != nil {
|
||||
@ -106,14 +123,27 @@ func parseLinks(filename string) error {
|
||||
|
||||
scanner := bufio.NewScanner(file)
|
||||
for scanner.Scan() {
|
||||
line := scanner.Text()
|
||||
var line string
|
||||
line = scanner.Text()
|
||||
|
||||
if strings.HasPrefix(line, "#") {
|
||||
continue
|
||||
}
|
||||
if !strings.Contains(line, "DBPath") {
|
||||
if !strings.Contains(line, "#") {
|
||||
err = convert(line)
|
||||
if err != nil {
|
||||
log.Printf("error: %s\n", err)
|
||||
continue
|
||||
}
|
||||
continue
|
||||
}
|
||||
/*
|
||||
split_url := strings.Split(line, "#")
|
||||
url := strings.TrimSpace(split_url[0])
|
||||
artist := strings.TrimSpace(split_url[1])
|
||||
|
||||
log.Printf("url: %s\tartist: %s\n", url, artist)
|
||||
*/
|
||||
}
|
||||
|
||||
err = file.Close()
|
||||
@ -136,8 +166,10 @@ func main() {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
artist := getArtistFromUrl("https://rule34.xxx/index.php?page=post&s=list&tags=%27eadole")
|
||||
log.Println("artist from url: ", artist)
|
||||
err = parseLinks("gallery-dl/Rule34.links")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
err = db.Close()
|
||||
if err != nil {
|
||||
|
Reference in New Issue
Block a user