@@ -3,6 +3,7 @@ package main
3
3
import (
4
4
"database/sql"
5
5
"fmt"
6
+ "github.com/go-sql-driver/mysql"
6
7
_ "github.com/go-sql-driver/mysql"
7
8
"github.com/gocolly/colly"
8
9
"github.com/rakanalh/scheduler"
@@ -49,20 +50,15 @@ func main() {
49
50
checkErr (err )
50
51
memStorage := storage .NewMemoryStorage ()
51
52
s := scheduler .New (memStorage )
52
-
53
53
fmt .Println ("Im good at school three huna worldwide" )
54
-
55
- stmt , err := db .Prepare ("INSERT INTO IE (fullurl, codedate, codekey, size, codelines, language, " +
56
- "status, txt) VALUES (?,?,?,?,?,?,?,?)" )
57
-
58
- if _ , err := s .RunEvery (30 * time .Second , scrapIdeone , db , stmt ); err != nil {
54
+ if _ , err := s .RunEvery (40 * time .Second , scrapIdeone , db ); err != nil {
59
55
log .Fatal (err )
60
56
}
61
57
s .Start ()
62
58
s .Wait ()
63
59
}
64
60
65
- func scrapIdeone (db * sql.DB , stmt * sql. Stmt ) {
61
+ func scrapIdeone (db * sql.DB ) {
66
62
links , result := getRecentLinks ()
67
63
//jdbc:mariadb://192.168.1.65:3306/ideone
68
64
@@ -82,19 +78,31 @@ func scrapIdeone(db *sql.DB, stmt *sql.Stmt) {
82
78
} else {
83
79
defer response .Body .Close ()
84
80
html , err := ioutil .ReadAll (response .Body )
85
- var txt string = string (html )
81
+ print (response .Header .Get ("Content-Disposition" ))
82
+ get := response .Header .Get ("Content-Disposition" )
83
+ fmt .Println ("get: " , get )
84
+ start := strings .Index (get , "=\" " )
85
+ fmt .Println (start )
86
+ filename := get [(start + 1 ):]
87
+ language := filename [strings .Index (filename , "." )+ 1 : len (filename )- 1 ]
88
+
89
+ var txt = string (html )
86
90
fmt .Println (len (html ))
87
-
91
+ stmt , err := db .Prepare ("INSERT INTO IE (fullurl, codedate, codekey, size, codelines, language, " +
92
+ "status, txt) VALUES (?,?,?,?,?,?,?,?)" )
88
93
checkErr (err )
89
94
90
95
currentTime := time .Now ()
91
- res , err := stmt .Exec (url , currentTime .Format ("2006-01-02 15:04:05" ), k [1 :], len (html ),
92
- strings .Count (txt , "\n " ), "language" , results [i ], txt )
93
- if res == nil {
94
-
96
+ _ , err = stmt .Exec (url , currentTime .Format ("2006-01-02 15:04:05" ), k [1 :], len (html ),
97
+ strings .Count (txt , "\n " ), language , results [i ], txt )
98
+ if err != nil {
99
+ me , _ := err .(* mysql.MySQLError )
100
+ if me .Number == 1062 {
101
+ fmt .Println ("It already exists in a database. " , err )
102
+ } else {
103
+ checkErr (err )
104
+ }
95
105
}
96
- checkErr (err )
97
-
98
106
}
99
107
100
108
fmt .Println (result [i ], ", " , url )
0 commit comments