#!/usr/bin/env bash # sbl (Spartan Bookmark Launcher): Retrieve Bookmarked Spartan Pages # Copyright (c) 2026 640kb.neocities.org # This script is licensed under the Blue Oak Model License 1.0.0. # https://blueoakcouncil.org/license/1.0.0 # # 24jul2026: Initial Release show_menu() { clear cat << "MENU" .----------------------------------------------------------------------------. | SPARTAN BOOKMARK LAUNCHER | '----------------------------------------------------------------------------' .----------------------------------------------------------------------------. | 1. Bob Allison's collection 6. Flump's Favorite Stuff | | 2. Six Line Ascii Art Challenge 7. The Funny Bone (1998) | | 3. Rowan Crawford ASCII Art 8. Alt-ASCII-Art FAQ | | 4. "Spying at the Wall" Dictionary 9. Anime ASCII Collection, prt 1 | | 5. Huge 800k mthw scrollfile [nsfw] 10. ASCII Artist Licenses | |----------------------------------------------------------------------------| | 11. Spartan Home Page 13. Software for Spartan | | 12. Spartan Specification 14. Spartan Protocol Page | '----------------------------------------------------------------------------' MENU echo -n " Select option [1-14] or (x to eXit): " } while true; do show_menu read choice case "$choice" in # Uses less for ASCII Art 1) printf 'ascii.mozz.us /mirrors/incredibleart/files/scarecrow_sig_files.txt 0\r\n' | nc ascii.mozz.us 7070 | less ;; 2) printf 'ascii.mozz.us /mirrors/vk/files/junkyard/pics/six_line_challenge.txt 0\r\n' | nc ascii.mozz.us 7070 | less ;; 3) printf 'ascii.mozz.us /mirrors/afn/artists/crawford.txt 0\r\n' | nc ascii.mozz.us 7070 | less ;; 4) printf 'ascii.mozz.us /mirrors/bowdrie/spying.txt 0\r\n' | nc ascii.mozz.us 7070 | less ;; 5) printf 'ascii.mozz.us /mirrors/asciipr0n/pr0n/morepr0n/pr0n91.txt 0\r\n' | nc ascii.mozz.us 7070 | less ;; 6) printf 'ascii.mozz.us /mirrors/flump/data/faves.txt 0\r\n' | nc ascii.mozz.us 7070 | less ;; 7) printf 'ascii.mozz.us /mirrors/funnybone/1998/funnybone_1998-09-13.txt 0\r\n' | nc ascii.mozz.us 7070 | less ;; 8) printf 'ascii.mozz.us /academy/faqs/faq_randall.txt 0\r\n' | nc ascii.mozz.us 7070 | less ;; 9) printf 'ascii.mozz.us /mirrors/otakuworld/data/anime001.txt 0\r\n' | nc ascii.mozz.us 7070 | less ;; 10) printf 'ascii.mozz.us /academy/artists/license.txt 0\r\n' | nc ascii.mozz.us 7070 | less ;; # Uses gmir (72-character width limit) on gmi or links with no extensions 11) printf 'mozz.us / 0\r\n' | nc mozz.us 300 | tail -n +2 | gmir ;; 12) printf 'spartan.mozz.us /specification.gmi 0\r\n' | nc spartan.mozz.us 300 | tail -n +2 | gmir ;; 13) printf 'mozz.us /software.gmi 0\r\n' | nc mozz.us 300 | tail -n +2 | gmir ;; 14) printf 'spartan.mozz.us / 0\r\n' | nc spartan.mozz.us 300 | tail -n +2 | gmir ;; x|X) echo " ----------------------------------------------------------------------------" echo " Goodbye!" echo break ;; *) echo "Invalid option!" echo -n "Press Enter to continue..." read ;; esac done