Skip to content

Instantly share code, notes, and snippets.

View scripting's full-sized avatar

Dave Winer scripting

View GitHub Profile
@scripting
scripting / fatPages.confirmAddress.ftsc
Created August 17, 2023 14:18
Example script for a blog post
<!--
#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
{
"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": []
}
<!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
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
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
@scripting
scripting / publish.js
Created January 2, 2023 18:50
The script I use to publish from Drummer to Micro.blog
var urlOutline = opml.getHeaders ().urlPublic;
if (urlOutline === undefined) {
dialog.alert ("Can't publish your outline because it doesn't have an \"urlPublic\" head-level attribute.");
}
else { //ping the server
http.readUrl ("https://micro.blog/ping?url=" + urlOutline); //ping the server
var options = { //try to make the update happen immediately
type: "POST",
url: "http://micro.blog/ping",
@scripting
scripting / filter.js
Last active September 30, 2022 16:40
Hello World filter.js for PagePark
//hello world filter.js for PagePark -- 9/30/22 by DW
const headers = {["Content-Type"]: "text/plain"};
options.httpResponse.writeHead (200, headers);
options.httpResponse.end ("Hello World");
@scripting
scripting / localFileVerbs.js
Last active August 25, 2022 02:42
Verbs for Electric Drummer
localfile = { //verbs for Electric Drummer
read: function (path) {
return new Promise (function (resolve, reject) {
fs.readFile (path, function (err, data) {
if (err) {
reject (err);
}
else {
resolve (data);
}
@scripting
scripting / rss.xml
Created August 17, 2022 16:25
My feed after posting the tweet for the case study
<?xml version="1.0" encoding="UTF-8"?>
<!-- RSS generated by tweetfeed v2.0.1 on Wed, 17 Aug 2022 16:15:40 GMT -->
<rss version="2.0" xmlns:source="http://source.scripting.com/">
<channel>
<title>davewiner tweets</title>
<link>http://twitter.com/davewiner</link>
<description>A feed of recent tweets from davewiner.</description>
<pubDate>Wed, 17 Aug 2022 16:15:35 GMT</pubDate>
<language>en-us</language>
<generator>tweetfeed v2.0.1</generator>
{
"feeds": [
{
"feedUrl": "https://rss.nytimes.com/services/xml/rss/nyt/World.xml",
"items": [
{
"feedUrl": "https://rss.nytimes.com/services/xml/rss/nyt/World.xml",
"guid": "https://www.nytimes.com/live/2022/08/03/world/ukraine-russia-news-war",
"title": "Live Updates: Even as It Mounts Its Own Offensive, Ukraine Braces for a Russian Attack in the South",
"link": "https://www.nytimes.com/live/2022/08/03/world/ukraine-russia-news-war",