Stuck this on.
Extreme #kinostr Christmas cosy mode.


- Robert Frost
#asknostr #kinostr
anyone know where we can stream the censored version of Die Hard? Not available on VidAngel, sadly
After all...it's not Christmas until Hans Gruber falls from Nakimoto Tower
nostr:nprofile1qqsda2memtapc2lykjnd8t9px4ake2stw39lg6k49xj6u3jz3pteu6qpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszythwden5te0dehhxarj9ekxzmny9uq3zamnwvaz7tmwdaehgu3wwa5kuef00ul2u0 nostr:nprofile1qqs9e40cq5kx0y0ys70sundezdr96ugata07ps9tnyzfccryck3etgspz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszrnhwden5te0dehhxtnvdakz7qgswaehxw309ahx7um5wghx6mmd9ufm2jfg
Not sure if un/censored but this:
Where do you live??
:)

Merry Christmas all
#Wordle 1,650 5/6*
π©β¬β¬β¬β¬
π©β¬β¬β¬β¬
π©π©π©β¬β¬
π©π©π©β¬β¬
π©π©π©π©π©
β₯οΈSometimes all you want is the default heart react β₯οΈ
Perhaps loading a box with more options was a mistake.
Less things to click = more good
β₯οΈ
A Ghost Story for Christmas (1971 - 78, 2005 - 13, 18 -)
https://archive.org/details/a-ghost-story-for-christmas-1971
British supernatural anthology series which airs its episodes at Christmas, the majority based on short stories by the master of the English ghost story and the father of folk horror, M. R. James.
(Only ever watched the 70s ones, so can't recommend the others). But the 70s ones are great, especially the M.R. James and the Dickens adaptation.
#kinostr
Loading this up for tomorrow morning :)
Midnight Mass enjoyers?
Just learnt of this lesser-known Dickens Christmas short story called Doctor Marigold.
Done with a nice reading voice from a librivox contributor.
Very cosy indeed.
Come on let's get some Christmas songs on the aux.
#xmassongs


