>
> #! /usr/bin/python3
>
> import sys
> import dbus
> from pydbus import SessionBus
>
> def usage():
> text = '''
> ./presence.py busy FIRSTNAME ACCOUNT
> ./presence.py avail FIRSTNAME ACCOUNT
>
> FIRSTNAME: first name.
> ACCOUNT: the alias of the account presence to change
>
> Example:
>
> ./presence.py busy claudio resource5
> --> sets resource5 to busy with msg: "claudio using resource5"
> ./presence.py avail claudio resource5
> --> claudio frees up resource5, status set to avail.
> '''
> print(text)
> sys.exit(1)
>
> #sys.argv = ["./presence.py", "busy", "claudio", "resource5"]
>
> if len(sys.argv) != 4:
> print(len(sys.argv))
> usage()
>
> if (sys.argv[1]) == "busy":
> arg_status = "Do Not Disturb"
> elif (sys.argv[1]) == "avail":
> arg_status = "Available"
> else:
> usage()
>
> arg_firstname = sys.argv[2]
> arg_account = sys.argv[3]
>
> print("presence: connecting to PurpleService")
>
> bus = SessionBus()
> try:
> p = bus.get("im.pidgin.purple.PurpleService",
> "/im/pidgin/purple/PurpleObject")
> except:
> sys.exit("presence: failed to connect to PurpleService")
>
> accounts = p.PurpleAccountsGetAll()
>
> if len(accounts) == 0:
> sys.exit("presence: no account found.")
>
> for account in accounts:
> alias = p.PurpleAccountGetAlias(account)
> print(alias + " is accountid " + str(account))
> if (alias != arg_account):
> print("presence: skipping account " + alias)
> continue
>
> print("presence: found account " + alias)
>
> presence = p.PurpleAccountGetPresence(account)
> status = p.PurplePresenceGetActiveStatus(presence)
> status_type = p.PurpleStatusGetType(status)
> status_type_name = p.PurpleStatusTypeGetName(status_type)
>
> if (status_type_name == arg_status):
> sys.exit("presence: account is already " + arg_status)
>
> status_type_list = p.PurpleAccountGetStatusTypes(account)
> status_id = "";
>
> for status_type in status_type_list:
> status_type_name = p.PurpleStatusTypeGetName(status_type)
> print("status_type_name in status_type_list = " + status_type_name)
> if (status_type_name == arg_status):
> status_id = p.PurpleStatusTypeGetId(status_type)
here I am missing a
break;
(just noticed). Does not fix the problem though, my script seems to run
consistently,
but the client (finch) does not show any changes in my status.
_______________________________________________
Support@pidgin.im mailing list
Want to unsubscribe? Use this link:
https://pidgin.im/cgi-bin/mailman/listinfo/support