Git Product home page Git Product logo

buran's People

Contributors

corewala avatar licaon-kter avatar rudmannn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

buran's Issues

Buran not using selected "dark" theme on startup

When I first start Buran, it uses the light "theme" even though I have it configured to use the "dark" theme. I have to go into the settings screen, select a different theme, then select "dark" for it to use the dark theme again.

In the screen shot, you can see the "light" colored theme being used by the settings screen, despite the "Dark" theme being selected.

IMG_4323

If I use another app, and swap back, the dark them is still in use. However if I'm running to many other applications, and switch back to Buran, it uses the light theme again. I assume Android is suspending/killing Buran, and then restarting it.

If it matters, I am using a Kindle Fire 7 9th Generation (running FireOS 7, which is based on Android 9)

Buran failing to connect to capsule. TLS issue?

I noticed that Buran v1.12 is failing to connect to a capsule when other Gemini clients do. Specifically this when accessing the capsule gemini://lark.gay/ I am seeing a dialog that reads:

Error
Bad response: Server Error:
Connection closed by peer

I'm running Buran v1.12 on a Amazon Fire tablet, with the latest updates to the OS.

I suspect this might be a TLS issue, and the ciphers Buran is offering in the TLS handshake don't align with what the server wants. Or it could be something else entirely. Below is the outout of sslscan, which shows what ciphers and key exchanges a TLS-protected service supports. This may aid your debugging:

$ sslscan lark.gay:1965
Version: 2.1.2
OpenSSL 3.2.0 23 Nov 2023

Connected to 137.184.49.7

Testing SSL server lark.gay on port 1965 using SNI name lark.gay

  SSL/TLS Protocols:
SSLv2     disabled
SSLv3     disabled
TLSv1.0   disabled
TLSv1.1   disabled
TLSv1.2   enabled
TLSv1.3   enabled

  TLS Fallback SCSV:
Server does not support TLS Fallback SCSV

  TLS renegotiation:
Session renegotiation not supported

  TLS Compression:
OpenSSL version does not support compression
Rebuild with zlib1g-dev package for zlib support

  Heartbleed:
TLSv1.3 not vulnerable to heartbleed
TLSv1.2 not vulnerable to heartbleed

  Supported Server Cipher(s):
Preferred TLSv1.3  128 bits  TLS_AES_128_GCM_SHA256        Curve 25519 DHE 253
Accepted  TLSv1.3  256 bits  TLS_AES_256_GCM_SHA384        Curve 25519 DHE 253
Accepted  TLSv1.3  256 bits  TLS_CHACHA20_POLY1305_SHA256  Curve 25519 DHE 253
Preferred TLSv1.2  256 bits  ECDHE-ECDSA-AES256-GCM-SHA384 Curve 25519 DHE 253
Accepted  TLSv1.2  256 bits  ECDHE-ECDSA-CHACHA20-POLY1305 Curve 25519 DHE 253
Accepted  TLSv1.2  128 bits  ECDHE-ECDSA-AES128-GCM-SHA256 Curve 25519 DHE 253

  Server Key Exchange Group(s):
TLSv1.3  128 bits  secp256r1 (NIST P-256)
TLSv1.3  192 bits  secp384r1 (NIST P-384)
TLSv1.3  128 bits  x25519
TLSv1.2  128 bits  secp256r1 (NIST P-256)
TLSv1.2  192 bits  secp384r1 (NIST P-384)
TLSv1.2  128 bits  x25519

  SSL Certificate:
Signature Algorithm: ED25519
    Public Key: Unknown
Subject:  lark.gay
Altnames: DNS:lark.gay
Issuer:   lark.gay

Not valid before: Jan  1 00:00:00 1975 GMT
Not valid after:  Jan  1 00:00:00 4096 GMT

Buran not following redirect?

I'm noticing something odd with 31 redirects.

Going to gemini://gemi.dev/tests/ link works just fine:

Going to gemini://gemi.dev/tests (no trailing slash), the serve sends a 31 redirect to gemini://gemi.dev/tests/. Other clients follow it. Buran 1.12 just spins and spins the progress bar

Can you reproduce it? Its kind of driving me crazy

