1
1
package main
2
2
3
3
import (
4
+ "database/sql"
4
5
"fmt"
5
6
_ "github.com/go-sql-driver/mysql"
6
7
"github.com/gocolly/colly"
7
- "io"
8
+ "io/ioutil "
8
9
"log"
9
10
"net/http"
10
- "os"
11
11
"strings"
12
+ "time"
12
13
)
13
14
15
+
16
+ const (
17
+ DB_HOST = "tcp(192.168.1.65:3306)"
18
+ DB_NAME = "ideone"
19
+ DB_USER = /*"root"*/ "root"
20
+ DB_PASS = /*""*/ "nanomader#!$!%("
21
+ )
22
+
23
+
14
24
func getRecentLinks () (string , string ) {
15
25
c := colly .NewCollector (colly .AllowedDomains ("ideone.com" ))
16
26
@@ -32,35 +42,56 @@ func getRecentLinks() (string, string) {
32
42
33
43
func main () {
34
44
links , result := getRecentLinks ()
35
- fmt .Print (result )
45
+ //jdbc:mariadb://192.168.1.65:3306/ideone
46
+ dsn := DB_USER + ":" + DB_PASS + "@" + DB_HOST + "/" + DB_NAME + "?charset=utf8"
47
+ db , err := sql .Open ("mysql" , dsn )
48
+ checkErr (err )
36
49
37
50
split := strings .Split (links , ";" )
38
- split = split [1 :49 ]
39
- for _ , k := range split {
40
- fmt .Printf ( "https://ideone.com/plain/%s \n " , k [ 1 :] )
51
+ split = split [1 :50 ]
52
+ for i , k := range split {
53
+ fmt .Println ( "----------" )
41
54
var url = "https://ideone.com/plain/" + k [1 :]
42
55
43
56
response , err := http .Get (url )
44
57
if err != nil {
45
58
log .Fatal (err )
46
59
} else {
47
60
defer response .Body .Close ()
48
- _ , err := io .Copy (os .Stdout , response .Body )
49
- if err != nil {
50
- log .Fatal (err )
61
+ html , err := ioutil .ReadAll (response .Body )
62
+ var txt string = string (html )
63
+ fmt .Println (len (html ))
64
+ // fullurl VARCHAR(60),
65
+ // codedate VARCHAR(60),
66
+ // codekey VARCHAR(30),
67
+ // size BIGINT,
68
+ // codelines BIGINT,
69
+ // language VARCHAR(30),
70
+ // status VARCHAR(30),
71
+ // txt LONGTEXT,
72
+ stmt , err := db .Prepare ("INSERT INTO IE (fullurl, codedate, codekey, size, codelines, language, " +
73
+ "status, txt) VALUES (?,?,?,?,?,?,?,?)" )
74
+ checkErr (err )
75
+
76
+ currentTime := time .Now ()
77
+ res , err := stmt .Exec (url , currentTime .Format ("2006-01-02 15:04:05" ), k [1 :], len (html ),
78
+ strings .Count (txt , "\n " ), "language" , result [i ], txt )
79
+ if res == nil {
80
+
51
81
}
82
+ checkErr (err )
52
83
}
53
- }
54
-
55
- //jdbc:mariadb://192.168.1.65:3306/ideone
56
- //db, err := sql.Open("mysql", "jdbc:mariadb://192.168.1.65:3306/ideone")
57
- //checkErr(err)
58
84
85
+ fmt .Println (result [i ], ", " , url )
86
+ fmt .Println ("____" )
87
+ }
59
88
60
89
}
61
90
62
91
func checkErr (err error ) {
63
92
if err != nil {
93
+ fmt .Println ("ERROR!" )
94
+ log .Fatal (err )
64
95
panic (err )
65
96
}
66
97
}
0 commit comments