Pocket Gopher

So Sup Forums, being the autist that I am I've been working on a gopher browser for android for a few weeks now.
It's nothing special but still miles better than the now abandoned Overbite project.

I unironically need someone to make the icon.
Also need some people to just use it, report bugs and request features.

github.com/afonsotrepa/PocketGopher

I'm over at the lainchain irc right now if you wanna talk.

Other urls found in this thread:

coroflot.com/phildziedzic/general-graphics
gopher.floodgap.com/overbite/d?android
github.com/afonsotrepa/PocketGopher
github.com/afonsotrepa/PocketGopher/blob/e86eca81e78039c7de352098c81fb5e0cbecaf2d/app/src/main/java/com/gmail/afonsotrepa/pocketgopher/gopherclient/GopherLine.java
khzae.net),
khzae.net/;/chan/1479481214_1/file_1481120569.webm
en.wikipedia.org/wiki/Gopher_(protocol)
twitter.com/SFWRedditVideos

posting screenshots

...

What's wrong with the image you pasted as icon?

Nice, will you put it in f-droid? Also, check /gd/.

coroflot.com/phildziedzic/general-graphics

the fact I don't have the rights to it (and it doesn't seem to be foss)

Yeah I will, just need to get a good icon so it doesn't look like total shit when people see it in the store.

Ah not sure what you mean by /gd/, didn't find anything in the catalog.

>java

Than why did you post it on this board? Isn't that copyright infringement?

>Ah not sure what you mean by /gd/, didn't find anything in the catalog.

oh shit I thought you were talking about a thread and not a board.
thanks

Just in case anyone is interested, I've made a thread a more permanent thread in the lambda board of lainchan. (can't link it cuz moot)

I like it, I'll have to keep testing things out.

oh shit what server are you using to do that?

Also, thanks for trying it out, feel free to request features here or in the lainchan thread.

>oh shit what server are you using to do that?
I'm retarded, you're obviously using khzae.net .

gopher://khzae.net/1/phourchan/g

gopher.floodgap.com/overbite/d?android is another Android Gopher client if you haven't already checked it out. They link to a defunct(?) project also called PocketGopher but the link is dead.

As for features, a monospace font option might be nice, and a way to enter a selector/Gopher URI without creating a bookmark (maybe I just missed how to do this though?)
I think the malformed line at gopher://khzae.net/1/chan/1484857696_5 is causing it to crash:
i fake (NULL) 0
Indented text
i fake (NULL) 0
I should add some user input cleaning on my side to prevent such a line in the first place as well

Oh, I had no idea there was another project with the same name, thanks.

Yeah there's no way to enter an uri without creating a bookmark atm.
I'll work on adding that and an option for a monospace font, just give me a sec.

I'll have to see what exactly is causing that yeah, expect a bug fix in a few hours.

well here it is
github.com/afonsotrepa/PocketGopher

I’ll add a way to go to pages without bookmarking them tomorrow.

The mono-space font does look really good, thanks for the recommendation.

nobody cares

That image is just a cartoon version of an old meme anyway

Sure, doesn't mean the creator doesn't have exclusive rights to it tho.

Great! I'll keep testing as I use it. From what I've seen so far your client is already basically on par with Overbite for Android, better in some ways (like supporting binary file downloads), so I'll probably switch to yours.

You might want to add the ability to download items of "unknown" type, besides just showing that error icon, so users can at least open them with their app of choice.

Here's some other items that are causing a crash for me:

gopher://khzae.net/d/s1kd/s1kd-tools/sample/S1000D_tools.pdf

A PDF document, which my Gopher server (Bucktooth) marks as non-standard item type 'd'. It's handled as a binary file and the download prompt appears, but after hitting the "Save" button PocketGopher crashes.

gopher://khzae.net/;/chan/1479481214_1/file_1481120569.webm

