Monday, November 08, 2010 at 12:05 AM.
system.verbs.builtins.radio.weblog.getSkipHours
on getSkipHours (adrblog=radio.weblog.init ()) {
<<Changes
<<12/16/02; 3:49:48 AM by DW
<<For European users (with positive timezones), we sometimes get negative numbers from the mod operator; so add special logic that mods negative hours into positive ones.
<<11/9/02; 7:47:17 AM by DW
<<If we have enough data in weblogData.stats.hourlyUpdateCounts, generate a list of hours aggregators can skip.
<<Returns the empty list if disabled or not enough data, or if there's an error.
try {
if not adrblog^.prefs.flGenerateSkipHours { //feature disabled
return ({})};
local (counts = adrblog^.stats.hourlyUpdateCounts, i);
bundle { //if total number of updates is less than 100, don't bother
local (cttotal = 0);
for i = 1 to sizeof (counts) {
cttotal = cttotal + counts [i]};
if cttotal < 100 {
return ({})}};
bundle { //sort the counts
local (oldtarget = target.set (@counts));
table.sortby ("Value");
target.set (oldtarget)};
bundle { //build and return the list
local (skiplist = {}, tz = (date.getCurrentTimeZone () / 3600));
tz = 1; //debugging
for i = 1 to adrblog^.prefs.ctSkipHours {
h = number (nameof (counts [i]));
h = ((h - tz) % 24);
if h < 0 { //12/16/02 by DW
h = 24 + h};
skiplist = skiplist + h};
return (skiplist)}}
else {
return ({})}};
bundle { //test code
dialog.alert (getSkipHours ())}
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.