.idea | ||
app | ||
gradle/wrapper | ||
.gitignore | ||
build.gradle | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
LICENSE | ||
README.md | ||
settings.gradle |
Två
A Gemini protocol browser for Android based OS (Två = Swedish: two)
Releases
See the project page on Öppenlab.net for latest download: oppenlab.net/pr/tva
Future Development
Bookmarks
Två needs bookmarks, requirements:
- All fields fully editable
- Title should be inferred from the bookmarked page (from first header line:
#
,##
, or###
) but user can override when saving - User should be able to specify and organise folders (1 levels only, keep it simple)
- Allow reordering via simple 'move up' and 'move down' overflow options.
- 'Move to' option to move to top-level or a folder
Certificates
//todo
Aggregation
See below for initial thoughts on aggregation. A simpler approach is to allow the user to follow any page, store a cache of the page, poll periodically, and display any change delta. This approach will work for both common Gemlog formats (links to separate pages, or journal single page logs):
State when user chooses to follow a page:
=> bar/ link to a gemlog page
=> foo/ my first post
3rd party updates their blog:
=> baz/ new post!
=> bar/ link to a gemlog page
=> foo/ my first post
Delta displayed in app feed:
=> baz/ new post!
Aggregation (Original Notes)
There's a lot of good 'Gemlog' content in Geminispace but no easy way to follow other users. Rather than use Atom/RSS which requires users to manually edit xml files, or use some other software it'd be good if a defacto standard emerged. Två will attempt to infer a Gemlog index from the contents of a page and display a 'follow' option to add the Gemlog to an aggregated in-app feed:
Inferred
- Presence of various words in the first few lines of content AND:
- A series of links that include a date (where a gemlog links to other pages) OR:
- A series of dates in the page (more difficult to get right, but some microblogs are just a series of entries separated by dates)
Specification A
To guarantee an option to follow content: first header (any of the 3 sizes) in a page includes the words: gemlog
, feed
, log
, blog
, μlog
AND links on adjacent lines that include dates in the link title.
Date formats:
yyyy-mm-dd
ISO 8601dd-mm-yyyy
Reverse ISO 8601- Either of above with other common delimiters, eg. 01/05/2020
Example:
# My Gemlog
=> /more dd/mm/yyyy optional
=> /another dd/mm/yyyy
=> /first dd/mm/yyyy hello, World!
Questions/Notes
- American 'freedom' date format
mm/dd/yyyy
should be rejected if possible (what were they thinking?) - Two digit years should be ignored:
dd/mm/yy
- no way to safely infer date - Other date formats? I've seen
dd-MMM-yy
,ddMMMyy
,yyyy-mm-dd
- Some gemlogs have no dates at all