Skip to content

Instantly share code, notes, and snippets.

View scripting's full-sized avatar

Dave Winer scripting

View GitHub Profile
@scripting
scripting / bingeworthy.sql
Created December 1, 2023 15:12
SQL code to create Bingeworthy database
View bingeworthy.sql
create table programs (
id varchar (255),
type varchar (32),
title varchar (255),
screenname varchar (255),
approved boolean,
whencreated datetime,
whenmodified datetime,
primary key (id)
);
View riverReader.js
const urlRiver = "https://feedland.org/getriverfromreadinglist?url=https://lists.feedcorps.org/artshow.opml";
function httpRequest (url, timeout, headers, callback) {
timeout = (timeout === undefined) ? 30000 : timeout;
var jxhr = $.ajax ({
url: url,
dataType: "text",
headers,
timeout
})
@scripting
scripting / config.json
Created October 2, 2023 14:56
An example of a PagePark config.json file to access a private repo via the web
View config.json
{
"githubServeFrom": {
"username": "scripting",
"repository": "SomePrivateRepo",
"path": "docs",
"accessToken": "hellofromsanjose"
},
"indexFilename": "README",
"urlDefaultMarkdownTemplate": "https://s3.amazonaws.com/scripting.com/code/feedland/docswebsite/markdowntemplate.txt",
"pageParams": {
@scripting
scripting / testUserDatafile.js
Last active September 24, 2023 22:04
The test FeedLand runs to be sure static memory is working by calling the server to set and get a JSON file
View testUserDatafile.js
function testUserDatafiles (ctsecs=0) { //9/19/23 by DW
function oneTest (callback) {
const fname = "test.json", whenstart = new Date ();
var theTestData = {
theArray: new Array ()
}
for (var i = 1; i <= 15; i++) {
theTestData.theArray.push (getRandomSnarkySlogan ());
}
uploadUserDataFile (fname, jsonStringify (theTestData), "application/json", true, function (err, data) {
View gist:bb9efb24b34d71380ba74a99deefd704
function testUserDatafiles (ctsecs=0) { //9/19/23 by DW
const fname = "test.json", whenstart = new Date ();
var theTestData = {
theArray: new Array ()
}
for (var i = 1; i <= 15; i++) {
theTestData.theArray.push (getRandomSnarkySlogan ());
}
console.log ("testUserDatafiles");
console.log ("theTestData == " + jsonStringify (theTestData));
@scripting
scripting / fatPages.confirmAddress.ftsc
Created August 17, 2023 14:18
Example script for a blog post
View fatPages.confirmAddress.ftsc
<!--
#fatPage
#version 1
#docs http://www.scripting.com/fatPages/faq.html
#adrPageData system.verbs.builtins.fatPages.confirmAddress
#objectType application/x-frontier-scpt
#runnable false
#pageData AAEEAAACAAAC9wAABl8AAgAAAA8GR2VuZXZhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAEAAAAAAAAAALFQIA7hA6ElAAAAQQAAAO4CSAPcBUhMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAG9uIGNvbmZpcm1BZGRyZXNzIChhZHIpDQlDaGFuZ2VzDQkJOC8xNy8yMzsgMTA6MDA6NDggQU0gYnkgRFcNCQkJV2hlbiB3ZSBwcm9tcHQgZm9yIHRoZSBhZGRyZXNzLCBwb3AgdGhlIGZpbGUgZnJvbSB0aGUgYWRkcmVzcyB0b28uDQkJMy8zMS8yMDA0OyAxOjM3OjM4IFBNIGJ5IEpFUw0JCQlVc2Ugc3RyaW5nLnBvcEZpbGVGcm9tQWRkcmVzcyB0byBzaG9ydGVuIHRoZSBhZGRyZXNzIGluIHRoZSByZXBsYWNlIGNvbmZpcm1hdGlvbiBkaWFsb2cuDQlsb29wIC8vZ2V0IGRlc3RpbmF0aW9uIGFkZHJlc3MgZnJvbSB0aGUgdXNlciwgY29uZmlybWF0aW9uDQkJb24gcG9wUGF0aCAocykNCQkJbG9jYWwgKGksIGZsYnJhY2tldHMgPSBmYWxzZSwgY2gpDQkJCWxvY2FsIChmbHF1b3RlcyA9IGZhbHNlKQ0JCQlmb3IgaSA9IHNpemVvZiAocykgZG93bnRvIDINCQkJCWNoID0gcyBbaV0NCQkJCWlmIGNoID09ICciJw0JCQkJCWlmIHMgW2kgLSAxXSAhPSAnXFwnDQkJCQkJCWlm
View rawdatafromnostr.json
{
"content": "I am on NOSTR now. Let's see if I can find anyone I know here. ",
"created_at": 1683134104,
"id": "3fd1c7529c2009b4be4efe6ccf946e91a3eec1ccefdf9f0444a6b740d9582438",
"kind": 1,
"pubkey": "7e28e516f75cfe847e984db80af43895246d284626706350cc7594783f6906ca",
"sig": "a17def233cf135f8f3f5eef70368c632e9cfaaab724b69e5c886ff675396262d2f00b283e4325864786c85a8e0797156d0d432628f4b9623dd67faf880ca5e61",
"tags": []
}
View text.html
<!DOCTYPE html><html><head> <meta charset="utf-8"/> <title>Chat GPT: House Listing: Renovated Ranch.</title> <meta name="generator" content="chatGPT Saving Bookmark"/><style>body { background-color: rgb(32,33,35); color: rgb(236,236,241); font-size: 16px; font-family: sans-serif; line-height: 28px; margin: 0;}body > .w-full { padding: 30px;}/* prompt */body > .w-full:nth-child(2n+1) { background: rgb(52,53,65);}/* response */body > .w-full:nth-child(2n+2) { background: rgb(68,70,84);}a, a:visited { color: #7792cd;}pre { margin: 0 0 1em 0; display: inline-block; width: 100%;}pre code.hljs { margin-bottom: 1em; border-radius: 5px;}.whitespace-pre-wrap { white-space: pre-wrap;}.flex-col { max-width: 850px; margin: 0px auto;}</style><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.7.0/build/styles/default.min.css"/></head><body><div class="group w-full text-gray-800 dark:text-gray-100 border-b border-black/10 dark:border-gray-900/50 dark:bg-gray-800"><div c
View gist:36bec44af6892abb870c5fa798bf7431
on letsWatchThatStinkingFolder () {
«Changes
«3/7/23; 11:55:58 AM by DW
«Created.
local (prefix = "chat-gpt-");
local (sourcefolder = "Macintosh HD:Users:davewiner:Downloads:");
local (destfolder = user.prefs.publicfolder + "chatgpt:");
fileloop (f in sourcefolder) {
local (fname = file.filefrompath (f));
if fname beginswith prefix {
@scripting
scripting / config.js
Created February 8, 2023 13:55
Code that reads config.json in daveappserver
View config.js
function readConfigJson (callback) { //2/8/23 by DW
var configJs;
try {
configJs = require ("./config.js");
}
catch (err) { //try in the parent directory, assuming daveappserver is running in lib sub-directory
try {
configJs = require ("../config.js");
}
catch (err) { //fallback to reading config.json