From 5d3bffa516c3b6ab9a728e34609ca8ad59f1ca8e Mon Sep 17 00:00:00 2001 From: Urban Guacamole Date: Tue, 22 Oct 2019 17:00:53 +0200 Subject: [PATCH] Tweak seedleech For optimal freshness --- seedleech-daemon/config.toml | 3 +-- seedleech-daemon/seedleech-daemon.go | 11 +++++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/seedleech-daemon/config.toml b/seedleech-daemon/config.toml index 18fff75..300acb7 100644 --- a/seedleech-daemon/config.toml +++ b/seedleech-daemon/config.toml @@ -2,5 +2,4 @@ trackers = ["udp://tracker.coppersurfer.tk:6969", "udp://tracker.pirateparty.gr: waitTime = "500ms" logInterval = "5m" -categories = { 0 = "1440h", 1 = "720h", 3 = "240h", 10 = "120h", 100 = "24h", 1000 = "12h", 2000 = "6h", 3000 = "3h"} - \ No newline at end of file +categories = { 0 = "1440h", 1 = "720h", 3 = "240h", 10 = "180h", 100 = "24h", 1000 = "10h", 2000 = "4h", 3000 = "2h"} diff --git a/seedleech-daemon/seedleech-daemon.go b/seedleech-daemon/seedleech-daemon.go index a14f394..3763653 100644 --- a/seedleech-daemon/seedleech-daemon.go +++ b/seedleech-daemon/seedleech-daemon.go @@ -71,7 +71,7 @@ func main() { freshlimit := time.Now().Local().Add(-maxAge) if minSeed != 0 { var res int - row := db.QueryRow("SELECT count(1) FROM trackerdata WHERE tracker = $1 AND seeders > $2 AND scraped < $3)", tracker, minSeed, freshlimit) + row := db.QueryRow("SELECT count(1) FROM trackerdata WHERE tracker = $1 AND seeders > $2 AND scraped < $3", tracker, minSeed, freshlimit) row.Scan(&res) if res > 0 { fmt.Println("Tracker " + tracker + ", seeds > " + strconv.Itoa(minSeed) + ": " + strconv.Itoa(res)) @@ -105,7 +105,7 @@ func runWorkFetcher(trackerRequests chan []string, tracker string, minseed int, if minseed != 0 { rows, err = db.Query("SELECT infohash FROM trackerdata WHERE tracker = $1 AND seeders > $2 AND scraped < $3 LIMIT 630", tracker, minseed, freshlimit) } else { - time.Sleep(time.Duration(int64(rand.Intn(6000)) * int64(time.Second))) //sleep for random time between 100 mins and 0 + time.Sleep(time.Duration(int64(rand.Intn(6000)+6000) * int64(time.Second))) //sleep for random time between 100 mins and 200 mins rows, err = db.Query("SELECT infohash FROM torrent WHERE NOT EXISTS (SELECT from trackerdata WHERE infohash = torrent.infohash AND tracker = $1 AND scraped > $2) LIMIT 6300", tracker, freshlimit) } if err != nil { @@ -170,13 +170,12 @@ func runPersister(trackerResponses chan trackerResponse, db *sql.DB) { _, err := db.Exec("INSERT INTO trackerdata (infohash, tracker, seeders, leechers, completed, scraped) VALUES ($1, $2, $3, $4, $5, $6)", scrapeResult.Infohash, res.tracker, scrapeResult.Seeders, scrapeResult.Leechers, scrapeResult.Completed, timestamp) if pgerr, ok := err.(*pq.Error); ok { if pgerr.Code == "23505" { - //handle duplicate insert - } else { - log.Fatal(err) - _, err := db.Exec("UPDATE trackerdata SET seeders = $3, leechers = $4, completed = $5, scraped = $6 WHERE infohash = $1 AND trakcer = $2", scrapeResult.Infohash, res.tracker, scrapeResult.Seeders, scrapeResult.Leechers, scrapeResult.Completed, timestamp) + _, err := db.Exec("UPDATE trackerdata SET seeders = $3, leechers = $4, completed = $5, scraped = $6 WHERE infohash = $1 AND tracker = $2", scrapeResult.Infohash, res.tracker, scrapeResult.Seeders, scrapeResult.Leechers, scrapeResult.Completed, timestamp) if err != nil { log.Fatal(err) } + } else { + log.Fatal(err) } } }