The video files (Gopher+'s ';') I've tried all seem to crash PocketGopher. I tried the above and an MPEG4 file on a private Gopher server.

Update to the first item: the crash actually occurs with any file if it already exists in the Downloads folder. I don't get the "File already exists" message that I think is intended to appear according to github.com/afonsotrepa/PocketGopher/blob/e86eca81e78039c7de352098c81fb5e0cbecaf2d/app/src/main/java/com/gmail/afonsotrepa/pocketgopher/gopherclient/GopherLine.java

Oh looks like I was trying to take a shortcut when downloading binary files, that's a very easy fix, I'll release it in less than an hour (have to go do stuff irl, sorry)


Unfortunately I couldn't test the video support because I couldn't find any place which used that item type (I even tried asking around the sdf irc), so it really doesn't surprise me that it led to a crash.
Can you direct me to a public server using that item?
(You'll probably have to wait for tomorrow morning for a fix tho)

Again, thanks for the help, I'm still new to gopher as a whole.
Just in case this thread dies and I don't make a new one, here's the lainchan thread:
lainchan org/%CE%BB/res/4914.html

Don't worry too much about it of course, it's free software so you're not under any obligation. And you're already ahead of the "competition" IMO (competition that hasn't left alpha/updated since 2010, but still). And while I don't use Java regularly, I'll certainly take a look when I encounter issues, and possibly make a pull request on the GitHub repository.

The link in is technically a "public server" using ';'. The ';' for generic "movie" item type comes from Gopher+ (gopher://gopher.floodgap.com/0/gopher/tech/gopherplus.txt), along with '>' for generic "sound" and ":" for generic picture ('I' tended to be associated with the JPEG format despite the standard saying it could be any type).

There's no real reason you can't just treat ';' as any other "non-standard" (not defined in RFC 1436, gopher://gopher.floodgap.com/0/gopher/tech/rfc1436.txt) type of course, but here's how a few Gopher clients I've used have handled it:

- OverbiteFF (plugin for Firefox): initiates a download prompt
- Lynx: attempts to play with default video player application/video player set in Lynx config
- UMN Gopher client: attempts to open with program set for ';' in .gopherrc

For the HTTP-Gopher proxy my server uses (khzae.net), I basically had it use the file extension to give the web browser a MIME-type, forwarding the responsibility of handling the video file to the web browser. That's why khzae.net/;/chan/1479481214_1/file_1481120569.webm should (depending on the browser) play inside the browser.

If you want to do something better than just treating the video file like other binary files and downloading it, maybe try and open it with whatever the user has set as the default video player, like most Android file browser apps tend to do.

i'll attempt a logo desu what sorta thing you want, i dont have a graphics tablet rn so cant do proper drawing

Yeah I was jerry rigging the video support when I should really just open it in the default media player.
Same for the audio.
Give me a sec and I'll see what I can do.


I was thinking of a simple gopher mascot in the material design style.
Something like would also be great.
Or you could do something more abstract and make it kind of /cyb/???

I really don't know, I'm shit with this kind of stuff, I'll leave it up to you, thanks.

Sorry i couldn't resist

Well fuck, looks like I didn't push the last changes to github even tho I did update the release apk correctly.
I think I've fixed those two bugs but have no real way to test it and don't want to push it without those earlier changes for fear of fucking shit up even more so I'll just do all of that tomorrow morning.

Well that's actually pretty cute.
C-could I get one with arms tho? Thanks ;_;


Also, fuck you android studio, you memory hogging piece of shit.

Where do you want the arms draw on it roughly and i'll try do them

hm just like slightly below the jaw/cheeks if the op is anything to go by.
see if you can make him flex ;^)

Also, the idea of a flexing gopher made me think of this slogan:
Pocket Gopher - the small but powerful gopher client that fits in your pocket

Sorry if this isn't okay kek i could try modifying it but i need to sleep if you have another thread up tomorrow I will pop in and adjust it if needed

I'm not autistic, what is this Gopher? Text files?

Nah senpai it's great, thanks.
Reminds me of ESR desu ;^)


en.wikipedia.org/wiki/Gopher_(protocol)

Yeah, kinda. It's a pre-http protocol that is based on directories and files.
Obviously it has a big overlap with BBS's and the whole textpunk movement (fortunately I've never seen that cringy term used there tho).

I recommend checking out sdf.org to get started.

>gopher://khzae.net/1/phourchan/g
>gopher://khzae.net/1/chan/1484857696_5
A board in gopher!!!! HOW?

It's just a Sup Forums archive

The bottom is a board in gopher.

>HOW?
Search selectors, basically the only form of user input in Gopher0. There's actually a few of these, check out gopher://gopher.su/1/board and gopher://port70.net/1/chan. The latter uses telnet for user input instead, which gives you more flexibility but obviously it's no longer just Gopher.

Other protocols could also be used for user input, I wrote a sort of Gopher wiki that used FTP and git to submit pages but haven't really thought of much use for it yet.

Gopher+ added the equivalent of HTML forms, but I don't believe any client except the UMN gopher client actually implements much of Gopher+.

Yeah I noticed people were complaining that the search query/selector hack is kinda limited.
If you figure out a better way to do it that is back compatible with gopher I'd have no problem implementing it (a new item type maybe?)

Also, I was thinking of implementing Gopher+ but then people told me it's basically obsolete and dead rn so I just used a pdf someone gave me named "gopher standard draft", or something like that, that listed the currently used item types. It did include ";" but never mentioned Gopher+.

idk what said PDF is, but the closest thing to a "standard" would be RFC 1436. But that doesn't include many types people would consider standard, like 'i' for text in menus. Gopher wasn't around enough to get the sort of standards that organizations like the W3C did for Web technologies.

I experimented with base64 as a workaround for the search query limitations, see gopher://khzae.net/1/chan/1484857696_5, which could be used in combination with a new item type to make a form which can be sent/submitted in a way that is almost 100% compatible with RFC 1436. The one snag is that the RFC states "The Selector string should be no longer than 255 characters", which doesn't break the idea but obviously severely limits how much data you can send to the server in one request, making it mostly useless. But, the Gopher server I use, Bucktooth, had no issue accepting a > 255 character selector, and I suspect any server updated in the past decade or so probably wouldn't either.

You still need a special client however, so I don't know if it's worth implementing over implementing enough of Gopher+ to get +ASK forms.

If you'd like to compare the two though, the theory is basically:
1. Client access a "form" (e.g. type 'f')
2. Server sends a form definition
3. Special client uses the definition to present an interactive form to the user
4. When user "submits", special client turns the answers in to something like multipart/form-data format, encodes that to base64, and sends that as the the search string to the selector defined as the "action" in the form definition
5. The "action" resource on the server processes the encoded input

How do you add a new server?

I keep trying to connect with settings like pic related.

I think you want to remove the gopher:// part, that's the protocol piece of a Gopher URI (like http:// is for HTTP URIs) but not actually part of the server name.

It worked thanks user