summaryrefslogtreecommitdiff
path: root/crawler/post_process.go
diff options
context:
space:
mode:
authorhorus2018-02-19 21:22:30 +0100
committerhorus2018-02-19 21:22:30 +0100
commit6b509b3997c8de0181787224090af98768e3e735 (patch)
treeabf1682af200d7537ce1b15e34900a0e08f58e92 /crawler/post_process.go
parentf95995af8364ab9fd7106c050455e2d1f71c7ecd (diff)
downloadalkobote-6b509b3997c8de0181787224090af98768e3e735.tar.gz
Adds repair function. (crawler)
Diffstat (limited to 'crawler/post_process.go')
-rw-r--r--crawler/post_process.go62
1 files changed, 60 insertions, 2 deletions
diff --git a/crawler/post_process.go b/crawler/post_process.go
index 40845b9..608592f 100644
--- a/crawler/post_process.go
+++ b/crawler/post_process.go
@@ -1,6 +1,7 @@
package main
import (
+ "fmt"
"io/ioutil"
"net/http"
"net/url"
@@ -12,11 +13,23 @@ func (app *App) post_process() error {
if app.Config.DisableURLShorter {
log.Debug("post_process.go: URL Shorter is disabled (via config)")
- return nil
} else {
- return app.short_url()
+ err := app.short_url()
+ if err != nil {
+ return err
+ }
}
+ // reruns sanitizing functions over database
+ if app.Config.FixDatabase {
+ err := app.fix_db()
+ if err != nil {
+ return err
+ }
+ }
+
+ return nil
+
}
func (app *App) short_url() error {
@@ -73,3 +86,48 @@ func (app *App) short_url() error {
return nil
}
+func (app *App) fix_db() error {
+
+ query := `SELECT id,name,age FROM all_view`
+
+ rows, err := app.DB.Queryx(query)
+ if err != nil {
+ return err
+ }
+ defer rows.Close()
+
+ for rows.Next() {
+ var offer_db Angebot
+ err = rows.StructScan(&offer_db)
+ if err != nil {
+ return err
+ }
+
+ update_query := `UPDATE angebot SET name = ?, age = ? WHERE id = ?`
+ update_name := false
+ update_age := false
+ name := sanitize_name(offer_db.Name)
+ age := get_age_from_name(name)
+ if name != offer_db.Name {
+ offer_db.Name = name
+ update_name = true
+ }
+ if age != offer_db.Age {
+ offer_db.Age = age
+ update_age = true
+ }
+
+ if update_name || update_age {
+ log.Debug(`UPDATE angebot SET name = "%s", age = %d WHERE id = %d`, offer_db.Name, offer_db.Age, offer_db.Id)
+ _, err = app.DB.Exec(update_query, offer_db.Name, offer_db.Age, offer_db.Id)
+ if err != nil {
+ offer_db.error_msg = err.Error()
+ offer_db.error_ctx = fmt.Sprintf(`UPDATE angebot SET name = "%s", age = %d WHERE id = %d`, offer_db.Name, offer_db.Age, offer_db.Id)
+ WarnOffer(offer_db, "post_process.go: Update query failed.")
+ }
+ }
+
+ }
+
+ return nil
+}