// FooCrawler
fun readPage(url: String): Pair<String, String?> {
try {
val content = fetchPage(url)
...
val nextPageUrl = extractNextPageUrl(content)
return Pair(content, nextPageUrl)
} catch (e: Exception) {
// ==UserScript== | |
// @name Redirect threads | |
// @namespace http://tampermonkey.net/ | |
// @version 2025-05-22 | |
// @description try to take over the world! | |
// @author You | |
// @match https://www.threads.com/* | |
// @icon https://www.google.com/s2/favicons?sz=64&domain=threads.com | |
// @grant none | |
// ==/UserScript== |
// ==UserScript== | |
// @name Claude.ai Navigation Bar | |
// @namespace http://tampermonkey.net/ | |
// @version 1.0 | |
// @description Creates a navigation bar on the right side of Claude.ai that helps navigate through conversation messages | |
// @author You | |
// @match https://claude.ai/* | |
// @grant none | |
// ==/UserScript== |
Trong xรฃ hแปi hiแปn ฤแบกi, mแปt dแบกng nghรจo khรณ mแปi ฤang ngร y cร ng phแป biแบฟn - khรดng phแบฃi nghรจo vแป vแบญt chแบฅt mร lร "nghรจo tฦฐ duy". Hiแปn tฦฐแปฃng nร y thแป hiแปn qua viแปc thiแบฟu khแบฃ nฤng suy nghฤฉ ฤแปc lแบญp, phแปฅ thuแปc quรก mแปฉc vร o mแบกng xรฃ hแปi vร khuynh hฦฐแปng chแบกy theo tรขm lรฝ ฤรกm ฤรดng. ฤรขy lร mแปt vแบฅn ฤแป xรฃ hแปi ฤรกng quan tรขm, cรณ tรกc ฤแปng sรขu rแปng ฤแบฟn cแบฃ cรก nhรขn vร cแปng ฤแปng.
"Nghรจo tฦฐ duy" khรดng ฤฦกn thuแบงn lร thiแบฟu kiแบฟn thแปฉc, mร cรฒn lร sแปฑ thiแบฟu hแปฅt khแบฃ nฤng phรขn tรญch thรดng tin mแปt cรกch phแบฃn biแปn, tฦฐ duy ฤแปc lแบญp vร รกp dแปฅng nguyรชn lรฝ cฦก bแบฃn (first principle thinking) trong quรก trรฌnh nhแบญn thแปฉc. Ngฦฐแปi bแป "nghรจo tฦฐ duy" thฦฐแปng:
- Khoรกn trแบฏng suy nghฤฉ cho mแบกng xรฃ hแปi: Tin tฦฐแปng mรน quรกng vร o thรดng tin tแปซ Facebook, TikTok mร khรดng kiแปm chแปฉng
- Thiแบฟu tฦฐ duy phแบฃn biแปn: Khรดng ฤแบทt cรขu hแปi vแป ฤแป tin cแบญy cแปงa nguแปn thรดng tin
function autoClickBlock() { | |
const dialogBody = document.evaluate( | |
`//*[contains(text(), "won't be able to find your profile")]`, | |
document, | |
null, | |
XPathResult.FIRST_ORDERED_NODE_TYPE, | |
null | |
).singleNodeValue; | |
if (!dialogBody) { |
A simple JavaScript script that adds a floating "Archive" button to specific news websites, allowing quick archiving via archive.md.


As a non-Japanese speaker (reader), it's hard for me to know how to use SBI website sbisec.co.jp. Although there is Google Translate, it's not good in handling text in images (Safari can but it's not really good or fast).
Luckily, SBI website uses static images for buttons, therefore, we can replace the image button with text button.
Demonstrate:

To use this, you can use any extensions that can inject script and stylesheet into the page or create your own extension.
import {LifecycleObserver, LifecycleOwner} from "./lifecycleowner"; | |
interface Observer<T> { | |
onChange(value: T): void; | |
} | |
class SimpleObserver<T> implements Observer<T> { | |
constructor(private callback: (value: T) => void) { | |
} |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฆโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฆโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
โญโโโโโโโโโโโโโโโโโโโโโโโโโฎ | |
โโโโโโโ โโโโโโโ โโญโโโโโโโโโโโโโโโโโโโโโโโฎโ | |
โ A โ โ B โ โโ https://example.com โโ | |
โโโโฌโโโ โโโโฌโโโ โโฐโโโโโโโโโโโโโโโโโโโโโโโฏโ | |
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโ | |
โfoo โ โโ Welcome! โโ | |
โโโโโโโโโโโโโโโโโโโถ โโ โโ | |
โhello โ โโ โญโโโโโโโโโโโโโโโโโฎ โโ | |
โโโโโโโโโโโโโโโโโโโถโโโโ โโ โย username โ โโ | |
โ world โ โprompts โโ โฐโโโโโโโโโโโโโโโโโฏ โโ |