• gopherddit

    From Daniel@21:1/5 to All on Sun Jun 16 07:36:26 2024
    Anyone having trouble accessing gopherddit.com lately?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Marco Moock@21:1/5 to All on Sun Jun 16 12:23:21 2024
    On 16.06.2024 um 07:36 Uhr Daniel wrote:

    Anyone having trouble accessing gopherddit.com lately?

    No reply at all from the IP, no ICMP.

    --
    kind regards
    Marco

    Send spam to 1718516186muell@cartoonies.org

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Daniel@21:1/5 to Marco Moock on Fri Jun 21 08:03:48 2024
    Marco Moock <mm+usenet-es@dorfdsl.de> writes:
    On 16.06.2024 um 07:36 Uhr Daniel wrote:

    Anyone having trouble accessing gopherddit.com lately?

    No reply at all from the IP, no ICMP.

    I know. Total bummer. It's one of my daily drivers. Shucks!!

    Daniel

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Francis@21:1/5 to Daniel on Sat Jun 22 04:51:32 2024
    On Fri, 21 Jun 2024 08:03:48 +0000, Daniel wrote:

    Marco Moock <mm+usenet-es@dorfdsl.de> writes:
    On 16.06.2024 um 07:36 Uhr Daniel wrote:

    Anyone having trouble accessing gopherddit.com lately?

    No reply at all from the IP, no ICMP.

    I know. Total bummer. It's one of my daily drivers. Shucks!!

    Daniel

    I hope this returns, I'd be happy to donate to help keep this service functional. It's essentially the only way I access reddit these days.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Arti F. Idiot@21:1/5 to Francis on Sat Jun 22 06:50:07 2024
    On 6/21/24 10:51 PM, Francis wrote:
    On Fri, 21 Jun 2024 08:03:48 +0000, Daniel wrote:

    Marco Moock <mm+usenet-es@dorfdsl.de> writes:
    On 16.06.2024 um 07:36 Uhr Daniel wrote:

    Anyone having trouble accessing gopherddit.com lately?

    No reply at all from the IP, no ICMP.

    I know. Total bummer. It's one of my daily drivers. Shucks!!

    Daniel

    I hope this returns, I'd be happy to donate to help keep this service functional. It's essentially the only way I access reddit these days.

    Yeah this is a real bummer. As a hopefully temporary non-gopher
    work-around I've been using Libreddit and Redlib instances over Tor:

    https://github.com/libreddit/libreddit-instances/blob/maste/instances.md https://github.com/redlib-org/redlib-instances/blob/main/instances.md

    Better than nothing but I'd really prefer a Gopher or Gemini interface.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Daniel@21:1/5 to Marco Moock on Sun Jun 23 11:32:24 2024
    Marco Moock <mm+usenet-es@dorfdsl.de> writes:

    On 16.06.2024 um 07:36 Uhr Daniel wrote:

    Anyone having trouble accessing gopherddit.com lately?

    No reply at all from the IP, no ICMP.

    I emailed the owner of the DN. The domain name expired on 6/15.

    I asked him when it'll be back up and offered to donate $5 toward
    renewal.

    Daniel

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Daniel@21:1/5 to Francis on Sun Jun 23 19:59:38 2024
    Francis <fran@cis.com> writes:

    On Fri, 21 Jun 2024 08:03:48 +0000, Daniel wrote:

    Marco Moock <mm+usenet-es@dorfdsl.de> writes:
    On 16.06.2024 um 07:36 Uhr Daniel wrote:

    Anyone having trouble accessing gopherddit.com lately?

    No reply at all from the IP, no ICMP.

    I know. Total bummer. It's one of my daily drivers. Shucks!!

    Daniel

    I hope this returns, I'd be happy to donate to help keep this service functional. It's essentially the only way I access reddit these days.

    I emailed the owner and he had forgotten to renew the domain name. He
    said it's fixed and services restored. He was also glad someone cared
    enough to tell him.

    Awww.

    Anyway, I confirm it's up and running. Enjoy folks.

    Daniel

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Arti F. Idiot@21:1/5 to Daniel on Mon Jun 24 07:46:31 2024
    On 6/23/24 1:59 PM, Daniel wrote:
    Francis <fran@cis.com> writes:

    On Fri, 21 Jun 2024 08:03:48 +0000, Daniel wrote:

    Marco Moock <mm+usenet-es@dorfdsl.de> writes:
    On 16.06.2024 um 07:36 Uhr Daniel wrote:

    Anyone having trouble accessing gopherddit.com lately?

    No reply at all from the IP, no ICMP.

    I know. Total bummer. It's one of my daily drivers. Shucks!!

    Daniel

    I hope this returns, I'd be happy to donate to help keep this service
    functional. It's essentially the only way I access reddit these days.

    I emailed the owner and he had forgotten to renew the domain name. He
    said it's fixed and services restored. He was also glad someone cared
    enough to tell him.

    Awww.

    Anyway, I confirm it's up and running. Enjoy folks.

    Daniel

    LOL, simple as that. Thanks for reaching out to the gopherddit admin.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Daniel@21:1/5 to Arti F. Idiot on Mon Jun 24 15:27:19 2024
    "Arti F. Idiot" <addr@is.invalid> writes:

    On 6/23/24 1:59 PM, Daniel wrote:
    Francis <fran@cis.com> writes:

    On Fri, 21 Jun 2024 08:03:48 +0000, Daniel wrote:

    Marco Moock <mm+usenet-es@dorfdsl.de> writes:
    On 16.06.2024 um 07:36 Uhr Daniel wrote:

    Anyone having trouble accessing gopherddit.com lately?

    No reply at all from the IP, no ICMP.

    I know. Total bummer. It's one of my daily drivers. Shucks!!

    Daniel

    I hope this returns, I'd be happy to donate to help keep this service
    functional. It's essentially the only way I access reddit these days.
    I emailed the owner and he had forgotten to renew the domain
    name. He
    said it's fixed and services restored. He was also glad someone cared
    enough to tell him.
    Awww.
    Anyway, I confirm it's up and running. Enjoy folks.
    Daniel

    LOL, simple as that. Thanks for reaching out to the gopherddit admin.

    Don't you love when it's that simple? I just did a whois search on the
    domain name and it was right there. He uses the same domain registrar I
    do so I used their private email option to send him a message.

    Speaking of which, I need to re-register my old gopher domain name. I
    have a rpi coming in today and it will be my old gopher presence
    relaunched.

    Do you use finger services at all?

    D

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Arti F. Idiot@21:1/5 to Daniel on Mon Jun 24 18:02:12 2024
    On 6/24/24 9:27 AM, Daniel wrote:
    Do you use finger services at all?

    Some, not as much as I used to. Beyond a few public Unix systems one
    has to implement extended usefulness on their own systems for grepping
    things like system status. Been exploring some of the more recent
    smolnet stuff like nex; worked with a friend to put together a
    socat-based nex server which supports some logging unlike the original
    Go-based nexd at nightfall.city.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Francis@21:1/5 to Daniel on Tue Jun 25 02:22:58 2024
    On Sun, 23 Jun 2024 19:59:38 +0000, Daniel wrote:

    Francis <fran@cis.com> writes:

    On Fri, 21 Jun 2024 08:03:48 +0000, Daniel wrote:

    Marco Moock <mm+usenet-es@dorfdsl.de> writes:
    On 16.06.2024 um 07:36 Uhr Daniel wrote:

    Anyone having trouble accessing gopherddit.com lately?

    No reply at all from the IP, no ICMP.

    I know. Total bummer. It's one of my daily drivers. Shucks!!

    Daniel

    I hope this returns, I'd be happy to donate to help keep this service
    functional. It's essentially the only way I access reddit these days.

    I emailed the owner and he had forgotten to renew the domain name. He
    said it's fixed and services restored. He was also glad someone cared
    enough to tell him.

    Awww.

    Anyway, I confirm it's up and running. Enjoy folks.

    Daniel

    Wonderful! I'm happy to see it has returned.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Daniel@21:1/5 to Arti F. Idiot on Fri Jun 28 11:59:32 2024
    "Arti F. Idiot" <addr@is.invalid> writes:

    On 6/24/24 9:27 AM, Daniel wrote:
    Do you use finger services at all?

    Some, not as much as I used to. Beyond a few public Unix systems one
    has to implement extended usefulness on their own systems for grepping
    things like system status. Been exploring some of the more recent
    smolnet stuff like nex; worked with a friend to put together a
    socat-based nex server which supports some logging unlike the original Go-based nexd at nightfall.city.

    I had to look up nex. I've seen talk of smolnet in the BBS field and
    thought it was him, but now i know smolnet is an actual thing. I have
    alot to learn.

    I've been seeing finger used for interesting things. Off the top of my
    head, you can get a weather report for your area on a finger.

    finger cityname@graph.no

    For my city, here is the output

    = Meteogram for Rancho Cordova, Sacramento County, California, United States =
    'F Rain (in)
    96 ---------
    94 --- ---
    92
    90 --- ---
    88
    86 --- ---
    84
    82--- ---
    80
    78 ---
    _11_12_13_14_15_16_17_18_19_20 21 22 23 29/06 02 03 04 05_06_07_08 Hour

    SW SW SW SW SW SW SW SW SW SW SW SW S SE S S S S S S S S Wind dir.
    1 1 2 2 2 3 4 4 5 4 3 4 4 3 3 3 3 3 3 2 3 2 Wind(mph)

    Legend left axis: - Sunny ^ Scattered = Clouded =V= Thunder # Fog Legend right axis: | Rain ! Sleet * Snow
    [Weather forecast from yr.no, delivered by the Norwegian Meteorological Institute and the NRK.]

    I'm toying with the idea of providing such services but with RSS feeds
    and dumping ten latest stories based on the feeds that are setup -
    similar to what we've seen occur on gopherland.

    Researching...

    Daniel

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Arti F. Idiot@21:1/5 to Daniel on Fri Jun 28 14:55:14 2024
    On 6/28/24 12:59 PM, Daniel wrote:
    "Arti F. Idiot" <addr@is.invalid> writes:

    On 6/24/24 9:27 AM, Daniel wrote:
    Do you use finger services at all?

    Some, not as much as I used to. Beyond a few public Unix systems one
    has to implement extended usefulness on their own systems for grepping
    things like system status. Been exploring some of the more recent
    smolnet stuff like nex; worked with a friend to put together a
    socat-based nex server which supports some logging unlike the original
    Go-based nexd at nightfall.city.

    I had to look up nex. I've seen talk of smolnet in the BBS field and
    thought it was him, but now i know smolnet is an actual thing. I have
    alot to learn.

    I've been seeing finger used for interesting things. Off the top of my
    head, you can get a weather report for your area on a finger.

    finger cityname@graph.no

    For my city, here is the output

    = Meteogram for Rancho Cordova, Sacramento County, California, United States =
    'F Rain (in)
    96 ---------
    94 --- ---
    92
    90 --- ---
    88
    86 --- ---
    84
    82--- ---
    80
    78 ---
    _11_12_13_14_15_16_17_18_19_20 21 22 23 29/06 02 03 04 05_06_07_08 Hour

    SW SW SW SW SW SW SW SW SW SW SW SW S SE S S S S S S S S Wind dir.
    1 1 2 2 2 3 4 4 5 4 3 4 4 3 3 3 3 3 3 2 3 2 Wind(mph)

    Legend left axis: - Sunny ^ Scattered = Clouded =V= Thunder # Fog Legend right axis: | Rain ! Sleet * Snow
    [Weather forecast from yr.no, delivered by the Norwegian Meteorological Institute and the NRK.]

    I'm toying with the idea of providing such services but with RSS feeds
    and dumping ten latest stories based on the feeds that are setup -
    similar to what we've seen occur on gopherland.

    Researching...

    Daniel

    I recently discovered one can use any tool that understands Gopher and
    allows for non-std ports and in-session URL editing to access Nex
    resources as Type 0:

    ex: lynx gopher://nightfall.city:1900/0/nex/info

    Shift+G allows editing the URL in-session.

    If you're wanting to play around with Nex I know of two Nex server
    daemons, nexd (Go-based; see nightfall.city for details) and sonexd
    (socat+bash based; see https://rawtext.club/~woog/nex/ for details).

    -AI

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From yeti@21:1/5 to Arti F. Idiot on Sat Jun 29 03:46:58 2024
    "Arti F. Idiot" <addr@is.invalid> writes:

    If you're wanting to play around with Nex I know of two Nex server
    daemons, nexd (Go-based; see nightfall.city for details) and sonexd (socat+bash based; see https://rawtext.club/~woog/nex/ for details).

    I think checking for sane paths to avoid serving not so public info is
    the only complex part in a NEX server (but there may be libs for that). Laziness is one of my well known superpowers and I just needed a server
    to locally test a NEX plugin for Dillo, so I did not care/test much.

    Maybe I'll restart may hacks somewhen e.g. with a ZIP as pseudo-FS or
    some other kind of "naturally" being separated from the main FS. That'd
    make it much easier and lots of editors already can "transparently" edit
    stuff in archives.

    Reading beyond this line equals signing a NLA (non laughing agreement):



    * NCAT + SH

    /!\ Barely tested, treat it as unsafe.

    Tested on Debian and OpenBSD.

    No automatic directory listings.

    ------------------------------------------------------------------------ #!/bin/sh -x
    ##
    ## TIADUNSLFANN Is A Dangerously Unsafe Nex Server Looking For A Nicer Name
    ##
    ## ncat -l -p 1900 -k -c ./tiadunslfann
    ##

    root="$PWD"
    alias mute-err='2>/dev/null '

    IFS='' read request

    if ! realrequest=$(mute-err realpath "$root/$request")
    then printf "E: bad request '%s'\n" $realrequest
    exit
    fi

    case "$realrequest" in
    $PWD*) ;;
    *) printf "E: bad request '%s' outside doc root\n" $realrequest ; exit ;;
    esac

    if [ -f "$realrequest" -a -r "$realrequest" ]
    then cat "$realrequest"
    elif [ -d "$realrequest" -a -r "$realrequest/index" ]
    then cat "$realrequest/index"
    else printf "E: bad request, no idea about '%s'\n" "$request"
    fi
    ------------------------------------------------------------------------


    * MicroPython

    /!\ Only minimally tested with MicroPython's ESP8266 and Unix ports,
    treat it as unsafe.

    ------------------------------------------------------------------------ #!/usr/bin/env micropython
    ##
    ## The Ridiculously Simple MicroPython Nex Server
    ##
    ## trsmpns.upy.py
    ## \ \
    ## \ editors shall read this as Python source
    ## but MicroPython != Python
    ## e.g. sockets are streams by default
    ##
    import os, socket

    def main():
    s = socket.socket()
    ai = socket.getaddrinfo("0.0.0.0", 1900)
    addr = ai[0][-1]
    s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    s.bind(addr)
    s.listen(5)

    while True:
    client_stream, client_addr = s.accept()
    req = client_stream.readline()[1:-1].decode() # "/req\n" -> "req"

    while True: ## try and ignore errors.
    try:
    client_stream.write(open(req).read())
    break ## req was a file
    except:
    pass

    try:
    client_stream.write(open("./"+req+"/index").read())
    break ## req was a dir with index file
    except:
    pass

    try: ## silently ignore other types than file and dir
    client_stream.write("=> ..\n")
    for f in os.listdir("./"+req):
    st = os.stat("./"+req+"/"+f)[0] & 0xc000
    if st == 0x8000: tc = ""
    elif st == 0x4000: tc = "/"
    if st: client_stream.write("=> "+f+tc+"\n")
    break ## req was a dir without index file
    except:
    pass

    break

    client_stream.close()

    main()
    ------------------------------------------------------------------------

    <https://web.archive.org/web/20240524223243/https://yeti.tilde.institute/dillo-screenshots/20240401-074634__dillo__trsmpns_at_home.png>
    <https://web.archive.org/web/20240524223242/https://yeti.tilde.institute/dillo-screenshots/20240401-181148__dillo__trsmpns_on_ESP8266.png>

    * The End.

    Both were fun for my use case, YMMV.

    --
    I do not bite, I just want to play.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From yeti@21:1/5 to Arti F. Idiot on Sat Jun 29 03:42:42 2024
    "Arti F. Idiot" <addr@is.invalid> writes:

    If you're wanting to play around with Nex I know of two Nex server
    daemons, nexd (Go-based; see nightfall.city for details) and sonexd (socat+bash based; see https://rawtext.club/~woog/nex/ for details).

    I think checking for sane paths to avoid serving not so public info is
    the only complex part in a NEX server (but there may be libs for that). Laziness is one of my well known superpowers and I just needed a server
    to locally test a NEX plugin for Dillo, so I did not care/test much.

    Maybe I'll restart may hacks somewhen e.g. with a ZIP as pseudo-FS or
    some other kind of "naturally" being separated from the main FS. That'd
    make it much easier and lots of editors already can "transparently" edit
    stuff in archives.

    Reading beyond this line equals signing a NLA (non laughing agreement):



    * NCAT + SH

    /!\ Barely tested, treat it as unsafe.

    Tested on Debian and OpenBSD.

    No automatic directory listings.

    ------------------------------------------------------------------------ #!/bin/sh -x
    ##
    ## TIADUNSLFANN Is A Dangerously Unsafe Nex Server Looking For A Nicer Name
    ##
    ## ncat -l -p 1900 -k -c ./tiadunslfann
    ##

    root="$PWD"
    alias mute-err='2>/dev/null '

    IFS='' read request

    if ! realrequest=$(mute-err realpath "$root/$request")
    then printf "E: bad request '%s'\n" $realrequest
    exit
    fi

    case "$realrequest" in
    $PWD*) ;;
    *) printf "E: bad request '%s' outside doc root\n" $realrequest ; exit ;;
    esac

    if [ -f "$realrequest" -a -r "$realrequest" ]
    then cat "$realrequest"
    elif [ -d "$realrequest" -a -r "$realrequest/index" ]
    then cat "$realrequest/index"
    else printf "E: bad request, no idea about '%s'\n" "$request"
    fi
    ------------------------------------------------------------------------


    * MicroPython

    /!\ Only minimally tested with MicroPython's ESP8266 and Unix ports,
    treat it as unsafe.

    ------------------------------------------------------------------------ #!/usr/bin/env micropython
    ##
    ## The Ridiculously Simple MicroPython Nex Server
    ##
    ## trsmpns.upy.py
    ## \ \
    ## \ editors shall read this as Python source
    ## but MicroPython != Python
    ## e.g. sockets are streams by default
    ##
    import os, socket

    def main():
    s = socket.socket()
    ai = socket.getaddrinfo("0.0.0.0", 1900)
    addr = ai[0][-1]
    s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    s.bind(addr)
    s.listen(5)

    while True:
    client_stream, client_addr = s.accept()
    req = client_stream.readline()[1:-1].decode() # "/req\n" -> "req"

    while True: ## try and ignore errors.
    try:
    client_stream.write(open(req).read())
    break ## req was a file
    except:
    pass

    try:
    client_stream.write(open("./"+req+"/index").read())
    break ## req was a dir with index file
    except:
    pass

    try: ## silently ignore other types than file and dir
    client_stream.write("=> ..\n")
    for f in os.listdir("./"+req):
    st = os.stat("./"+req+"/"+f)[0] & 0xc000
    if st == 0x8000: tc = ""
    elif st == 0x4000: tc = "/"
    if st: client_stream.write("=> "+f+tc+"\n")
    break ## req was a dir without index file
    except:
    pass

    break

    client_stream.close()

    main()
    ------------------------------------------------------------------------

    <https://web.archive.org/web/20240524223243/https://yeti.tilde.institute/dillo-screenshots/20240401-074634__dillo__trsmpns_at_home.png>
    <https://yeti.tilde.institute/dillo-screenshots/20240401-181148__dillo__trsmpns_on_ESP8266.png>


    * The End.

    Both were fun for my use case, YMMV.

    --
    I do not bite, I just want to play.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Daniel@21:1/5 to yeti on Wed Jul 3 00:56:46 2024
    yeti <yeti@tilde.institute> writes:

    "Arti F. Idiot" <addr@is.invalid> writes:

    If you're wanting to play around with Nex I know of two Nex server
    daemons, nexd (Go-based; see nightfall.city for details) and sonexd
    (socat+bash based; see https://rawtext.club/~woog/nex/ for details).

    I think checking for sane paths to avoid serving not so public info is
    the only complex part in a NEX server (but there may be libs for that). Laziness is one of my well known superpowers and I just needed a server
    to locally test a NEX plugin for Dillo, so I did not care/test much.

    Maybe I'll restart may hacks somewhen e.g. with a ZIP as pseudo-FS or
    some other kind of "naturally" being separated from the main FS. That'd
    make it much easier and lots of editors already can "transparently" edit stuff in archives.

    Reading beyond this line equals signing a NLA (non laughing agreement):

    Now THAT's funny.

    But anyway, reading below leads me to think that the NEX protocol is
    dangerous.

    Not sure what your scripts do. What are the use cases for NEX anyway?




    * NCAT + SH

    /!\ Barely tested, treat it as unsafe.

    Tested on Debian and OpenBSD.

    No automatic directory listings.

    ------------------------------------------------------------------------ #!/bin/sh -x
    ##
    ## TIADUNSLFANN Is A Dangerously Unsafe Nex Server Looking For A Nicer Name ##
    ## ncat -l -p 1900 -k -c ./tiadunslfann
    ##

    root="$PWD"
    alias mute-err='2>/dev/null '

    IFS='' read request

    if ! realrequest=$(mute-err realpath "$root/$request")
    then printf "E: bad request '%s'\n" $realrequest
    exit
    fi

    case "$realrequest" in
    $PWD*) ;;
    *) printf "E: bad request '%s' outside doc root\n" $realrequest ; exit ;; esac

    if [ -f "$realrequest" -a -r "$realrequest" ]
    then cat "$realrequest"
    elif [ -d "$realrequest" -a -r "$realrequest/index" ]
    then cat "$realrequest/index"
    else printf "E: bad request, no idea about '%s'\n" "$request"
    fi
    ------------------------------------------------------------------------


    * MicroPython

    /!\ Only minimally tested with MicroPython's ESP8266 and Unix ports,
    treat it as unsafe.

    ------------------------------------------------------------------------ #!/usr/bin/env micropython
    ##
    ## The Ridiculously Simple MicroPython Nex Server
    ##
    ## trsmpns.upy.py
    ## \ \
    ## \ editors shall read this as Python source
    ## but MicroPython != Python
    ## e.g. sockets are streams by default
    ##
    import os, socket

    def main():
    s = socket.socket()
    ai = socket.getaddrinfo("0.0.0.0", 1900)
    addr = ai[0][-1]
    s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    s.bind(addr)
    s.listen(5)

    while True:
    client_stream, client_addr = s.accept()
    req = client_stream.readline()[1:-1].decode() # "/req\n" -> "req"

    while True: ## try and ignore errors.
    try:
    client_stream.write(open(req).read())
    break ## req was a file
    except:
    pass

    try:
    client_stream.write(open("./"+req+"/index").read())
    break ## req was a dir with index file
    except:
    pass

    try: ## silently ignore other types than file and dir
    client_stream.write("=> ..\n")
    for f in os.listdir("./"+req):
    st = os.stat("./"+req+"/"+f)[0] & 0xc000
    if st == 0x8000: tc = ""
    elif st == 0x4000: tc = "/"
    if st: client_stream.write("=> "+f+tc+"\n")
    break ## req was a dir without index file
    except:
    pass

    break

    client_stream.close()

    main() ------------------------------------------------------------------------

    <https://web.archive.org/web/20240524223243/https://yeti.tilde.institute/dillo-screenshots/20240401-074634__dillo__trsmpns_at_home.png>
    <https://web.archive.org/web/20240524223242/https://yeti.tilde.institute/dillo-screenshots/20240401-181148__dillo__trsmpns_on_ESP8266.png>

    * The End.

    Both were fun for my use case, YMMV.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Arti F. Idiot@21:1/5 to Lawrence Woodman on Thu Jul 4 08:13:45 2024
    On 7/4/24 12:54 AM, Lawrence Woodman wrote:
    On Wed, 03 Jul 2024 00:56:46 -0700, Daniel wrote:

    yeti <yeti@tilde.institute> writes:

    "Arti F. Idiot" <addr@is.invalid> writes:

    If you're wanting to play around with Nex I know of two Nex server
    daemons, nexd (Go-based; see nightfall.city for details) and sonexd
    (socat+bash based; see https://rawtext.club/~woog/nex/ for details).

    I think checking for sane paths to avoid serving not so public info is
    the only complex part in a NEX server (but there may be libs for that).
    Laziness is one of my well known superpowers and I just needed a server
    to locally test a NEX plugin for Dillo, so I did not care/test much.

    Maybe I'll restart may hacks somewhen e.g. with a ZIP as pseudo-FS or
    some other kind of "naturally" being separated from the main FS.
    That'd make it much easier and lots of editors already can
    "transparently" edit stuff in archives.

    Reading beyond this line equals signing a NLA (non laughing agreement):

    Now THAT's funny.

    But anyway, reading below leads me to think that the NEX protocol is
    dangerous.

    Not sure what your scripts do. What are the use cases for NEX anyway?

    It's a very simple protocol and there's nothing inherently dangerous about it. That this server may or may not be particularly secure is no
    reflection on the protocol itself. All it does is essentially serve files using the selector provided. In this respect it is much like Gopher only without instead of serving gophermaps it serves plain text pages which
    link to other pages or files using => followed by a selector or url and
    then followed by a description like a user name.

    The links can either be non absolute e.g. booth/ will link to a directory called booth in the current directory or /blog which would like to a directory at the root of the served files. URLs are also supported.

    When the nex serves receives a selector and it is a directory it looks for
    an index file, which as above is just a plain text file which it then
    serves. If it fails to find one it lists the directory using the contents
    of .header if present to provide a text header for the listing.

    Any other files sent the client has to determine what format they are and this is largely done using the file extension. This makes it much easier than the serve having to determine file types.

    Unlike Gopher the selectors do actually mean something to the client and refer to a filesystem hierarchy. This makes pointing to relative paths
    easy and something that can't be done in Gopher. Indeed it is something
    that some Gopher clients get wrong and can be a bit of a pain.

    All in all it is a really nice protocol and works very well. It has downsides of course such as no error code to say that something hasn't
    been found - instead relying on a plain text message to be interpreted by
    the user. It is also doesn't handle the other things that Gopher doesn't handle such as resumable downloads, file size indication, etc.

    As AI says if you're interested point a gopher browser at:
    gopher://nightfall.city:1900/0/
    and have a look around. You just need to edit the URL/selector to reflect the page you want to look at.

    Best wishes

    Lorry

    ---
    Modula-2 Compilers on CP/M https://techtinkering.com/articles/modula-2-compilers-on-cpm/


    Lorry,
    Very nice Nex write-up! I wasn't aware of the .header file thing and
    there doesn't seem to be any mention of them in the specification text
    on nightfall.city[1]. Is it documented elsewhere? I think I'd actually
    prefer that "dotfiles" be completely ignored so as to provide an easy
    way to hide files that one doesn't necessarily wish to remove from the
    file tree.

    Cheers,
    Arti

    [1] https://nightfall.city/nex/info/specification.txt

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)