def create_user_communities(user): for cname in user.get('communities'): if not valid_community(cname): warning('Invalid community: %s\n' %(cname)) continue if get_ordinary_community(cname) == None: community = create_community(cname) save_communities([community])
def valid_addr(addr): l = addr.split(':') if not ((len(l) == 2 and l[0] == 'u') or (len(l) == 3 and l[0] == 'c')): return False if l[0] == 'u' and not valid_uid(l[1]): return False if l[0] == 'c' and not valid_community(l[2]): return False return True
def handle_icon_request(self, user, request): iconid = request.get('iconid') if iconid == None or type(iconid) != str: return None debug('Icon request from %s: %s\n' % (user.get('nick'), iconid)) if iconid == 'user': icon = read_file_contents(seek_face_name(self.myself)) version = self.myself.get('faceversion') limiter = self.iconfetchlimiters['user'] elif iconid.startswith('c:'): cname = iconid[2:] if not valid_community(cname): return None if cname not in self.myself.get('communities'): return None com = self.get_ordinary_community(cname) if com == None: return None if com.get('myiconversion') != com.get('iconversion'): # Do not reply with a old version of the icon! return icon = read_file_contents(seek_community_icon_name(com)) version = com.get('iconversion') limiter = self.iconfetchlimiters.get(iconid) if limiter == None: limiter = Rate_Limiter(ICON_PUSH_INTERVAL) self.iconfetchlimiters[iconid] = limiter else: return None if icon == None: icon = '' if version == None: version = 0 request = {'t': 'iconpush', 'iconid': iconid, 'icon': icon, 'version': version} if normal_traffic_mode(): self.fetcher.fetch(user, PLUGIN_TYPE_COMMUNITY, request, None, ack=False) elif limiter == None or limiter.check(): self.fetcher.fetch_community(self.get_default_community(), PLUGIN_TYPE_COMMUNITY, request, None, ack=False) return {}
def response_handler(self, widget, event): if event == gtk.RESPONSE_OK: self.community_name = self.name_entry.get_text() if not valid_community(self.community_name): self.notification.ok_dialog('Error', 'Invalid community name.', parent=self.dialog, modal=True) return True self.desc = self.description_tbuffer.get_text(self.description_tbuffer.get_start_iter(), self.description_tbuffer.get_end_iter()) if self.desc == "<<Insert description>>": self.desc = None self.save_community_information(self.personal_community == False) self.pic_dialog.close() self.dialog.destroy() return True
from meta import Meta, Meta_Attribute, validate_list, privatebool, \ publicstring, publicunsignedint, privateunsignedint, privatestringlist, \ is_unsigned_int from proximateprotocol import valid_community, valid_uid comattrs = {} # Public attributes for pubkey in ['creator', 'description', 'keywords', 'timestart', 'timeend', 'location', 'www']: comattrs[pubkey] = publicstring() comattrs['creatoruid'] = Meta_Attribute(str, public=True, is_valid=lambda n, v: valid_uid(v)) comattrs['iconversion'] = Meta_Attribute(int, public=True, is_valid=is_unsigned_int, default=0) comattrs['name'] = Meta_Attribute(str, public=True, is_valid=lambda n, v: valid_community(v)) comattrs['name'].is_required() # Private attributes comattrs['cid'] = privateunsignedint() comattrs['invisible'] = privatebool(default=False) comattrs['members'] = Meta_Attribute(list, public=False, is_valid=lambda n, v: validate_list(v, valid_uid), default=[]) comattrs['keys'] = privatestringlist() comattrs['peer'] = Meta_Attribute(bool, public=False, default=True) comattrs['public'] = Meta_Attribute(bool, public=False, default=True) comattrs['iconlocked'] = Meta_Attribute(bool, public=False, default=False) comattrs['myiconversion'] = privateunsignedint() # Private non-saved # Nothing atm