From e41a7bb6d626bf7d27cec95205403ba5af30c97f Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Thu, 19 Mar 2009 16:48:32 -0500 Subject: [PATCH] site-watcher works again --- extra/site-watcher/db/db.factor | 9 +++++++-- extra/site-watcher/site-watcher-tests.factor | 7 ------- extra/site-watcher/site-watcher.factor | 19 ++++++++++--------- 3 files changed, 17 insertions(+), 18 deletions(-) diff --git a/extra/site-watcher/db/db.factor b/extra/site-watcher/db/db.factor index 0c62c7f791..a1a85f825f 100644 --- a/extra/site-watcher/db/db.factor +++ b/extra/site-watcher/db/db.factor @@ -65,9 +65,9 @@ TUPLE: reporting-site email url up? changed? last-up? error last-error ; update-tuple ; : sites-to-report ( -- seq ) - "select account.email, site.url, site.up, site.changed, site.last_up, site.error, site.last_error from account, site, watching_site where account.account_name = watching_site.account_name and site.site_id = watching_site.site_id and site.changed = '1'" sql-query + "select users.email, site.url, site.up, site.changed, site.last_up, site.error, site.last_error from users, site, watching_site where users.username = watching_site.account_name and site.site_id = watching_site.site_id and site.changed = '1'" sql-query [ [ reporting-site boa ] input dup select-tuple [ ] [ dup t >>up? insert-tuple ] ?if ; @@ -90,3 +90,8 @@ PRIVATE> : watching-sites ( username -- sites ) f select-tuples [ site-id>> site new swap >>site-id select-tuple ] map ; + +: site-watcher-path ( -- path ) "site-watcher.db" temp-file ; inline + +: with-site-watcher-db ( quot -- ) + site-watcher-path swap with-db ; inline diff --git a/extra/site-watcher/site-watcher-tests.factor b/extra/site-watcher/site-watcher-tests.factor index 68a4a440f6..dde5e65e7e 100644 --- a/extra/site-watcher/site-watcher-tests.factor +++ b/extra/site-watcher/site-watcher-tests.factor @@ -5,13 +5,6 @@ site-watcher.private kernel db io.directories io.files.temp continuations db.sqlite site-watcher.db.private ; IN: site-watcher.tests -: site-watcher-path ( -- path ) "site-watcher.db" temp-file ; inline - -[ site-watcher-path delete-file ] ignore-errors - -: with-sqlite-db ( quot -- ) - site-watcher-path swap with-db ; inline - :: fake-sites ( -- seq ) [ account ensure-table diff --git a/extra/site-watcher/site-watcher.factor b/extra/site-watcher/site-watcher.factor index 29a66afb13..4808e7c7eb 100644 --- a/extra/site-watcher/site-watcher.factor +++ b/extra/site-watcher/site-watcher.factor @@ -1,9 +1,10 @@ ! Copyright (C) 2009 Doug Coleman. ! See http://factorcode.org/license.txt for BSD license. USING: accessors alarms arrays calendar combinators -combinators.smart continuations debugger http.client -init io.streams.string kernel locals math math.parser -namespaces sequences site-watcher.db site-watcher.db.private smtp ; +combinators.smart continuations debugger http.client fry +init io.streams.string kernel locals math math.parser db +namespaces sequences site-watcher.db site-watcher.db.private +smtp ; IN: site-watcher SYMBOL: site-watcher-from @@ -44,13 +45,13 @@ SYMBOL: running-site-watcher PRIVATE> -: watch-sites ( -- ) - find-sites check-sites sites-to-report send-reports ; +: watch-sites ( db -- ) + [ find-sites check-sites sites-to-report send-reports ] with-db ; -: run-site-watcher ( -- ) - running-site-watcher get [ - [ watch-sites ] site-watcher-frequency get every - running-site-watcher set-global +: run-site-watcher ( db -- ) + [ running-site-watcher get ] dip '[ + [ _ watch-sites ] site-watcher-frequency get every + running-site-watcher set ] unless ; : stop-site-watcher ( -- )