2 # -*- coding: utf-8 -*-
3 """ Sets up the config for fMMS
5 @author: Nick Leppänen Larsson <frals@frals.se>
11 import gnome.gconf as gconf
20 self._fmmsdir = "/apps/fmms/"
21 self.client = gconf.client_get_default()
22 self.client.add_dir(self._fmmsdir, gconf.CLIENT_PRELOAD_NONE)
23 if self.get_apn() == None:
25 if self.get_pushdir() == None:
26 self.set_pushdir("/home/user/.fmms/push/")
27 if self.get_mmsdir() == None:
28 self.set_mmsdir("/home/user/.fmms/mms/")
29 if self.get_outdir() == None:
30 self.set_outdir("/home/user/.fmms/sent/")
31 if self.get_imgdir() == None:
32 self.set_imgdir("/home/user/.fmms/temp/")
33 if self.get_mmsc() == None:
34 self.set_mmsc("http://")
35 if self.get_phonenumber() == None:
36 self.set_phonenumber("000")
37 if self.get_img_resize_width() == None:
38 self.set_img_resize_width(0)
39 if self.get_version() == None:
40 self.set_version("Unknown")
41 if self.get_db_path() == None:
42 self.set_db_path("/home/user/.fmms/mms.db")
43 # Create dirs, for good measures
44 if not os.path.isdir(self.get_pushdir()):
45 os.makedirs(self.get_pushdir())
47 if not os.path.isdir(self.get_mmsdir()):
48 os.makedirs(self.get_mmsdir())
50 if not os.path.isdir(self.get_outdir()):
51 os.makedirs(self.get_outdir())
53 if not os.path.isdir(self.get_imgdir()):
54 os.makedirs(self.get_imgdir())
56 def read_config(self):
59 def set_db_path(self, path):
60 self.client.set_string(self._fmmsdir + "db", path)
62 def get_db_path(self):
63 return self.client.get_string(self._fmmsdir + "db")
65 def get_version(self):
66 return self.client.get_string(self._fmmsdir + "version")
68 def set_version(self, val):
69 self.client.set_string(self._fmmsdir + "version", val)
71 def set_firstlaunch(self, val):
72 self.client.set_int(self._fmmsdir + "firstlaunch", val)
74 def get_firstlaunch(self):
75 return self.client.get_int(self._fmmsdir + "firstlaunch")
77 def set_img_resize_width(self, width):
82 self.client.set_int(self._fmmsdir + "img_resize_width", width)
84 def get_img_resize_width(self):
85 return self.client.get_int(self._fmmsdir + "img_resize_width")
87 def set_phonenumber(self, number):
88 self.client.set_string(self._fmmsdir + "phonenumber", number)
90 def get_phonenumber(self):
91 return self.client.get_string(self._fmmsdir + "phonenumber")
93 def set_pushdir(self, path):
94 self.client.set_string(self._fmmsdir + "pushdir", path)
96 def get_pushdir(self):
97 return self.client.get_string(self._fmmsdir + "pushdir")
99 def set_mmsdir(self, path):
100 self.client.set_string(self._fmmsdir + "mmsdir", path)
102 def get_mmsdir(self):
103 return self.client.get_string(self._fmmsdir + "mmsdir")
105 def set_outdir(self, path):
106 self.client.set_string(self._fmmsdir + "outdir", path)
108 def get_outdir(self):
109 return self.client.get_string(self._fmmsdir + "outdir")
111 def set_imgdir(self, path):
112 self.client.set_string(self._fmmsdir + "imgdir", path)
114 def get_imgdir(self):
115 return self.client.get_string(self._fmmsdir + "imgdir")
117 """ note this takes the *id* from gconf and not the *display name* """
118 def set_apn(self, apn):
119 #apn = apn.replace(" ", "@32@")
120 #self.client.set_string(self._fmmsdir + "apn_nicename", apn)
121 self.client.set_string(self._fmmsdir + "apn", apn)
123 def get_apn_nicename(self):
124 #return self.client.get_string(self._fmmsdir + "apn_nicename")
125 apn = self.client.get_string(self._fmmsdir + "apn")
126 return self.client.get_string('/system/osso/connectivity/IAP/' + apn + '/name')
129 return self.client.get_string(self._fmmsdir + "apn")
131 def set_mmsc(self, mmsc):
132 self.client.set_string(self._fmmsdir + "mmsc", mmsc)
135 return self.client.get_string(self._fmmsdir + "mmsc")
137 def get_proxy_from_apn(self):
139 proxy = self.client.get_string('/system/osso/connectivity/IAP/' + apn + '/proxy_http')
140 proxyport = self.client.get_int('/system/osso/connectivity/IAP/' + apn + '/proxy_http_port')
141 return proxy, proxyport
143 def get_gprs_apns(self):
145 dirs = self.client.all_dirs('/system/osso/connectivity/IAP')
148 # get all sub entries.. this might be costy?
149 all_entries = self.client.all_entries(subdir)
150 # this is a big loop as well, possible to make it easier?
152 for entry in all_entries:
153 (path, sep, shortname) = entry.key.rpartition('/')
154 # this SHOULD always be a int
155 if shortname == 'type' and entry.value.type == gconf.VALUE_STRING and entry.value.get_string() == "GPRS":
156 # split it so we can get the id
157 #(spath, sep, apnid) = path.rpartition('/')
158 apname = self.client.get_string(path + '/name')
159 apnlist.append(apname)
163 """ get the gconf alias for the name, be it the real name or
164 an arbitrary string """
165 def get_apnid_from_name(self, apnname):
167 dirs = self.client.all_dirs('/system/osso/connectivity/IAP')
170 # get all sub entries.. this might be costy?
171 all_entries = self.client.all_entries(subdir)
172 # this is a big loop as well, possible to make it easier?
173 for entry in all_entries:
174 (path, sep, shortname) = entry.key.rpartition('/')
176 # this SHOULD always be a string
177 if shortname == 'name':
178 if entry.value.type == gconf.VALUE_STRING:
179 _value = entry.value.get_string()
180 if _value == apnname:
181 # split it so we can get the id
182 (spath, sep, apnid) = path.rpartition('/')
188 if __name__ == '__main__':
189 config = fMMS_config()
190 #config.get_apnid_from_name("Tele2 MMS")
191 #config.set_apn("bogus")
192 #config.set_pushdir("/home/user/.fmms/push/")
193 #config.set_mmsdir("/home/user/.fmms/mms/")
194 #config.set_mmsc("http://bogus")
195 #print config.get_apn()
196 #print config.get_apn_nicename()