aboutsummaryrefslogtreecommitdiff
path: root/scm/dictrans.scm
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2006-03-17 20:00:42 +0000
committerSergey Poznyakoff <gray@gnu.org.ua>2006-03-17 20:00:42 +0000
commitd1880fada241c00b42f883c3a34e9becaaa64796 (patch)
tree03a2bdf46ced05908734343238a1ac8aa7535f7e /scm/dictrans.scm
parent72a22b4e3a0d32c1e741e5c625eed8d142531ef5 (diff)
downloadellinika-d1880fada241c00b42f883c3a34e9becaaa64796.tar.gz
ellinika-d1880fada241c00b42f883c3a34e9becaaa64796.tar.bz2
(DICT): Mandatory attribute LANG.
(update-stat): Rewrite to match new table structure. (check-node,insert-node): Take destination language code as 3rd argument. All callers changed. git-svn-id: file:///home/puszcza/svnroot/ellinika/trunk@363 941c8c0f-9102-463b-b60b-cd22ce0e6858
Diffstat (limited to 'scm/dictrans.scm')
-rw-r--r--scm/dictrans.scm52
1 files changed, 35 insertions, 17 deletions
diff --git a/scm/dictrans.scm b/scm/dictrans.scm
index 39791fd..115ea58 100644
--- a/scm/dictrans.scm
+++ b/scm/dictrans.scm
@@ -300,3 +300,3 @@
(newline)))
- (set! node-list (cons current-node node-list)))
+ (set! node-list (cons node node-list)))
@@ -336,2 +336,6 @@
(tag attr)
+ (let ((lang (xmltrans:attr attr "LANG")))
+ (if (not lang)
+ (xmltrans:parse-error #f "Required attribute LANG not specified"))
+ (push-node lang))
#f)
@@ -688,9 +692,14 @@
(define (update-stat conn)
- (let ((count (query-number conn "SELECT count(*) from dict")))
- (run-query conn "DELETE from stat");
- (run-query conn
- (string-append
- "INSERT INTO stat (count,updated) VALUES("
- (number->string count)
- ",now())"))))
+ (run-query conn "DELETE FROM stat")
+ (for-each
+ (lambda (res)
+ (run-query conn
+ (string-append
+ "INSERT INTO stat (lang,count,updated) VALUES('"
+ (list-ref res 0) "',"
+ (list-ref res 1)
+ ",now())")))
+ (run-query
+ conn
+ "SELECT articles.lang,count(distinct dict.word) FROM dict,articles WHERE dict.ident=articles.ident GROUP BY 1")))
@@ -734,3 +743,3 @@
-(define (check-node conn node)
+(define (check-node conn node lang)
(call-with-current-continuation
@@ -763,3 +772,3 @@
-(define (insert-node conn node)
+(define (insert-node conn node lang)
(letrec ((insert-link (lambda (type value)
@@ -855,5 +864,6 @@
(format #f
- "INSERT INTO articles VALUES (~A, ~A, \"~A\")"
+ "INSERT INTO articles VALUES (~A, ~A, '~A', \"~A\")"
dict-index
article-index
+ lang
text))
@@ -993,8 +1003,16 @@ Informational options:
(insert-categories conn)
-
- (for-each
- (lambda (node)
- (and (check-node conn node)
- (insert-node conn node)))
- (reverse node-list))
+
+ (let ((lang #f))
+ (for-each
+ (lambda (node)
+ (cond
+ ((string? node)
+ (set! lang node))
+ ((vector? node)
+ (and (check-node conn node lang)
+ (insert-node conn node lang)))
+ (else
+ (display "Unexpected node type!\n")
+ (exit 1))))
+ (reverse node-list)))

Return to:

Send suggestions and report system problems to the System administrator.