#! / usr / bin / perl
use XML :: Simple;
use Net :: HTTP;
my $ s = Net :: HTTP-> new (Host => "habrahabr.ru") || die $ @;
# change to your username
$ s-> write_request (GET => "/ api / profile /% username% /", 'User-Agent' => "Mozilla / 5.0 (+ http: //www.reid.ru/freebsd/? page_id = 15 ) ");
my ($ code, $ mess,% h) = $ s-> read_response_headers;
while (1) {
my $ buf;
my $ n = $ s-> read_entity_body ($ buf, 1024);
die "read failed: $!" unless defined $ n;
last unless $ n;
$ data = $ buf;
}
my $ s = XMLin ($ data);
$ karm = $ s -> {karma};
$ rating = $ s -> {rating};
print "$ karm \ / $ rating";
- define the widget
karma_text = widget ({type = "textbox", align = "right"})
function get_karm ()
- specify the path to the script
local karm = awful.util.pread ("~ / .config / awesome / zoom / bin / karma")
karma_text.text = "" .. setFg ("# e8ef1b", karm) .. ""
end
...
- specify where it should be located
mywibox [s] .widgets = {
...
karma_text
...
}
- call it when you start awesome
get_karm ()
- and call every 15 minutes
awful.hooks.timer.register (900, function () get_karm () end)

Source: https://habr.com/ru/post/64709/
All Articles