Release 0.0.2-2
[profile/ivi/signonui-efl.git] / tools / query-dialog
1 #!/usr/bin/python
2
3 '''
4 # Examples:
5
6 # password query
7 ./query-dialog QueryPassword True \
8                RequestId "12345" \
9                Caption "Please insert password" \
10                UserName "uname" \
11                Title "Hello"
12
13 # password confirm query
14 ./query-dialog QueryPassword True \
15                RequestId "12345" \
16                Caption "Enter current password and new password twice" \
17                UserName "uname" \
18                Confirm True \
19                Title "Hello"
20
21 # captcha query
22 ./query-dialog CaptchaUrl "file:///usr/share/locale/l10n/us/flag.png" \
23                RequestId "67890" \
24                Caption "Please solve the captcha" \
25                Title "Hello"
26
27 # weblogin query
28 ./query-dialog OpenUrl "http://google.fi/" \
29                FinalUrl "http://xkcd.com/" \
30                RequestId "abcde" \
31                Title "Hello"
32 '''
33
34 import sys, dbus;
35 from pprint import pprint;
36
37 def db2p(db):
38     if type(db)==dbus.Dictionary:
39         return dict((db2p(key), db2p(value)) for key, value in db.items())
40     if type(db)==dbus.String:
41         return db+''
42     if type(db)==dbus.Int32:
43         return db+0
44     if type(db)==dbus.Boolean:
45         return db==True
46     return ('type: %s' % type(db), db)
47
48
49 bus = dbus.SessionBus()
50 proxy = bus.get_object('org.tizen.SSO',
51                        '/org/tizen/SSO/SignonUi')
52 sso = dbus.Interface(proxy, dbus_interface='org.tizen.SSO.singlesignonui')
53
54 params = dbus.Dictionary({}, signature='sv')
55
56 # do some guesswork on the params ...
57 args = sys.argv[1:]
58 while args:
59     if (args[1].lower() == "true"):
60       val = dbus.Boolean (True)
61     elif (args[1].lower() == "false"):
62       val = dbus.Boolean (False)
63     else:
64       val = dbus.String (args[1])
65     params[args[0]] = val
66     args = args[2:]
67
68 pprint(db2p(sso.queryDialog(params, timeout=60*10)))