@@ -3,6 +3,7 @@ package main
33import (
44 "database/sql"
55 "fmt"
6+ "github.com/go-sql-driver/mysql"
67 _ "github.com/go-sql-driver/mysql"
78 "github.com/gocolly/colly"
89 "github.com/rakanalh/scheduler"
@@ -49,20 +50,15 @@ func main() {
4950 checkErr (err )
5051 memStorage := storage .NewMemoryStorage ()
5152 s := scheduler .New (memStorage )
52-
5353 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 {
5955 log .Fatal (err )
6056 }
6157 s .Start ()
6258 s .Wait ()
6359}
6460
65- func scrapIdeone (db * sql.DB , stmt * sql. Stmt ) {
61+ func scrapIdeone (db * sql.DB ) {
6662 links , result := getRecentLinks ()
6763 //jdbc:mariadb://192.168.1.65:3306/ideone
6864
@@ -82,19 +78,31 @@ func scrapIdeone(db *sql.DB, stmt *sql.Stmt) {
8278 } else {
8379 defer response .Body .Close ()
8480 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 )
8690 fmt .Println (len (html ))
87-
91+ stmt , err := db .Prepare ("INSERT INTO IE (fullurl, codedate, codekey, size, codelines, language, " +
92+ "status, txt) VALUES (?,?,?,?,?,?,?,?)" )
8893 checkErr (err )
8994
9095 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+ }
95105 }
96- checkErr (err )
97-
98106 }
99107
100108 fmt .Println (result [i ], ", " , url )
0 commit comments