en-US/about_PSGopher.help.txt
TOPIC
about_PSGopher SHORT DESCRIPTION A PowerShell module to download resources via Gopher. LONG DESCRIPTION The PSGopher module allows you to connect to Gopher and Gopher+ servers and download resources and attributes. It has one cmdlet, Invoke-GopherRequest (alias: igr). EXAMPLES Example 1: Viewing Contents This example connects to Floodgap's Gopher server and return the content. PS C:\> $response = Invoke-GopherRequest gopher://floodgap.com PS C:\> $response.Content Welcome to Floodgap Systems' official gopher server. Floodgap has served the gopher community since 1999 (formerly gopher.ptloma.edu). […] Example 2: Viewing Metadata The -Info parameter will retrieve attributes about a resource, if the server supports Gopher+. PS C:\> igr -Info gopher://example.com/article.txt INFO : 0article.txt /article.txt example.com 70 + ADMIN : { Admin: John Doe <jdoe@example.com>, Mod-Date: Sun Nov 28 15:24:21 2021 <20211128152421> } VIEWS : text/plain: <11k> ABSTRACT : This article exists for documentation purposes. Example 3: Downloading Files You can download files with the `-OutFile` parameter. PS C:\> Invoke-GopherRequest 'gopher://example.org/pic.gif' -OutFile pic.gif Example 4: Viewing Links The `Links` property of a successful Gopher request contains all of a page's links. PS C:\> (igr gopher://floodgap.com).Links | Select -First 1 href : gopher://gopher.floodgap.com/gopher/proxy Type : 0 Description : Does this gopher menu look correct? Resource : /gopher/proxy Server : gopher.floodgap.com Port : 70 UrlLink : False Example 5: Sending Input The `InputObject` parameter (or pipeline input) can be used to send a query string to a Gopher server. PS C:\> igr gopher://gopher.floodgap.com/7/v2/vs -InputObject 'search terms' Pipeline input is also supported: Read-Host -Prompt 'Search for' | igr 'gopher://gopher.floodgap.com/7/v2/vs' Due to how the PowerShell runtime handles [System.Uri] objects with non-HTTP and non-HTTPS schemes, it is strongly recommended that you use -InputObject when creating URIs with query strings. This cmdlet will do the URL-encoding for you when using this parameter. However, if you're bold, you can build a URL by hand for the -Uri parameter. TROUBLESHOOTING NOTE There are a few bugs and missing features in this version: Gopher+ Directory Listings Are Plain Text Gopher+ directory listings aren't fully supported by this version. While you can fetch any attributes with the -Info parameter and get them as an object, doing this on a menu/Gophermap or directory will return plain text. This may be updated in a future release. Using SSL/TLS Requires a Secure Connection Using the -UseSSL parameter (or a gophers:// URL) will require that a secure connection be made with the server. If TLS cannot be negotiated, the cmdlet will intentionally fail. Seeing as how Gopher predates SSL and TLS by many years, support for secure Gopher may be fairly rare. This cmdlet does not support opportunistic encryption (yet?), but it can be done by using pipeline chaining operators: PS C:\> Invoke-GopherRequest $uri -UseSSL || Invoke-GopherRequest $uri SEE ALSO - `Invoke-WebRequest`, which this cmdlet is modeled after. - RFC 1436, "The Internet Gopher Protocol". https://tools.ietf.org/html/rfc1436 - RFC 4266, "The Gopher URI Scheme". https://tools.ietf.org/html/rfc4266 - Gopher+. http://gopherinfo.somnolescent.net/documentation/gopherplus.html KEYWORDS - Gopher - Gopher+ - GopherPlus - SecureGopher - SecureGopher+ - SecureGopherPlus - RFC1436 - small web - WWW alternatives |