Crontab + pynotify

Här diskuteras programmering och utveckling
kennedyshead
Inlägg: 16
Blev medlem: 04 okt 2008, 19:31
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS

Crontab + pynotify

Inlägg av kennedyshead »

Hej!
Jag försöker få ett script som jag byggt skicka notify till mig när det händer nåt på en remote sida som jag hämtar med curl.
Allting fungerar som det ska utom 1 sak pynotify.init()
Jag har försökt alla möjliga olika lösningar men den vägrar att skicka till min notify deamon. vad göra?

ps. cronen ligger som user mig själv ds.

Kod: Markera allt

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import pygtk
pygtk.require('2.0')
import pynotify
import sys
import pycurl
import json

class Data:
    def __init__(self):
        self.contents = ''

    def body_callback(self, buf):
        self.contents = self.contents + buf
           
if __name__ == '__main__':
    print 'Starting process \n'
    if not pynotify.init("Work notify"):
       print 'exits'
       sys.exit(1)
    t = Data()
    c = pycurl.Curl()
    c.setopt(c.URL, 'some nice url')
    c.setopt(c.WRITEFUNCTION, t.body_callback)
    c.perform()
    c.close()
    data = json.loads(t.contents)
    # print data

    write = '';
    for key in data:
        print key['user'] +'|'+ key['project']+'\n'
        write += key['user'] +'|'+ key['project']+'\n'
        infile = FILE = open('time.cache', 'r')
        dont = False
        for line in infile:
            print line + "2"+ key['user'] +'|'+ key['project']+'\n'
            if line == key['user'] +'|'+ key['project']+'\n':
                dont = True
                break
        infile.close()
                
        if dont == False:
            n = pynotify.Notification('Instämplad  \n'+key['user'], key['project'])
            print 'sent Instämplad  '+key['user'], key['project']+'\n'
            if not n.show():
                print "Failed to send notification"
                sys.exit(1)
    # print write
    cache = FILE = open('time.cache',"w")
    cache.writelines(write)
    cache.close()
och ja jag vet att jag kan sköta klassen snyggare och ja det är skitunderligt skrivet här och var :) det ska bara fungera och det snabbt :P (lovar att skriva om om jag får det att fungera)
Lars
Inlägg: 6191
Blev medlem: 14 jan 2007, 19:31
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Stockholm

Re: Crontab + pynotify

Inlägg av Lars »

Vad är det som händer då? Returnerar init() False?

Om du kör det här via cron eller liknande så kan jag tänka mig att det blir lite strul med dbus, men det går kanske att lösa...
kennedyshead
Inlägg: 16
Blev medlem: 04 okt 2008, 19:31
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS

Re: Crontab + pynotify

Inlägg av kennedyshead »

Japp den returnerar false och går till exit :/
Det är nåt med rättigheter, det slår jag mig i backen på. Men vad?
kennedyshead
Inlägg: 16
Blev medlem: 04 okt 2008, 19:31
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS

Re: Crontab + pynotify

Inlägg av kennedyshead »

Känner att jag vill förmedla lite status på mitt problem :)
Det är som så att crontab inte har DBUS_SESSION_BUS_ADDRESS för min x-session.
Jag testade med att följa detta inlägg: http://earlruby.org/2008/08/update-pidg ... sing-cron/
Men det gav tyvärr bara ett crontab fel ("DISPLAY = :0.0" anses inte vara rätt formulerat i crontab -e) den hittar dock source filen, men det verkar inte hjälpa, det är samma som förut och scriptet går till exit pga pynotify.init() returnerar false.
Ska man kanske strunta i cron för detta och skriva en deamon?
Om någon vet nåt annat program som parsar updates från json och skickar notify så är det alltid välkommet ;)
Lars
Inlägg: 6191
Blev medlem: 14 jan 2007, 19:31
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Stockholm

Re: Crontab + pynotify

Inlägg av Lars »

Det ska vara "DISPLAY=:0.0", d.v.s. utan mellanslag. Jag hittade för övrigt http://www.g-loaded.eu/2007/11/18/probl ... fications/

Man kan väl konstatera att libnotify inte riktigt är konstruerat för den här situationen. Sessionsbussen i dbus är enbart till för att skicka information mellan program som körs av samma användare. Det finns ju en systembuss också, men jag antar att libnotify inte lyssnar på den.
kennedyshead
Inlägg: 16
Blev medlem: 04 okt 2008, 19:31
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS

Re: Crontab + pynotify

Inlägg av kennedyshead »

Tackar lars! Jag ska sätta mig med detta first thing imorn (ikväll blir det nog inget vidare resultat :P). Det känns ju som att det är en vanlig situation, att man vill skicka notify om det händer något. Jag har testat mumbles och det fungerar bra med growl (lägger upp exmpel om jag hittar koden i nåt hörn i datorn)
kennedyshead
Inlägg: 16
Blev medlem: 04 okt 2008, 19:31
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS

Re: Crontab + pynotify

Inlägg av kennedyshead »

Och efter oändligt antal tester så ger jag nu upp :)
Det känns som att det inte är meningen att det ska gå (då hade det gjort det ;) ) men det är underligt att det fungerade så bra med mumbles
Skriv svar

Återgå till "Programmering och webbdesign"