Preformatted text without closing ``` not parsed

According to gemini spec paragraph 5.4.3

Any line whose first three characters are "```" (i.e. three consecutive back ticks with no leading whitespace) are preformatted toggle lines. These lines should NOT be included in the rendered output shown to the user. Instead, these lines toggle the parser between preformatted mode being "on" or "off".

So, that implies, toggles may not be paired, and there could be only one ``` in file. However, Buran doesn't render text from ``` to end of file at all

Steps to reproduce:

  1. Create page starting with three backticks line
  2. Do not add three backticks at the end
  3. Buran will show you a blank page

Buran not reloading dynamically generated images

I have a CGI in Gemini that returns a different image each time you load it:

gemini://gemi.dev/cgi-bin/xkcd.cgi

This displays a random image of the XKCD comic. If you go to that URL, and refresh the page, other Gemini clients like Lagrange or Elaho will show a new image each time. Buran keeps showing the same image over and over. Looking at my capsule logs, I can see that Buran is making another request each time, and is getting a different sized resource each time.

This same issue exists in Ariane as well.

Expected Behavior: If Buran gets a different response for an image, it should display a different image

If it matters, I am using a Kindle Fire 7 9th Generation (running FireOS 7, which is based on Android 9)

Do a v1.13 release to incorporate critical bug fixes?

The last packaged release of Buran is v.1.12 from November of 2022. Since then, you have fixed some critical bugs, most importantly #33.

I don't have an easy way to build my own version of Buran, bundle it into an apk, and deploy it to my Android device. Can you please bundle an official v.1.13 release that will include these bug fixes?

Thanks

