;;;;; title: Avandu in Lua tags: lua, ttrss, avandu, avandu-lua, projects date: 2014-06-27 23:57 format: md ;;;;; A little while ago I started using the [Awesome window manager](http://awesome.naquadah.org/) again. I've started to play some PC games (such as [Rogue Legacy](https://ryuslash.org/blog/?p=44)) and have to use some more graphical applications again. [Stumpwm](http://stumpwm.nongnu.org) just wasn't quite cutting it and suddenly it seemed that my workflow didn't quite fit with a completely-manual tiling experience. So now that I'm back with Awesome I wanted to have a count of the number of unread articles in Tiny Tiny RSS in my wibox. I already have a project named avandu, which is an Emacs interface for Tiny Tiny RSS, and for a little while I used that in combination with Emacs' daemon mode to get the number of unread RSS items. This halt my Emacs for a few seconds every minute, though, so that was unpleasant. It also caused a lot of "Connecting to host: ..." messages to appear in my Emacs' echo area, which is a little annoying. So I decided to write a lua module to get this count, since I didn't have a lua project yet. That is [avandu-lua](https://github.com/ryuslash/avandu-lua). Right now it only implements a `login` and `unread` functions, which allow you to log-in to get a session key (so you can do other things), and get the number of unread articles (what a shock!). I've written a bit of [documentation](http://ryuslash.github.io/avandu-lua/) for it, hosted by github. There isn't much to document of course, but I try. I still need to add tests, but I'm having difficulty deciding on how to do this. [busted](http://olivinelabs.com/busted/) looks really nice, but their idea of stubs and mocks doesn't seem to be very useful if you're testing a function that calls, for example, `http.call`, which returns 4 distinct values, not none. I can't decide if I should keep looking, (try to) write something or use `_TEST` checks everywhere. I'm leaning towards that last one, perhaps I'll add that. I don't currently have any concrete plans of extending it to have more functions than the ones I've added so far, I might do it for fun at some point, or if you'd really like to be able to call Tiny Tiny RSS from lua let me know and I might put some more effort into it. It's been nice to work with lua. I don't particularly love the language and it certainly doesn't beat Lisp on any front, but it has its moments and niceties. Some things that still need to be done: - As I said, I need to add tests. - I think I should try to see if coroutines can be used, it seems to hang Awesome now on occasion. - Add license info. Yeah I really should almost do this before I do anything else when I start a new project. It's going to be LLGPL in any case. - Release an actual version. Always installing from just a git checkout can be a little annoying.