11package main
22
33import (
4+ "database/sql"
45 "fmt"
56 _ "github.com/go-sql-driver/mysql"
67 "github.com/gocolly/colly"
7- "io"
8+ "io/ioutil "
89 "log"
910 "net/http"
10- "os"
1111 "strings"
12+ "time"
1213)
1314
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+
1424func getRecentLinks () (string , string ) {
1525 c := colly .NewCollector (colly .AllowedDomains ("ideone.com" ))
1626
@@ -32,35 +42,56 @@ func getRecentLinks() (string, string) {
3242
3343func main () {
3444 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 )
3649
3750 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 ( "----------" )
4154 var url = "https://ideone.com/plain/" + k [1 :]
4255
4356 response , err := http .Get (url )
4457 if err != nil {
4558 log .Fatal (err )
4659 } else {
4760 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+
5181 }
82+ checkErr (err )
5283 }
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)
5884
85+ fmt .Println (result [i ], ", " , url )
86+ fmt .Println ("____" )
87+ }
5988
6089}
6190
6291func checkErr (err error ) {
6392 if err != nil {
93+ fmt .Println ("ERROR!" )
94+ log .Fatal (err )
6495 panic (err )
6596 }
6697}
0 commit comments