#Wordle 1,649 3/6*
π¨π¨β¬β¬β¬
π¨π¨π©π¨β¬
π©π©π©π©π©
Never heard of this π
What do you mean. I'm excited!!! Diamond City, baby!
I've bought a house
on Fallout 4
15k sats from me, for any sort of leaderboard thing. nostr:npub1jss47s4fvv6usl7tn6yp5zamv2u60923ncgfea0e6thkza5p7c3q0afmzy prob best suited to make it a reality. Plus Alex is very busy lately
He is not busy with anything as important as a wordle bot tho. No chance. πΌ
This is what claude (free version lol) things the code for the wordle bot should be Β―β \β _β (β γβ )β _β /β Β―
import React, { useState, useEffect } from 'react';
import { Trophy, Star, Grid3x3 } from 'lucide-react';
const WordleBot = () => {
const [results, setResults] = useState([]);
const [dailyRanking, setDailyRanking] = useState([]);
const [notableMentions, setNotableMentions] = useState([]);
const [connected, setConnected] = useState(false);
const [relays] = useState([
'wss://relay.damus.io',
'wss://nos.lol',
'wss://relay.nostr.band'
]);
// Parse Wordle result from text
const parseWordleResult = (content, pubkey) => {
const wordleRegex = /Wordle (\d+) ([X1-6])\/6\*?\s*([\n\r\s]*(?:[π¨π©β¬β¬π¦]+[\n\r\s]*)+)/i;
const match = content.match(wordleRegex);
if (!match) return null;
const puzzleNumber = parseInt(match[1]);
const score = match[2] === 'X' ? 7 : parseInt(match[2]);
const gridText = match[3];
// Extract grid rows
const rows = gridText.split(/[\n\r]+/)
.map(row => row.trim())
.filter(row => /[π¨π©β¬β¬π¦]/.test(row));
return {
pubkey,
puzzleNumber,
score,
grid: rows,
content,
timestamp: Date.now()
};
};
// Check if result is all green (perfect first try or perfect pattern)
const isAllGreen = (grid) => {
return grid.some(row => /^π©+$/.test(row) && row.length === 5);
};
// Check for symmetrical patterns
const isSymmetrical = (grid) => {
if (grid.length < 2) return false;
for (let row of grid) {
const cleaned = row.replace(/[^π¨π©β¬β¬π¦]/g, '');
if (cleaned.length < 3) continue;
const reversed = cleaned.split('').reverse().join('');
if (cleaned === reversed) return true;
}
// Check vertical symmetry
if (grid.length >= 2) {
const cleaned = grid.map(row => row.replace(/[^π¨π©β¬β¬π¦]/g, ''));
for (let i = 0; i < Math.floor(cleaned.length / 2); i++) {
if (cleaned[i] === cleaned[cleaned.length - 1 - i]) {
return true;
}
}
}
return false;
};
// Connect to Nostr relays
const connectToNostr = async () => {
try {
const ws = new WebSocket(relays[0]);
ws.onopen = () => {
setConnected(true);
// Subscribe to notes with wordle content
const subscription = [
"REQ",
"wordle-sub",
{
kinds: [1],
"#t": ["wordle"],
since: Math.floor(Date.now() / 1000) - 86400 // Last 24 hours
}
];
ws.send(JSON.stringify(subscription));
};
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
if (data[0] === "EVENT") {
const note = data[2];
const parsed = parseWordleResult(note.content, note.pubkey);
if (parsed) {
setResults(prev => {
const exists = prev.some(r => r.pubkey === parsed.pubkey && r.puzzleNumber === parsed.puzzleNumber);
if (exists) return prev;
return [...prev, parsed];
});
}
}
};
ws.onerror = () => setConnected(false);
ws.onclose = () => setConnected(false);
} catch (error) {
console.error('Connection error:', error);
setConnected(false);
}
};
// Generate demo data
const generateDemoData = () => {
const demoResults = [
{
pubkey: 'alice123',
puzzleNumber: 1234,
score: 3,
grid: ['β¬π¨β¬β¬β¬', 'π©β¬π©β¬π©', 'π©π©π©π©π©'],
timestamp: Date.now() - 3600000
},
{
pubkey: 'bob456',
puzzleNumber: 1234,
score: 4,
grid: ['β¬β¬π¨β¬β¬', 'π¨π¨β¬β¬β¬', 'π©π©π©β¬π©', 'π©π©π©π©π©'],
timestamp: Date.now() - 7200000
},
{
pubkey: 'charlie789',
puzzleNumber: 1234,
score: 2,
grid: ['π©β¬π©β¬π©', 'π©π©π©π©π©'],
timestamp: Date.now() - 1800000
},
{
pubkey: 'diana101',
puzzleNumber: 1234,
score: 5,
grid: ['β¬π¨β¬π¨β¬', 'β¬π¨β¬π¨β¬', 'π¨β¬π¨β¬π¨', 'π©π©β¬π©π©', 'π©π©π©π©π©'],
timestamp: Date.now() - 5400000
},
{
pubkey: 'eve202',
puzzleNumber: 1234,
score: 1,
grid: ['π©π©π©π©π©'],
timestamp: Date.now() - 9000000
}
];
setResults(demoResults);
};
// Update rankings and notable mentions
useEffect(() => {
if (results.length === 0) return;
// Sort by score (lower is better)
const ranked = [...results].sort((a, b) => {
if (a.score !== b.score) return a.score - b.score;
return a.timestamp - b.timestamp; // Earlier wins ties
});
setDailyRanking(ranked);
// Find notable mentions
const notable = [];
results.forEach(result => {
if (isAllGreen(result.grid)) {
notable.push({
...result,
reason: result.score === 1 ? 'π― Perfect First Try!' : 'π All Green Result!'
});
} else if (isSymmetrical(result.grid)) {
notable.push({
...result,
reason: 'β¨ Beautiful Symmetrical Pattern!'
});
}
});
setNotableMentions(notable);
}, [results]);
useEffect(() => {
generateDemoData();
}, []);
const formatPubkey = (pubkey) => {
return pubkey.slice(0, 8) + '...' + pubkey.slice(-4);
};
return (
Nostr Wordle Tracker
Daily rankings and notable Wordle results from Nostr
Tracking {results.length} Wordle result{results.length !== 1 ? 's' : ''}
{notableMentions.length > 0 && (
Notable Mentions
{notableMentions.map((result, idx) => (
{result.grid.map((row, i) => (
))}
))}
)}
Daily Ranking
{dailyRanking.length === 0 ? (
No results yet. Connect to Nostr or load demo data to see rankings.
) : (
{dailyRanking.map((result, idx) => (
idx === 0 ? 'bg-yellow-50 border-yellow-400' :
idx === 1 ? 'bg-gray-50 border-gray-300' :
idx === 2 ? 'bg-orange-50 border-orange-300' :
'bg-white border-gray-200'
}`}>
idx === 0 ? 'text-yellow-600' :
idx === 1 ? 'text-gray-600' :
idx === 2 ? 'text-orange-600' :
'text-gray-400'
}`}>
{idx === 0 ? 'π₯' : idx === 1 ? 'π₯' : idx === 2 ? 'π₯' : `#${idx + 1}`}
Wordle {result.puzzleNumber} - Score: {result.score}/6
{new Date(result.timestamp).toLocaleTimeString()}
{result.grid.map((row, i) => (
))}
))}
)}
);
};
export default WordleBot;
We need some sort of wordle bot for the ranking system.
I should give attempts, but also mention the all green bonus, and aesthetically pleasing symmetrical shapes.
Who can automate this lol
#wordle
And an all green bonus πβ




