Skip to content

Instantly share code, notes, and snippets.

View scripting's full-sized avatar

Dave Winer scripting

View GitHub Profile
@scripting
scripting / concordkeyboard.js
Created February 6, 2020 18:14
The keyboard manager for the upcoming version of Concord.
// Copyright 2020, Dave Winer
// Copyright 2013, Small Picture, Inc.
var concordKeystrokes = {
"backspace": "backspace",
"tab": "tab",
"return": "return",
"delete": "delete",
"uparrow": "cursor-up",
"downarrow": "cursor-down",
@scripting
scripting / filter.js
Last active April 2, 2020 17:09
Example of a PagePark plug-in
//translate a url in this form: http://my.this.how/davewiner/example.opml
//to a file path like this: /root/apps/littleoutliner/publicFiles/users/davewiner/myOutlines/example.opml
exports.filter = filter;
const folder = "/root/apps/littleoutliner/publicFiles/users/";
function filter (options, callback) {
var url = options.httpRequest.url;
var splits = url.split ("?");
@scripting
scripting / config.json
Created April 11, 2020 15:24
A PagePark config.json file demonstrating the use of mirrors
{
"mirrors": {
"/": "http://scripting.com/images/2020/04/11/driveway.png"
}
}
@scripting
scripting / zipExample.js
Last active April 12, 2020 15:15
Psuedocode for how I'd like zip archivng to work. It gives me full JS to decide if a file belongs or doesn't.
const zip = require ("davezip");
const fs = require ("fs");
const theArchiveFile = zip.createArchive ('outlines.zip");
fs.fileloop ("/users/bullmancuso/publicfiles/", function (err, f) { //I made up fs.fileloop, it would be nice ;-)
if (f.hasExtension (".opml")) {
zip.addToArchive (f, theArchiveFile);
}
});
exports.helloWorld = function () {
return ("hello world");
}
@scripting
scripting / runfilterscript.js
Created April 22, 2020 15:41
Chuck this is how I run filter scripts. I probably will convert to requireFromString.
function runFilterScript (host, callback) { //3/23/20 by DW
var f = getFullFilePath (domainsPath) + host + filterFname;
fs.readFile (f, function (err, data) {
if (err) {
callback (false); //file doesn't exist -- we didn't run the filter script
}
else {
try {
const options = {
httpRequest,
@scripting
scripting / example.sh
Created April 28, 2020 22:20
Run an AWS command line script from a Node app (demo)
#!/bin/sh
aws s3 cp example.sh s3://scripting.com/tmp/example.sh --acl public-read
@scripting
scripting / credentials
Created May 23, 2020 16:31
Example of an AWS credentials file (with random strings in place of actual values)
[default]
aws_access_key_id=udafkgisftiaoo4j37xv
aws_secret_access_key=kxx6njofyi37wvix2ncask8f5gs5dt3qfi2qucyg
@scripting
scripting / gist:60669da00b3b49d49ce3f23543fd99d6
Created July 3, 2020 20:01
Les Orchard's low-level S3 code in Frontier, been running constantly since '06.
on httpClient(method="GET", resource="/", adrParams=nil, content=nil, adrMeta=nil, acl=nil, content_type="", idaccount="default", debug=false, flHttpMessages=false) {
«Changes
«8/24/13; 10:50:08 AM by DW
«If the metadata key is website-redirect-location, then we special-case the addition of the header so as not to add the string "meta-" -- which causes it to break. Not sure if the setting metadata feature ever worked, but this is the most conservative approach to avoiding breakage.
«7/10/06; 8:38:52 PM by DW
«Added flHttpMessages optional param, default false. Determines if HTTP calls display messages in the About window.
«4/11/06; 7:11:53 AM by DW
«Changed name of the compiled xml structure to xstruct. It's generally not a good idea to use the names of built-in tables in naming data or code, although this naming couldn't have hurt anything because it's in a table.
«Fixed the error-handling code. If the server returns an error, we throw a scriptError, but before doing that, we set various
@scripting
scripting / code.js
Created September 5, 2020 15:14
Reading BingeWorthy's RSS feed
const urlfeed = "http://bingeworthy.io/rss.xml";
function httpRequest (url, timeout, headers, callback) {
timeout = (timeout === undefined) ? 30000 : timeout;
var jxhr = $.ajax ({
url: url,
dataType: "text",
headers,
timeout
})