Shi… I forgot to pull my twtxt file before twtin’ … let me see if I can recover them lost timeline twts.
Ok, amma start twting from my timeline instance, let me know if I break something xD
I don’t see post in timeline and mentions from demo account. Even in site and goryon. Demo account follows me
nick = _@domain.tld in the twtxt.txt?
hmm any ideas how to fix this case when there is no nick and it on a shared tilde hosting? http://darch.dk/timeline/profile?url=https://tilde.club/~deepend/twtxt.txt
nick = _@domain.tld in the twtxt.txt?
I’ve implemented Use only nick as handle if nick and domain is the same · sorenpeter/timeline@8c12444
See it live at:
- nick = domain: https://darch.dk/timeline/profile?url=https://eapl.me/tw.txt
- nick ≠ domain: https://darch.dk/timeline/profile?url=https://twtxt.net/user/prologic/twtxt.txt
- no nick, use domain: https://darch.dk/timeline/profile?url=https://akkartik.name/twtxt.txt
I’m not sure I like the leading @ thou…
@prologic@twtxt.net Well I just mirrored yarnd’s JSON in my webfinger endpoint and lookup, so not much else to do for standardization.
And for people who don’t like PHP you can always just go with Added WebFinger support to my email address using one rewrite rule and one static file. or simply putting a static JSON in place for .well-know/webfinger
I like the cleaness and indiewebness of using just domains for handles/shorthands similar to blusky, but the situations with more users on the same domain and that people in the fediverse (threads too?) are already familiar with the syntax speaks for webfinger. And since we already got support for webfinger in both yarnd and timeline it makes sense to stick with it.
BTW I’m watching that darch has already worked on that, interesting https://github.com/sorenpeter/timeline/blob/main/_webfinger-endpoint/.well-known/webfinger/index.php
(#7u2wgka) @doesnm it has always supported WebMentions – Juat not quite the same implementing as Timeline.
@doesnm @doesnm.p.psf.lt it has always supported WebMentions – Juat not quite the same implementing as Timeline. ⌘ Read more
@aelaraji@aelaraji.com https://github.com/sorenpeter/timeline/commit/555baefcd0e75e6a281472994e8eb7ae9b5d2a1c
or timeline.txt ;)
Kuo: New HomePod With Smart Home Display Arriving in Late 2025
Apple’s long-rumored HomePod with a display has been delayed again and is now expected to launch after WWDC 2025, likely in the third quarter of the year, according to analyst Ming-Chi Kuo. This timeline is a shift from Kuo’s earlier prediction of a [2024 release](https://www.macrumors.com/202 … ⌘ Read more
@eapl.mx@eapl.mx Yes, the idea is to add User Agent support to #Timeline.
Right now it just adds every request to a growing log file, but I have also been working on a way to analyse it, so it only saves the time of the latest request.
I’m not sure how to make it part of timeline itself, since it requeses that you redirect/rewrite from twtAgent.php to the acctual twtxt.txt
Help with making Timeline send proper User Agents to others would be much appreciated:)
@sorenpeter@darch.dk hey!
I’m watching that now your .txt is pointing to https://darch.dk/twtAgent.php
What are you trying? Catching the Headers as in https://twtxt.readthedocs.io/en/latest/user/discoverability.html ? (I think it’s a clever idea BTW)
And is it something you plan to add to timeline?
@eapl.mx@eapl.mx Super to see you got webmentions working too :)
EDIT: A webmention was send to: https://eapl.mx/timeline/webmention (Status: 202)
I’m giving a shot talk about twtxt/yarn/timeline tommow around noon CET at Piksel Festival in Norway. More info and link for live stream at: https://24.piksel.no
(So I will most likely not be joining the call)
@bender@twtxt.net The tagline of Timeline is “a single user twtxt/yarn pod” not just a yarn pod. Similar to GNU/Linux. When we came up with the concept of Yarn Social it was a way to rebrand twtxt with the extensions that makes conversations like this possible.
I don’t think calling the various PHP files making up “Timeline” a “Yarn pod” is accurate.
I’ve just unlocked access to my /timeline if anyone has been trying to access it earlier.
Hey! I tried running Timeline on my server with the default PHP version (8.3) and it’s giving me a few errors https://eapl.me/timeline/ I should be sending a PR soon to fix it ;)
Hey @sorenpeter@darch.dk what version of PHP do you run Timeline on?
(#37sjhla) @doesnm I think it’s worth looking at the Web Browser Timeline to really understand the history and derivation of web browsers over t …
@doesnm @doesnm.p.psf.lt I think it’s worth looking at the Web Browser Timeline to really understand the history and derivation of web browsers over time. I agree that building a Web Browser is complicated and hard, but that’s only because of the expecta … ⌘ Read more
**(#w7qc4ra) @eapl.me Regarding supporting languages:
That said, coming from platforms like X and Masto, where switching languages is easy, I n …**
@eapl.me @eapl.me Regarding supporting languages:That said, coming from platforms like X and Masto, where switching languages is easy, I naturally read content and write into my timeline in at least three languages. Changing my “account” is not a simple as switching languages, and in those platforms have another m … ⌘ Read more
@wbknl@twtxt.net Btw you don’t need to mention yourself when composing a new Twt (I think maybe you’re doing it from your profile view?) Just …
@wbknl Btw you don’t need to mention yourself when composing a new Twt ( I think maybe you’re doing it from your profile view?) Just expand the box at the top of the Timeline or Discover views.
⌘ Read more
So I am really curious, now that I am building upon @sorenpeter@darch.dk’s Timeline app, how other users write/add their twtxt, and how you follow conversations. Comment svp!
I installed GrapheneOS for the first time on Wednesday last week on a used Pixel 7a, and I’m impressed. Installation was almost seamless, and I was able to do it from another Android phone. I’ve run into very few wrinkles, even using Google’s proprietary apps with GrapheneOS’s “sandboxed” version of Google Play Services. The main problems I’ve noticed: I can’t cast, and Google Timeline doesn’t seem to work (though I imagine the intersection between people keen to use GrapheneOS and keen to have Google log their location history is pretty small).
[ANN] [CVE-2024-9680] Update Tor Browser & Firefox immediately
An attacker was able to achieve code execution in the content process by exploiting a use-after-free in Animation timelines. We have had reports of this vulnerability being exploited in the wild.
Links:
- https://blog.torproject.org/new-release-tor-browser-1357/
- https://www.mozilla.org/en-US/security/advisories/mfsa2024-51/
n … ⌘ Read more
@2024-10-08T19:36:38-07:00@a.9srv.net Thanks for the followup. I agrees with most of it - especially:
Please nobody suggest sticking the content type in more metadata. 🙄
Yes, URL can be considered ugly, but they work and are understandable by both humans and machines. And its trivial for any client to hide the URLs used as reference in replies/treading.
Webfinger can be an add-on to help lookup people, and it can be made independent of the nick by just serving the same json regardless of the nick as people do with static sites and a as I implemented it on darch.dk (wf endpoint). Try RANDOMSTRING@darch.dk on http://darch.dk/wf-lookup.php (wf lookup) or RANDOMSTRING@garrido.io on https://webfinger.net
twt probably isn't the best client I'm afraid. It doesn't really cache twts by their key (hash) to display threads properly. Jenny however does 👌
It has twts cache which used if timeline is set to jew. Maybe i.should fork twet to make wishes like newlines (i see two squares), showing conversations, showing twts if not found in cache and parsing medata to configure url, nick and followers (currenly it duplicated in config and twtxt file)
Finally pubnix is alive! That’s im missing? Im only reading twtxt.net timeline because twtxt-v2.sh works slowly for displaying timeline…
@aelaraji@aelaraji.com This is one of the reasons why yarnd has a couple of settings with some sensible/sane defaults:
I could already imagine a couple of extreme cases where, somewhere, in this peaceful world one’s exercise of freedom of speech could get them in Real trouble (if not danger) if found out, it wouldn’t necessarily have to involve something to do with Law or legal authorities. So, If someone asks, and maybe fearing fearing for… let’s just say ‘Their well being’, would it heart if a pod just purged their content if it’s serving it publicly (maybe relay the info to other pods) and call it a day? It doesn’t have to be about some law/convention somewhere … 🤷 I know! Too extreme, but I’ve seen news of people who’d gone to jail or got their lives ruined for as little as a silly joke. And it doesn’t even have to be about any of this.
There are two settings:
$ ./yarnd --help 2>&1 | grep max-cache
--max-cache-fetchers int set maximum numnber of fetchers to use for feed cache updates (default 10)
-I, --max-cache-items int maximum cache items (per feed source) of cached twts in memory (default 150)
-C, --max-cache-ttl duration maximum cache ttl (time-to-live) of cached twts in memory (default 336h0m0s)
So yarnd pods by default are designed to only keep Twts around publicly visible on either the anonymous Frontpage or Discover View or your Timeline or the feed’s Timeline for up to 2 weeks with a maximum of 150 items, whichever get exceeded first. Any Twts over this are considered “old” and drop off the active cache.
It’s a feature that my old man @off_grid_living@twtxt.net was very strongly in support of, as was I back in the day of yarnd’s design (nothing particularly to do with Twtxt per se) that I’ve to this day stuck by – Even though there are some 😉 that have different views on this 🤣
I mean, this: https://darch.dk/timeline/replies?url=http://darch.dk/twtxt.txt
Bonus: On his Pod/Profile it shows as if his last twt is from 4 Months ago.
Something odd just happened to my twtxt timeline… A bunch of twts dissapered, others were marked to be deleted in mutt. so I nuked my whole twtxt Maildir and deleted my ~/.cache/jenny in order to start with a fresh Pull. I pulled feed as usual. Now like HALF the twts aren’t there 😂 even my my last replay. WTF IS GOING ON? 🤣🤣🤣
Thank you @aelaraji@aelaraji.com, I’m glad you like it. I use PHP because it’s everywhere on cheap hosting and no need for the user to log into a terminal to setup it up. Timeline is not mean to be use locally. For that I think something like twtxt2html is a better fit. (and happy to see you using simple.css on you new log page;)
@sorenpeter@darch.dk !! I freaking love your Timeline … I kind of have an justified PHP phobia 😅 but, I’m definitely thinking about giving it a try!
/ME wondering if it’s possible to use it locally just to read and manage my feed at first and then maybe make it publicly accessible later.
So this is a great thread. I have been thinking about this too.. and what if we are coming at it from the wrong direction? Identity being tied to a given URL has always been a pain point. If i get a new URL its almost as if i have a new identity because not only am I serving at a new location but all my previous communications are broken because the hashes are all wrong.
What if instead we used this idea of signatures to thread the URLs together into one identity? We keep the URL to Hash in place. Changing that now is basically a no go. But we can create a signature chain that can link identities together. So if i move to a new URL i update the chain hosted by my primary identity to include the new URL. If i have an archived feed that the old URL is now dead, we can point to where it is now hosted and use the current convention of hashing based on the first url:
The signature chain can also be used to rotate to new keys over time. Just sign in a new key or revoke an old one. The prior signatures remain valid within the scope of time the signatures were made and the keys were active.
The signature file can be hosted anywhere as long as it can be fetched by a reasonable protocol. So say we could use a webfinger that directs to the signature file? you have an identity like frank@beans.co that will discover a feed at some URL and a signature chain at another URL. Maybe even include the most recent signing key?
From there the client can auto discover old feeds to link them together into one complete timeline. And the signatures can validate that its all correct.
I like the idea of maybe putting the chain in the feed preamble and keeping the single self contained file.. but wonder if that would cause lots of clutter? The signature chain would be something like a log with what is changing (new key, revoke, add url) and a signature of the change + the previous signature.
# chain: ADDKEY kex14zwrx68cfkg28kjdstvcw4pslazwtgyeueqlg6z7y3f85h29crjsgfmu0w
# sig: BEGIN SALTPACK SIGNED MESSAGE. ...
# chain: ADDURL https://txt.sour.is/user/xuu
# sig: BEGIN SALTPACK SIGNED MESSAGE. ...
# chain: REVKEY kex14zwrx68cfkg28kjdstvcw4pslazwtgyeueqlg6z7y3f85h29crjsgfmu0w
# sig: ...
So this is a great thread. I have been thinking about this too.. and what if we are coming at it from the wrong direction? Identity being tied to a given URL has always been a pain point. If i get a new URL its almost as if i have a new identity because not only am I serving at a new location but all my previous communications are broken because the hashes are all wrong.
What if instead we used this idea of signatures to thread the URLs together into one identity? We keep the URL to Hash in place. Changing that now is basically a no go. But we can create a signature chain that can link identities together. So if i move to a new URL i update the chain hosted by my primary identity to include the new URL. If i have an archived feed that the old URL is now dead, we can point to where it is now hosted and use the current convention of hashing based on the first url:
The signature chain can also be used to rotate to new keys over time. Just sign in a new key or revoke an old one. The prior signatures remain valid within the scope of time the signatures were made and the keys were active.
The signature file can be hosted anywhere as long as it can be fetched by a reasonable protocol. So say we could use a webfinger that directs to the signature file? you have an identity like frank@beans.co that will discover a feed at some URL and a signature chain at another URL. Maybe even include the most recent signing key?
From there the client can auto discover old feeds to link them together into one complete timeline. And the signatures can validate that its all correct.
I like the idea of maybe putting the chain in the feed preamble and keeping the single self contained file.. but wonder if that would cause lots of clutter? The signature chain would be something like a log with what is changing (new key, revoke, add url) and a signature of the change + the previous signature.
# chain: ADDKEY kex14zwrx68cfkg28kjdstvcw4pslazwtgyeueqlg6z7y3f85h29crjsgfmu0w
# sig: BEGIN SALTPACK SIGNED MESSAGE. ...
# chain: ADDURL https://txt.sour.is/user/xuu
# sig: BEGIN SALTPACK SIGNED MESSAGE. ...
# chain: REVKEY kex14zwrx68cfkg28kjdstvcw4pslazwtgyeueqlg6z7y3f85h29crjsgfmu0w
# sig: ...
@bender@twtxt.net On twtxt, I follow all feeds that I can find (there are some exceptions, of course). There’s so little going on in general, it hardly matters. 😅
And I just realized: Mutt’s layout helps a lot. Skimming over new twts is really easy and it’s not a big loss if there are a couple of shitposts™ in my “timeline”. This is very different from Mastodon (both the default web UI and all clients I’ve tried), where the timeline is always huge. Posts take up a lot of space on screen. Makes me think twice if I want to follow someone or not. 😅
(I mostly only follow Hashtags on Mastodon anyway. It’s more interesting that way.)
Kinda cool tool for bringing together all your timeline based data across socials.
Kinda cool tool for bringing together all your timeline based data across socials.
Media upload works, light\dark theme enabled. Tested it on debian\windows - works out of the box, statusbar moved to bottom for cleaner UI. Next is working more on ui when it refreshes the timelines. .
Got all 3 timelines in, so you can switch between them.
Need to add some kind of refresh feature as well, then I’ll get it cleaned up and put the source out, and continue from there - also the UI is not final, now I’m just focusing on features. The UI will be cleaned up as well.
Pretty cool. Got the timeline working, statuses separated, avatars loading, linked images in statuses works, can also post statuses from it.
Heh. will work on the remaining things the next days.
This will replace the current gtk4 client I wrote, I like this much better.
Will also make it into a appimage, and look into flatpak as well.
well, we have the timeline :)
Next up - make it look a bit better
Today I’m looking into flutter again, I’ve been wanting to test that out for a while.
I started adding functionality from the ‘yarn desktop client’ ( https://github.com/stig-atle/YarnDesktopClient ) I’ve been working on - and now I see if I can get the same functionality up and running with flutter.
Currently I’m able to log in and fetch the logged in user’s username at least (the text :username: is fetched after logging in), so it’s a good start.
That means I have the things I need to fetch the timeline and present that next.
@prologic@twtxt.net on the the timeline with mentions filter I missing the latest mention that comes up in the mentions page.
Oh.. And you are mentioning my dev instance here 😄
@prologic@twtxt.net on the the timeline with mentions filter I missing the latest mention that comes up in the mentions page.
Oh.. And you are mentioning my dev instance here 😄
It looks okay on my timeline: http://darch.dk/timeline/conv/omu7e4q
@Prologic@twtxt.net can you pleas fix this line in your twtxt.txt:
# follow = dbucklin@www.davebucklin.com https://www.davebucklin.com/twtxt.txt?nick=dbucklin
It is cause this weird effect on my timeline, where you are now called dbucklin
http://darch.dk/timeline/?profile=https://twtxt.net/user/prologic/twtxt.txt
@prologic@twtxt.net and @bender@twtxt.net for a start a single user twtxt/yarn pod could look like this 😉
ProcessOne: ejabberd Docs now using MkDocs
The ejabberd Docs website did just get a major rework: new content management system, reorganized navigation, improved markdown, and several improvements!
Brief documentation timelineejabberd started in November 2002 (see a timeline in the ejabberd turns 20 bl … ⌘ Read more
ProcessOne: ejabberd Docs now using MkDocs
The ejabberd Docs website did just get a major rework: new content management system, reorganized navigation, improved markdown, and several improvements!
ejabberd started in November 2002 (see a timeline in the ejabberd turns 20 blog post). And the first documentation was published in January 2003, using LaTeX, see [Ejabberd Installation and Op … ⌘ Read more
The wording can be more subtle like “This feed have not seen much activity within the last year” and maybe adding a UI like I did in timeline showing time ago for all feeds
I agree that it good to clean up the Mastodon re-feeds, but it should also be okay for anyone to spin up a twtxt.txt just for syndicating they stuff from blog or what ever.
The “not receiving replies” could partly be fixed by implementing a working webmentions for twtxt.txt
Just fleshed out the README for timeline at https://github.com/sorenpeter/timeline - Comments/corrections and PRs are welcome:)
@bender@twtxt.net you can over at http://darch.dk/timeline/conv/ba3xbfa or by looking at the raw txt https://lyse.isobeef.org/twtxt.txt
I can’t help it that twtxt.net only have temporary caching ¯_(ツ)_/¯
Thanks for your feedback @lyse@lyse.isobeef.org. For some reason i missed it until now. For now I have implemented endpoint discovery for #webmentions as a metadata field in the twtxt.txt like this:
# webmention = http://darch.dk/timeline/webmention
Added support for #tag clouds and #search to timeline. Based on code from @dfaria.eu@dfaria.eu🙏
Live at: http://darch.dk/timeline/?profile=https://darch.dk/twtxt.txt
I’m closing down neotxt.dk as a yarn pod. It will instead offer hosting of timeline or what ever other php stuff you want to run. To get started send me a poem to poem@neotxt.dk
It not that easy @xuu@txt.sour.is since I implemented webmentions in a different way that how it have been done in yarnd to work with txt-files. You can find the code in webmention_endpoint.php and new_twt.php at main · sorenpeter/timeline
@eapl.me@eapl.me Take a look at http://darch.dk/timeline/conv/i4nt3ma
Just hacked together this small webfinger endpoint to be used as a companion with timeline: .well-known/webfinger/index.php at main · sorenpeter/timeline
@shreyan@twtxt.net What do you mean when you say federation protocol?
Either use webfinger for identity like mastodon etc. or use ATproto from Bluesky (or both?)
We can use webmentions or create our own twt-mentions for notifying someones feed (WIP code at: https://github.com/sorenpeter/timeline/tree/webmention/views)
I’m not sure we need much else. I would not even bother with encryption since other platforms does that better, and for me twtxt/yarn/timeline is for making things public
‘CAN’T BELIEVE IT’: Couple’s family speak out on alleged double murder
A family member of an alleged double homicide victim has broken his silence as police continue to search for their bodies. ⌘ Read more
I noticed that some of my software projects have a rather long lifetime, so I made a little graph:
Didn’t know of bytesypider and bytedance, I assume those are bots, although I no idea why they are pointing to that address to your site
https://wordpress.org/support/topic/psa-bytedance-and-bytespider-bots-recommend-blocking/
You gave me a good idea to block bytespider. Its just weird what it pulls in.twtxt-php isn’t sending User-Agent headers as it’s in the original spec:
https://twtxt.readthedocs.io/en/latest/user/discoverability.html
sending user agent would be a nice thing to have so that people using regular twtxt clients can find you and anyone else hosting twtxt-php or timeline
HTTP logs are annoying but webmention has an issue that it needs a server to check for webmentions. The server can be an external one or hosted on the same server as far as I can find.
But also HTTP logs need a server that one can view the logs.
@eaplme@eapl.me
Yarn could the twtxt I want more then regular twtxt. Though I do like not having to host a yarn pod.
That client looks really cool. A web client that connects to a regular twtxt without the need to host a full yarn pod for just one user and feed.
What is the difference between twtxt-php and timeline from sorenpeter? Does it have a way to follow feeds from the web ui?
I was looking at it and what prevents someone from downloading the .config file and getting the password? Also how would I generate a totp password to use?
I should try to host that it might be the right not a full on yarn pod but also can post from my phone.
The weird thing is in my server logs it shows that your site pulled in the useragent as https://eapl.me/twtxt/?url=https%3A//neotxt.dk/user/darch/twtxt.txt with bytesypider from bytedance? That sounds weird. Plus I can’t grep just twtxt in my logs and find your feed.
Happy Twixmas everyone (new word I just learned 2 min ago)
I have finally gotten around to implementing a gallery feature to timeline.
http://darch.dk/timeline/gallery?profile=https://yarn.stigatle.no/user/stigatle/twtxt.txt
There is still some hiccups, like the limited caching is making it difficult to make links back to older posts not working. Maybe @eapl.me@eapl.me you can help me with that?
Started on a activitypub client, gtk4, c, made on OpenBSD, been quite nice learning experience so far, a bit adjustment from the usual way I do things. I have not done a project in pure c before.
Got token stuff sorted, and posting, next is getting the timeline (and gui for that etc).
@lyse@lyse.isobeef.org I’m also on the e-mail wagon here. On http://darch.dk/timeline/conv/oe3howa I have added a “Comment via email” botten if uses are not logged in. This feature could be extend to other places in the various UIs. Like we already got the “Does not follow your” / “Follow you” on the profile page in yarnd, so this detection could be used to sugget the user to email that person, when mentioning them.
Gracias. Also the git repo now contain code that should actually work
Testing posting for my new http://darch.dk/timeline/
Twitter timelines are not refreshing properly since last night’s events started. they must have some crazy traffic going on.
hrxi: Windows support for Dino
Hello, I’m back!
It’s been four years since I participated in my first Google Summer of\
Code. I’m hrxi, a mathematics student from Germany. I got accepted
into this year’s Google Summer of Code program with the XMPP software\
foundation as the mentoring
organisation. I chose the extended\
timeline, so I am
going to work on [ … ⌘ Read more
I wonder when they will show a UAP\UFO in physical form to everyone.
So much talk about it - but no physical evidence is shown.
I have no doubt that tech like that exists somewhere in the universe - it’s not unlikely at all.
Just think about the tech advancement the last 200 years, and then what if there exists others that are 1 million years beyond our timeline.
Time to dive into threading and c++. I will start with making the file/image downloader threaded, then I’ll make the timeline fetching and all that threaded as well.
I need to add multithreading to the desktop client, I have not done that before in c++ - so that’ll be fun to figure out. I need it for the fetching of the timeline so that it happens in a separate thread. That way the GUI does not freeze while fetching the timeline. Also need to add a status bar that can show what the application is working on.
Scrollwheel on bluetooth mouse on ipad does not work in goryon. Other then that it works great!
But you can use mouseclick and move the timeline as you do with touch, so its not a big deal.
@funbreaker@twtxt.net seems to be related to the way the timeline array is done. I will rewrite that part. I’ll start tomorrow.
I added all the timelines, so now you can switch between ‘discover’, ‘timeline’ and mentions from the drop down menu :)
Added refresh of the timeline, currently a button that you press to do so, I will move it to a timed function shortly.. But nice to get something added tonight.
Moving my source to git today, I have just developed on a local copy until today.
I needed to move it before going too crazy with it. Starting the work on the timeline that I’ve mentioned.
Yesterday I ran out of time, but today I have some free time to work on things. Very pleased with the software already, I know I’ll use it all the time. So today I will work on refreshing the timeline, and then fix so that it’s a bit smarter then now, the class that holds the statuses will also contain the GUI elements for each status, that way I can more easily append new statuses into the timeline - instead of grabbing the whole timeline and rebuild all it’s gui each time it refreshes. I know what to do - so I do not expect it to take too long to fix.
Need to rework the timeline a bit, I want it to append new statuses after refresh, right now it fetches the whole timeline and just inserts it as a whole. So I’ll work on that alongside the refresh functionality.
Going out for a hike with the dog. Then I’ll code a bit later today.
Want to fix the timeline refresh, and then create one timeline for each timeline, and buttons to switch between them.
@chunkimo@twtxt.net thank you! Very pleased with it. I finally have vacation, got up early, took our dog for a long walk this morning, so now I can code a bit. I’ll complete the status entry gui today, so that I can post statuses, after that I need to add a tomer for refreshing timeline, and then some way to store some settings.
Got some good progress on the GTK gui today, got the timeline to work!
Took some time to figure out how the UI layout stuff works, but it looks good now.
I will add the avatars next.
The way it is right now - I got this up and running in a couple of hours, instead of ‘days’ with FLTK.
So I’m glad I made the decision to switch to GTK,
Right now I’m doing all development on Trisquel OS, windows version will come later on.
Also - since I thought about the possibility that I wanted to switch early in the process the code that does all the work is UI independent, meaning this was easy to do. +1 for planning ahead.. :)
I will post a screenshot of the new UI soon, once it’s a bit polished.
Got the cmake file updated, compiles and now it opens a GTK window, need to add the timeline and buttons that I had in FLTK, the other code related to parsing the statuses and all that is independent from the GUI so it’ll be pretty quick to switch over once I have defined the new GUI elements.
Got the timeline to refresh, now I need to add a timer for that, but for now I’ll just make a refresh button.
It’s not smart - so it grabs and adds the whole timeline again at this moment (but clears it first). Later I’ll make it so that it only appends new statuses that are not already in the list. But feels good to have this sorted, makes it much more usable.
Timeline is cleaned up, so now I think I have that part sorted.
Next is to refactor a bit and then fix so that the timeline refreshes properly.
Once that is done I think I’ll clean it up and upload the source somewhere and create tickets for outstanding known issues. Most likely upload it to github and continue the work there.
Also- refresh of the timeline needs to be fixed.
I have cleaned up the timeline a bit, I like this much more.
I use the markdown text now, instead of the ‘text’ field in the json file, looks much cleaner.
I can work with this. One thing that I want to sort out next is the way the nicknames and url is shown.
Also links in posts should be clickable - not sure if the current labels support that, but I’ll try and figure it out somehow. Anyways - latest screenshot is attached here.. :)
Working on things again today, made the timeline layout a bit better, now I’ll work on the reply button, makes it more useful to use :)
Got some time for coding today, dog is resting a bit, and kids are busy.
Today I’m resuming on the timeline, I’ll see if I can fetch and show the avatars next to the statuses.
And I’ll see if I can get a reply button to work, also need to clean up stuff that I’ve done so far.
A bit of duplicate stuff that can be simplified etc.
Soooo… Fltk uses @ symbol in strings to apply effects to text, now wonder I’ve been having issues with the timeline.. https://www.fltk.org/doc-2.0/html/group__symbols.html
@ is used for mentions and all that stuff, so well - it just breaks the strings in the labels.
A lot of more work needs to be done, but at least now I got the basic timeline stuff done, took a good while to figure out how to solve it, but now I know. The reason why the statuses are cut short on some is because of html tags and stuff like that - c++ is a bit picky with strings and stuff like that. but I’ll get that sorted as well.
At least I can show the first screenshot. Keep in mind the GUI is not at all finished, I’m working on the basics first, implement all the features, then I work on finishing touches.
Working some more on timeline, trying to create a group widget and add label child widgets, those labels should then show the text for each status.
Did some more work on the timeline stuff today, now I have added parsing of each status, so that I can get the data I need from each status (user, image url, text, links - all that stuff I need).
Created the function that grabs the timeline.
Now I have to plan a bit to make the actual gui for it, I think I might try and create my own custom fltk widget that I can feed with the json reply, and then it will set itself up based on that.
Or maybe something simple at first - not sure yet.
Next up is grabbing and showing the timeline, then all the other stuff needed. :)
Was fast to get this up and running, and nice to end the weekend with this working.
So, progress is going smooth!
No I have compiled libcurl with openssl, and I fetch token already.
so next is creating three functions - one for posting, one for the login and fetching token (now I have just testing login when application starts), and the fetch the timeline. Then I need the gui.
Progressed faster in 2 hours in c++ then days with rust…