Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

[REBOL] mailing list stats

From: gchiu:compkarori at: 8-May-2001 20:42

I think I'm posting way too much :-( Rebol [ Title: "Newsgroup posters" Date: [ 8-May-2001 ] Author: "Graham Chiu" File: %newstats.r Notes: { find who has been posting to the Rebol newsgroups } ] ; First some supporting code of Jeff's do load-thru http://www.codeconscious.com/rebol-library/scroll-face.r targeturl: http://www.escribe.com/internet/rebol/index.html?by=Date&nnames: copy [] rule: [ some [ thru "[REBOL]" to <B> thru <B> copy author to </B> ( append names author ) ] ] ; see how many pages there are ; it's in this format : "Date Index page 1 of 86. [" parse read join targeturl 1 [ thru "Date Index page 1 of " copy NoOfPages to "." ] NoOfPages: to-integer NoOfPages data: copy [] ; NoOfPages: 30 cnt: 0 loop NoOfPages [ cnt: cnt + 1 parse read join targeturl cnt rule ] UniqueAuthors: unique names ; to return the minimum pair possible from 2 pairs minpair: func [ p1 [pair!] p2 [pair!] /local xy ] [ xy: make pair! 0x0 xy/x: min p1/x p2/x xy/y: min p1/y p2/y return xy ] Occurences: func [ name [string!] /local counter ][ counter: 0 foreach poster names [ if equal? poster name [ counter: counter + 1 ] ] return counter ] ; now to build up a block of statistics - [ name1 posts1 name2 posts2 name3 posts3 ] foreach author UniqueAuthors [ ; count each occurrence of author in names append data reduce [ Occurences author author ] ] data: sort/reverse/skip data 2 lo: copy { banner "Rebol Newsgroup Stats - top 100" space 4x0 } boxsize: 10x10 across: "across box blue " txt: " txt ^"" ret: "^" return " ; only want the top 100 data: copy/part data 200 foreach [ cnt name ] data [ boxsize/x: cnt append lo reduce [ across boxsize txt name "(" cnt ")" ret ] ] lom: layout load lo view center-face scroll-face lom minpair lom/size ( system/view/screen-face/size - 50x50 ) -- Graham Chiu