Warning: session_start(): open(/var/lib/php/sessions/sess_od8403s098364e9kbq8oqj71ov, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
!7
concept Page {
S url;
S mimeType;
long loadedWhen, loadTime;
bool shouldLoad;
File contentsFile() {
ret javaxCachesDir("Loaded Web Pages/" + uniqueFileNameUsingMD5_80_v2(url));
}
long contentSize() { ret l(contentsFile()); }
}
cmodule MultiWebpageLoader > DynCRUD {
start {
indexConceptField(Page, 'url);
}
afterVisualize {
addButton("Add URL...", rThreadEnter {
inputText("URL to load", voidfunc(S url) enter {
addURLIfNotKnown(url);
});
});
}
void loadAPage(Page page) {
long loadedWhen = now();
cset(page, shouldLoad := false, +loadedWhen, mimeType := null);
S mimeType;
try {
byte[] content = loadBinaryPage(page.url);
saveFile(page.contentsFile(), content);
mimeType = or2(lookupPossiblyIgnoreCase(loadBinaryPage_responseHeaders!, "Content-Type"), "?");
} catch print e {
mimeType = "ERROR: " + exceptionToStringShort(e);
}
long loadTime = now()-loadedWhen;
cset(page, +loadTime, +mimeType);
}
// API
void addURLIfNotKnown(S url) {
cset(uniq_returnIfNew Page(+url), shouldLoad := true);
}
}