diff --git a/CLAUDE.md b/CLAUDE.md index db77d13..0e5bbf0 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co ## Project Overview -Text Corruptor is a Progressive Web App (PWA) that generates zalgo text (corrupted/glitched text using Unicode combining characters). The app features real-time text corruption with adjustable intensity and click-to-copy functionality. +GlitchCraft is a Progressive Web App (PWA) that generates zalgo text (corrupted/glitched text using Unicode combining characters). The app features real-time text corruption with adjustable intensity and click-to-copy functionality. ## Project Structure @@ -31,7 +31,7 @@ zalgo/ ### Running the Application ```bash -# Start development server (serves on http://localhost:8000/) +# Start development server (serves on http://localhost:8000/ and [::]:8000) python3 server.py # Or using the npm script diff --git a/app/app.js b/app/app.js index 14d3930..d151350 100644 --- a/app/app.js +++ b/app/app.js @@ -1,5 +1,5 @@ /** - * Main application logic for Text Corruptor + * Main application logic for GlitchCraft * Handles UI interactions and PWA registration */ diff --git a/app/generate-icons.html b/app/generate-icons.html index 0954490..620fe87 100644 --- a/app/generate-icons.html +++ b/app/generate-icons.html @@ -5,7 +5,7 @@ Generate PWA Icons -

Icon Generator for Text Corruptor

+

Icon Generator for GlitchCraft

Right-click each canvas and save as PNG to the icons folder

diff --git a/app/index.html b/app/index.html index a35af67..a32fd12 100644 --- a/app/index.html +++ b/app/index.html @@ -8,7 +8,7 @@ content="Transform your text into corrupted zalgo text with one click. Perfect for creating glitchy, distorted text effects." /> - Text Corruptor - Zalgo Text Generator + GlitchCraft - Artisanal Text Corruption @@ -18,8 +18,8 @@
-

Text Corruptor

-

Transform your text into corrupted chaos

+

GlitchCraft

+

Artisanal text corruption, served fresh!

diff --git a/app/manifest.json b/app/manifest.json index b0794fb..ab4102c 100644 --- a/app/manifest.json +++ b/app/manifest.json @@ -1,7 +1,7 @@ { - "name": "Text Corruptor - Zalgo Text Generator", - "short_name": "Text Corruptor", - "description": "Transform your text into corrupted zalgo text with adjustable intensity", + "name": "GlitchCraft - Artisanal Text Corruption", + "short_name": "GlitchCraft", + "description": "Artisanal text corruption, served fresh! Create beautifully chaotic zalgo text with adjustable intensity", "start_url": "/", "display": "standalone", "background_color": "#0f0f14", diff --git a/app/sw.js b/app/sw.js index 8395370..26e0ca2 100644 --- a/app/sw.js +++ b/app/sw.js @@ -1,9 +1,9 @@ /** - * Service Worker for Text Corruptor PWA + * Service Worker for GlitchCraft PWA * Enables offline functionality and caching */ -const CACHE_NAME = 'text-corruptor-v1'; +const CACHE_NAME = 'glitchcraft-v1'; const urlsToCache = ['/', '/index.html', '/styles.css', '/zalgo.js', '/app.js', '/manifest.json']; // Install event - cache essential files diff --git a/server.py b/server.py index 8cdbcd6..c61a8e7 100644 --- a/server.py +++ b/server.py @@ -1,12 +1,13 @@ #!/usr/bin/env python3 """ -Simple HTTP server for testing the Text Corruptor PWA +Simple HTTP server for testing the GlitchCraft PWA Run with: python3 server.py Then open http://localhost:8000/ in your browser """ import http.server import socketserver +import socket import os PORT = 8000 @@ -14,8 +15,21 @@ PORT = 8000 DIRECTORY = os.path.join(os.path.dirname(os.path.abspath(__file__)), "app") +class DualStackServer(socketserver.TCPServer): + """TCP server that supports both IPv4 and IPv6.""" + + address_family = socket.AF_INET6 + + def __init__(self, *args, **kwargs): + # Disable dual stack to make it work on all systems + # Some systems have it enabled by default, some don't + super().__init__(*args, **kwargs) + # Enable dual stack - listen on both IPv4 and IPv6 + self.socket.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 0) + + class MyHTTPRequestHandler(http.server.SimpleHTTPRequestHandler): - """Custom HTTP request handler for serving the Text Corruptor PWA.""" + """Custom HTTP request handler for serving the GlitchCraft PWA.""" def __init__(self, *args, **kwargs): super().__init__(*args, directory=DIRECTORY, **kwargs) @@ -29,8 +43,16 @@ class MyHTTPRequestHandler(http.server.SimpleHTTPRequestHandler): if __name__ == "__main__": - with socketserver.TCPServer(("", PORT), MyHTTPRequestHandler) as httpd: - print(f"Server running at http://localhost:{PORT}/") + # Listen on all interfaces (:: for IPv6, which also handles IPv4 with dual stack) + HOST = "::" # Listen on all interfaces (IPv6 and IPv4) + + with DualStackServer((HOST, PORT), MyHTTPRequestHandler) as httpd: + print(f"Server running on all interfaces at port {PORT}") + print(f"Access at:") + print(f" http://localhost:{PORT}/") + print(f" http://127.0.0.1:{PORT}/ (IPv4)") + print(f" http://[::1]:{PORT}/ (IPv6)") + print(f" http://:{PORT}/") print(f"Serving files from: {DIRECTORY}") print("Press Ctrl+C to stop the server") try: