vanita5 / birdknife

birdknife is a Twitter CLI based on Vorpal inspired by TTYtter.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

navigation / exploration

echo-bravo-yahoo opened this issue · comments

hey!

i tried birdknife for the first time today, and i really like it, but it seems like it could use better navigation (or documentation, if i'm just missing key features).

for instance, it prints out timestamps every 5 minutes, but doesn't print any tweets that occurred between them, which seems pretty counter-intuitive (either it doesn't need to print timestamp lines, or it should print the new tweets? i had someone i'm following tweet once, unrelated to me, and once, mentioning me, and neither were printed by birdknife without using /again). notifications is set to true (confirmed via /preferences).

also, i find myself using /again a lot and wishing that it had some options for sifting, like relatively counted ranges (show me from the fifth to last to the eight to last).

a way to show a list of people you're following would also be great.

additionally, /thread failed fairly spectacularly the one time i tried it; it turns out that the example i found had a branched structure; birdknife incompletely traversed one branch and didn't visit the other. not sure how to handle cases like these. oh, and each /thread gave the tweets new IDs, so the same tweets are locally stored under several names.

i'm sorry for packing so much into one issue, but i really like this project and would like to contribute some!

Hey,

the timestamps are printed out every 5 minutes no matter if or how many tweets have been posted in the meantime. I am planning to make the timestamps optional/with custom time intervals.

Birdknife uses Twitter's streaming API, which means you actually shouldn't have to use /again all the time. Sounds like you're not following many people or there's a bug.
You can test this easily by posting a tweet by yourself. If it appears on the screen instantly, without running /again, it's working. If not, please open a new issue with some details!

What do you mean by "shifting" in terms of the /again command?
Do I understand you correctly, that you want to see the last x tweets? That's something I can definietly implement :)
For now it's always the last 20 tweets.

For the list of people you are following and people who are following you, I just created a new issue (#32). But I need to come up with a solution for this, e.g. I have 500+ Followers. Printing 500 lines with usernames is not that great.

In terms of conversations (/thread) I am kinda limited by the Twitter API.
A tweet can contain a in_reply_to_status_id which points to the replied tweet. This can't be reversed which is the cause of not being able to show different branches of a conversation. (On the other hand it would also be difficult to display this without causing confusion I guess).

Also, I am aware that running /thread or /again gives the tweets new ids. I guess this could be improved, but I think it might also be confusing. Now, tweets are indicated with a incremental id. Mixing those id's (without any order) could be irritating, right?

Don't worry, I really appreciate your feedback. Feel free to continue contributing :)

Weird! The notification API works now, but did not work on first run. Maybe some config kink that worked itself out? Actually, now that I think about it, I probably started birdknife running on one wi-fi network, briefly suspended the laptop it was running on, and then started it back up on another network... Oops.

One option for the threads is to try and reconstruct them... Branching would be hard, and I'm not sure about how data's currently being stored.

I have some experience developing in node; if I wanted to play with / debug / develop on birdknife, is there anything I should know? Thanks so much for your time =)

Please do not mix up streaming API and notifications. Notifications are triggered though, but are something different. See node-notifier.

Also, streaming is not managed through preferences/config. You mentioned that you switched your wifi network. This broke the streaming connection.
So I guess better streaming error or disconnection handling is necessary to automatically try to restart streaming.

One option is Twitters /conversation.json API endpoint. This is not part of the public API and doesn't work for third party applications. I could implement it for people using official API keys, but the default implementation hast to stay the same.

If you want to work on birdknife, there are three main parts it depends on :)

Closing due to inactivity. Please reopen if there are any further questions.