Buran crashes on app launch without internet access

  1. Make sure Buran isn't running on your Android device. If it is, kill it.
  2. Turn on Airplane mode (or join a Wifi network that doesn't have internet access)
  3. Start Buran.
  4. Buran immediately crashes, with no dialog box or error

Expected Behavior: Buran should not crash. Ideally Buran should detect if the device is in Airplane mode (or otherwise not connected to the internet) and display an error message like "Device is in Airplane mode" or "Device does not have internet access"

If it helps you debug it, this same issue exists in Ariane as well.

If it matters, I am using a Kindle Fire 7 9th Generation (running FireOS 7, which is based on Android 9)

Link Rendering issue on wrapped lines with Emoji

Noticed this rendering bug when looking at antenna yesterday.

The 2nd link ("2022-05-17 Curiouser and Curiouser: More Chilly Weather improvements") from the top wraps onto 2 lines, but has a weird, extra underline in between the 2 lines. Strangely, this does no appear to effect other links that wrap onto 2 lines (e.g. the link for "2022-05-16 Idiomdrottning: When the EU wanted to own all computers" ).

IMG_4672

The only thing different about that line is the emoji 🤨.

Scrolling down I see 2 more Antenna posts where an emoji is used on a line that wraps and you get the same effect:

image

It looks like the emoji on the SpellBinding post also seems to "push down" the underline, but the bio waste symbol in StackSmith's post does not. Perhaps that's a different unicode character? I suspect if the SpellBinding line was longer we would see a problem with wrapping.

Here is the gemtext of Antenna right now so you can better test this.

gemtext.gmi.txt

Page crashes Buran v1.10

(BTW, thanks for all the incredible bug fixes you have been doing recently! In the last few months Buran has become a very stable and enjoyable gemini client)

When I navigate to this URL in Buran v1.10, I get a hard crash. No message is displayed, the app just closes:
gemini://gem.pwarren.id.au/gemlog/2020-08-18.gmi

To help with testing, you can start on the following page. The first link causes the crash:
gemini://going-flying.com/~mernisse/11.gmi

Lots of pages don't load

For some reason a lot of the known hosts on geminispace.info won't load. They do in another gemini browser (deedum).

Examples:
gemini://159.89.115.225
gemini://aaoth.xyz/visual

Potentially related, I can't get images to load either, and when I try to save the image using the three dot menu, it saves a corrupted file.

Buran 1.8: Connection Error on app Startup

I'm getting a Connection error screen when the app starts up:

image

This only happens if the app is not running, and you start it, as opposed to resuming it while already running.

Unfortunately issue #12 crashes the app completely, so when I start Buran again, I get this dialog

Feature Request: Show Titles in History view, other improvements

Consider making the "History" view look more like the Bookmarks view. Specifically the Bookmarks view shows the Title of a page, (if one could be extracted), and nicely displays even long URLs:

image

I can understand not showing the full URL, but I suggest truncating it nicely like

gemini://example.com/a-very-long-url-that-needs-to-be...

Also valuable would be a time/date stamp of when the history entry was visited.

List rendering bug in Buran 1.12

hello,

I noticed a render bug in Buran. Consider this Gemtext:

* hello I'm a list item!

*I'm a line* that starts with italics!

Buran renders both of that as list items, but the Gemtext spec says list lines start with * (* and a space) not just *`.

Here is a test page:

gemini://gemi.dev/tests/bug1.gmi

Links getting partially URL decoded and mangled before being sent

Noticing a problem when clicking on links that have other links URL encoded in them.

Here is a page from Gemipedia. It contains links to images.

gemini://gemi.dev/cgi-bin/wp.cgi/images?Moon

The Urls in the links contain an HTTP URL that is passed via the query string. Looking at the Gemtext, you can see a properly encoded URL:

# Image Gallery: Moon
[...snip...]

=> /cgi-bin/wp.cgi/media/media.jpg?https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2Fe%2Fe1%2FFullMoon2010.jpg%2F440px-FullMoon2010.jpg The near side of the Moon (north is at top)

When clicking with this link with Buran v1.7, this is the incoming URL that I see in my logs:

gemini://gemi.dev/cgi-bin/wp.cgi/media/media.jpg?https%3A/upload.wikimedia.org/wikipedia/commons/thumb/e/e1/FullMoon2010.jpg/440px-FullMoon2010.jpg

Notice that the / characters in the query string are not sent URL encoded. It also appears that the // in the https:// has be reduced down to a single /.

When I make this request with Lagrange or other clients, I see the correct URL requested in my logs:

gemini://gemi.dev/cgi-bin/wp.cgi/media/media.jpg?https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2Fe%2Fe1%2FFullMoon2010.jpg%2F440px-FullMoon2010.jpg

The biggest issue here is changing the encoded // to a single /, This means my server-side code gets an invalid URL from the query string, and I cannot fetch the needed image

Link without / at the end

Hello, I really like your browser. I have a problem with the links to gemini capsules. In the page if the link does not have a / at the end, the link does not work. Good day and thanks again.

JPEG not rendering (Shows black screen or "Permanent Failure")

I'm seeing something super strange in Buran 1.12:

This image does not render: gemini://circadian.gemlog.org/img/vr-sculptvr.jpeg
Instead I get the "Image" dialog, with no image rendered:

IMG_7267

Even stranger, this image is linked from this Gemtext page:
gemini://circadian.gemlog.org/2023-05-19-the-state-of-vr.gmi

The image is under the "Spectacular Multiplayer" heading, with the label "Screenshot".

When you click this image link in Buran 1.12, it alternates between displaying a "Permanent Failure" error dialog:

IMG_7269
and displaying the "Image" dialog with no image rendered. It is super strange

IMG_7267

Buran treats "mailto:" links as Gemini links with relative URLs

Buran thinks that mailto: links are gemini:// links with a relative URL.

If you are on gemini://example.com/ and click this link like

=> mailto:[email protected] Email me

Buran goes to the URL: gemini://example.com/mailto:[email protected] instead of what it should do, which is go to mailto:[email protected] which will launch the associated mail program (or nothing at all)

You don't need to specifically code for mailto: proper URL parsing would detect this. Parsing mailto:[email protected] should show a fully qualified URL with a scheme of mailto:. Its not a relative URL, because : is a reserved, general delimiter (according to the URL Generic Syntax RFC linked off the Gemini protocol spec) and it has to be escaped if used outside of the delimited between scheme or between hostname and port in the authority. Basically use a proper URL parsing library and you will be fine

Odd, repeatable, localhost connection error

This is a really odd error, but it is consistent and repeatable. When attempting to load certain URLs, I will get this error message:

image

This is odd for several reasons, so I will try to provide as much information as I can:

  • I'm not making a request to localhost. I'm on a capsule (gemi.dev) and I'm clicking a link to that same capsule (as an example lets say gemini://gemi.dev/example?foo")
  • Other URLs on that capsule are working fine (e.g. gemini://gemi.dev/other-example doesn't trigger the error), so I'm not sure why a "Connection Error" is happening. Clearly Buran can connect to the host and get responses.
  • Clicking the same link over and over again generates the same error dialog, but the port number in the from /;; (port X) part of the error message increases by 6.
  • This only happens on URLs with query strings
  • Looking at my capsule logs, I can see that a request came in and I can see that a successful status code and body were returned to the client. Again, not sure why a "connection error" happens when the host is getting the request and return a response
  • There is nothing weird or special about the returned content. Its a few thousand bytes of gemtext

I'm not sure if this will reproduce for you. I'm on the page:
gemini://gemi.dev/cgi-bin/wp.cgi/view?f101. Click thing the links for "F-101 Voodoo" or "Dominican frigate" cause the error. Clicking on "General Electric F101" does not.

Like I said it's weird. It only happens on URLs with query strings. I have seen this happen on other capsules like search engines as well.

TLS 1.3 capsule giving a Server Error: Handshake failed

In Buran 1.12, I'm getting the following error when trying to access a capsule:

Error
Bad response: Server Error:
Handshake failed

The URL is gemini://gemini.locrian.zone/gemlog/darkmode.gmi, but I get the same error for any page on that Capsule.

This capsule works fine in other clients like Lagrange. I assume there is a problem with the TLS library/support that Buran has. I used openssl s_client -connect gemini.locrian.zone:1965 to see more about the TLS handshake:

CONNECTED(00000005)
depth=0 CN = gemini.locrian.zone
verify error:num=18:self-signed certificate
verify return:1
depth=0 CN = gemini.locrian.zone
verify return:1
---
Certificate chain
 0 s:CN = gemini.locrian.zone
   i:CN = gemini.locrian.zone
   a:PKEY: ED25519, 256 (bit); sigalg: ED25519
   v:NotBefore: Dec  4 20:35:43 2022 GMT; NotAfter: Dec  4 20:35:43 2023 GMT
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIBUDCCAQKgAwIBAgIRAOOnMbTyI5ypHG2Mj3TUzG0wBQYDK2VwMB4xHDAaBgNV
BAMTE2dlbWluaS5sb2NyaWFuLnpvbmUwHhcNMjIxMjA0MjAzNTQzWhcNMjMxMjA0
MjAzNTQzWjAeMRwwGgYDVQQDExNnZW1pbmkubG9jcmlhbi56b25lMCowBQYDK2Vw
AyEA8iJz0LjhdK9mJZpkYTNVDoCvavccx3JBKMskAsDVAXSjVTBTMA4GA1UdDwEB
/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB4GA1Ud
EQQXMBWCE2dlbWluaS5sb2NyaWFuLnpvbmUwBQYDK2VwA0EArEy6sqzS9X2sKJXo
iFNXBgal9RLXt08YjiuHYsQPVzGEE27cNMHiOiF0cIA1XvQAPh2zTxVVMQPM6E7V
fVCSDw==
-----END CERTIFICATE-----
subject=CN = gemini.locrian.zone
issuer=CN = gemini.locrian.zone
---
No client certificate CA names sent
Peer signature type: Ed25519
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 688 bytes and written 385 bytes
Verification error: self-signed certificate
---
New, TLSv1.3, Cipher is TLS_AES_128_GCM_SHA256
Server public key is 256 bit
This TLS version forbids renegotiation.
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 18 (self-signed certificate)
---
---
Post-Handshake New Session Ticket arrived:
SSL-Session:
    Protocol  : TLSv1.3
    Cipher    : TLS_AES_128_GCM_SHA256
    Session-ID: 25AC10AD9A84E9D3F61487E5956538DFBDA2D20E1DA8C773F19D5E89B85A9EDF
    Session-ID-ctx: 
    Resumption PSK: 3D2C4C61E98086285EE763ED1F657C9F63D740867729AE385576BB04792A489A
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 604800 (seconds)
    TLS session ticket:
    0000 - bf 5f 20 94 99 3a 0a a8-03 a0 fa d2 21 f1 ef 64   ._ ..:......!..d
    0010 - da 41 af fe 12 54 45 ed-16 1f 98 0c d1 c8 97 77   .A...TE........w
    0020 - 52 b8 07 ad a4 93 0f f9-07 b3 dd 3f ca 98 1a 28   R..........?...(
    0030 - e2 65 fc 67 bf f1 31 7d-07 cb 00 3a c4 09 fe 43   .e.g..1}...:...C
    0040 - e6 d6 16 a9 f2 f7 2b d6-c6 e0 90 50 64 37 6e cb   ......+....Pd7n.
    0050 - 34 16 48 e9 7a c0 ea 92-67 55 53 a8 ea 54 bc dd   4.H.z...gUS..T..
    0060 - 94 6b 83 55 e1 2b 6e 5b-13 f2 40 67 68 c8 e8 5d   .k.U.+n[..@gh..]
    0070 - fd                                                .

    Start Time: 1692703689
    Timeout   : 7200 (sec)
    Verify return code: 18 (self-signed certificate)
    Extended master secret: no
    Max Early Data: 0
---
read R BLOCK

Clarify some of the to-do list items

The to-do list items could be moved into github discussions (if enabled) or issues in a project board. And some clarification could be provided for some of the points:

  • What does "page navigation feature" refer to? Showing an outline of the titles/subtitles in a document?
  • Does "Simple A/B page switching system" mean having tabs as most web browsers?
  • What points of the Egsam test fail or aren't implemented?

v1.7v/1.8 No internet connection, Android 7/8

Not sure this is related to any of the similar connection issues.

Hadn't updated my apps in a bit. My ROMs had Buran 1.6 (all good except dark theme never sticks). On both Nougat and Oreo, v1.8 produces a toast at the bottom that says "No internet connection". Not even allowed to tap into the address bar, keyboard will not show.
Uninstalled and tried v1.7. Same results. Version 1.6 is fine. Went back and forth between all three versions on both devices to verify behavior. Only 1.6 works.

Recorded a log but couldn't find any errors related to the app. Will check again and attach or haste.bin it.

Android 9 and 11, no issues with v1.8.

Buran 1.8: Flash of white screen during app startup

This is an annoyance more than broken functionality. Buran 1.8 fixes the issue #3 which is great. I use the dark theme because I primarily use Buran at night before going to sleep. Unfortunately, when the app starts (not when resuming) Buran displays an all-white screen for maybe a second before it then switches to using the dark theme. This is a surprise and kind of hurts my eyes.

This is especially prone to happen because of issues #12, which causes Buran to completely start more often

Feature request: HTTP proxy support

I've been playing with Duckling Proxy, which is a gemini-to-HTTP gateway.

Basically this acts as a proxy, converting HTML to gemtext on the fly, and responding with the appropriate gemini response codes/lines.

Other clients like Amfora, AV-98, and Lagrange allow you to define an HTTP proxy. When you click a link line in gemtext that points to an HTTP/HTTPS url, the client instead connects to the proxy and uses the HTTP(S) URL as the gemini request line. This is really cool since it makes it trivial to access images, etc, that happen to be linked.

From a developer perspective its nice since everything is still gemini requests and responses. Your HTTP link handling logic changes (handle it yourself vs pass to external program based on whether the proxy is configured), and perhaps the logic about what URLs are allowed to make it into gemini requests

I would suggest this as a cool feature for Buran. It would be inside of Settings, so it would not be disruptive to the normal user experience.

If you'd like to experiment, I actually run a public Duckling proxy that you can play with:
gemini://gemi.dev/stargate.gmi

Allow user to remove home capsule

Trying to fix #20 I've put a (space) instead of a link (I don't want/have a link anyway).

The app crashes continuously now and never starts:

FATAL EXCEPTION: main
Process: corewala.gemini.buran, PID: 29258
java.lang.RuntimeException: Unable to start activity ComponentInfo{corewala.gemini.buran/corewala.buran.ui.GemActivity}: java.lang.IllegalArgumentException: Illegal character in path at index 0:  
	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3432)
	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3596)
	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2067)
	at android.os.Handler.dispatchMessage(Handler.java:106)
	at android.os.Looper.loop(Looper.java:223)
	at android.app.ActivityThread.main(ActivityThread.java:7705)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:952)
Caused by: java.lang.IllegalArgumentException: Illegal character in path at index 0:  
	at java.net.URI.create(URI.java:848)
	at l2.g.b(Unknown Source:4)
	at o2.r.d(Unknown Source:17)
	at o2.r.c(Unknown Source:5)
	at corewala.buran.ui.GemActivity.onCreate(Unknown Source:20)
	at android.app.Activity.performCreate(Activity.java:7994)
	at android.app.Activity.performCreate(Activity.java:7978)
	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1310)
	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3405)
	... 11 more
Caused by: java.net.URISyntaxException: Illegal character in path at index 0:  
	at java.net.URI$Parser.fail(URI.java:2893)
	at java.net.URI$Parser.checkChars(URI.java:3066)
	at java.net.URI$Parser.parseHierarchical(URI.java:3150)
	at java.net.URI$Parser.parse(URI.java:3108)
	at java.net.URI.<init>(URI.java:584)
	at java.net.URI.create(URI.java:846)
	... 19 more

Not removing dot segments when resolving relative URLs

Buran 1.12 is not properly resolving relative URLs. Specifically, Buran is not removing "dot segments" (e.g. ../ or ./) which is required by RFC 3986 when resolving URLs.

Look at this URL:
gemini://rawtext.club/~winter/gemlog/2023/8-18.gmi

At the bottom of the page there is a link line:

=> .. gemlog

This relative URL should be resolved to the fully qualified URL gemini://rawtext.club/~winter/gemlog/, which should then be sent in the Gemini request. Instead, it Buran sends the URL gemini://rawtext.club/~winter/gemlog/2023/.. in the request. While some servers may handle that URL, most don't, including that capsule, which returns a 50 server error saying it's a bad request.

When resolving relative URLs, you should use the algorithm described in section 5.2 of RFC 3986, specifically section 5.2.4: Remove Dot Segments. Most URL libraries do this automatically when parsing/resolving URLs. Perhaps Buran is using an out-of-date library, or not using a proper URL parsing library.

PNG Image not rendering (Only shows empty "Image" dialog)

Buran 1.12 does not render the following image:

gemini://mntn.xyz/posts/2021-10-09-dithering-an-idea-whose-time-has-finally-come/219009.png

It only displays the "Image" dialog window, with it all empty. This is different than #48, where requesting the image alternates between a "Permanent Error" warning and an empty Image dialog. In this case, only an empty Image dialog is shown, every time you try to view the image.

That image is linked off this page:
gemini://mntn.xyz/posts/2021-10-09-dithering-an-idea-whose-time-has-finally-come/

With the link label "Dithered image"

Excess './' in the url causes page to not load

When try to browse "gemini://compudanzas.net/" on Buran and open a link, the browser shows the loading animation and it doesn't stop.

When copying the address, links appear to have extra "./" inserted. For example "gemini://compudanzas.net/./jarotsim.gmi". After manually removing them, the page loads without error. Also, if I try to open a link multiple times, more "./" are inserted.

Bizarely, this issue only seems to affects compudanzas, other websites I've tried load perfectly fine, even if the "./" are manually added.

Steps to reproduce:

  1. Go to "gemini://compudanzas.net/"
  2. Open any gemini link.

Feature Request: Different search engine options

Right now Buran uses TLGS as its search engine and there is no way to change this.

TLGS is great, but I'd like to use Kennedy (gemini://kennedy.gemi.dev).

Suggestion 1: Provide a list of search engines the user can choose (TLGS, Kennedy, and Geminispace.info)
Suggestion 2: Allow users to define their own search engine: Most ask that you specify the URL to use for the search, and the search terms are sent as a query string on that URL. This is approach is great since a) you don't have to maintain a list of search engines and b) it allows users to add search for specific sites or CGI's that have popped up, such as the recipe search or the Wikipedia frontend.

Headers without leading space don't render the first character

Buran 1.8 (and probably earlier) is not properly rendering Header lines that don't use whitespace between the # and the header text.

According to the Gemtext spec, whitespace after the # in a header is optional:

Lines beginning with "#" are heading lines. Heading lines consist of one,
two or three consecutive "#" characters, followed by optional whitespace,
followed by heading text.

But saw this while browsing:

image
Here is the gemtext:

#New things with the capsule
##New Hosting Provider
The ...

gemini://tilde.team/~smokey/logs/2022-05-25-new-things.gmi

Looks like Buran is assuming there is whitespace after the '#' and skipping the first character of the text

Capsule takes 2+ minutes to timeout

When accessing this capsule, Buran takes ~2 minutes 15 seconds before displaying a timeout error

gemini://54.203.8.106/

This is a very long time, during which the user only sees a loading animation. I suggest a much shorter timeout limit (say 30 seconds)

Crash when trying to open an address

v1.9 self built

Open the app
Block the home capsule loading (#20)
Put any link in the browser address bar: gemini://drewdevault.com
Press ENTER

FATAL EXCEPTION: main
Process: corewala.gemini.buran, PID: 2609
java.util.NoSuchElementException: List is empty.
	at w2.f.C(Unknown Source:2)
	at h.h.k(Unknown Source:4)
	at corewala.buran.ui.GemActivity.D(Unknown Source:6)
	at corewala.buran.ui.GemActivity.z(Unknown Source:2)
	at corewala.buran.ui.GemActivity.y(Unknown Source:1)
	at corewala.buran.ui.GemActivity$c.a(Unknown Source:1)
	at corewala.buran.ui.GemActivity$g.onEditorAction(Unknown Source:3)
	at android.widget.TextView.onEditorAction(TextView.java:7075)
	at com.android.internal.widget.EditableInputConnection.performEditorAction(EditableInputConnection.java:138)
	at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:363)
	at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:93)
	at android.os.Handler.dispatchMessage(Handler.java:106)
	at android.os.Looper.loop(Looper.java:223)
	at android.app.ActivityThread.main(ActivityThread.java:7705)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:952)

Loading wrong images

Going back in history to a page with inline images sometimes loads the wrong image from cache

Support for certificates with ecdsa-with-SHA512

Hello,

I run a community site with a private EC key. However, Buran does not seem to be able to open it. (I hope I have worded it correctly. I'm not that familiar with cryptography terms).
buran

Same for deedum (snoe/deedum#67).

OS information:
CalyxOS 3.5.1 based on LineageOS
Android 12
and
LineageOS for MircoG
Android 11

Buran displaying same image for URL despite different query string

I have a Gemini CGI that displays different images based on the query string. However Buran keeps displaying the same image, even though the query string has changed.

I run a Gemini mirror of the XKCD web comic. The comic number to display is passed via the query string. These 2 gemini links show different images in Elaho, Lagrange, and other Gemini clients

gemini://gemi.dev/cgi-bin/xkcd.cgi?55
gemini://gemi.dev/cgi-bin/xkcd.cgi?60

However Buran shows the same image for both. This same issue exists in Ariane as well.

If it matters, I am using a Kindle Fire 7 9th Generation (running FireOS 7, which is based on Android 9)

Buran incorrectly resolving Relative URLs with query strings

I noticed a bug in present in both Buran v1.10 and v1.11.

Relative URLs that are just query strings are not properly resolved. Consider I'm on page gemini://gemi.dev/example and it has a link line like this:

=> ?test test list

Clicking that should send a request for gemini://gemi.dev/example?test but instead it send a request for gemini://gemi.dev/?test

You can see an actual example with my Where in the World game: gemini://gemi.dev/cgi-bin/witw.cgi/play

Go to that page, then scroll down and click a link for a country. All those links are of the form:

=> ?,AF Afghanistan

So when you click Afghanistan the URL you should go to is gemini://gemi.dev/cgi-bin/witw.cgi/play?,AF but Buran is sending a request to gemini://gemi.dev/cgi-bin/witw.cgi/?,AF

Translation to Spanish

Hello. I would like to help in the Spanish translation of Buran. Is there a way to get in touch if you agree?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.