def __getattr__(self, name): value = super(API, self).__getattr__(name) if (value is None) or (len(value) == 0): # and (name != '/'): _d_ = HashedFuzzySmartLists({}) _values_ = [] for k in self.keys(): if (misc.isDict(super(API, self).__getattr__(k))) and (super( API, self).__getattr__(k).has_key('url')): _k_ = super(API, self).__getattr__(k)['url'].replace( '/' + k.split('@')[0], '') _d_[_k_] = SmartFuzzyObject( super(API, self).__getattr__(k)) l = ListWrapper(_d_.keys()) _name_ = name.split(API.make_key('', ''))[-1] if (not self.__specific__): while (len(_name_) > 0): _list_ = l.findAllContaining(_name_) if ( _name_ != '/') else l.findAllMatching(_name_) _items_ = [ item for item in _list_ if (item.endswith(_name_)) ] x = l.findFirstMatching(_items_[0] if ( len(_items_) > 0) else _name_) if ( (len(_list_) > 0) or (_name_ == '/')) else l.findFirstContaining( _items_[0] if (len(_items_) > 0) else _name_) if (x > -1): for v in _d_[l[x]]: _values_.append(v) break else: x = l.findFirstContaining(_name_) if (x > -1): for v in _d_[l[x]]: _values_.append(v) break else: _l_ = _name_.split('/') del _l_[-2 if (len(_l_[-1]) == 0) else -1] _name_ = '/'.join(_l_) return value if (len(_values_) == 0) else _values_
def __getattr__(self, name): value = super(API, self).__getattr__(name) if (value is None) or (value == []): l = ListWrapper(self.keys()) x = l.findFirstContaining( API.make_key( name.split(API.make_key('', ''))[-1], APIVersion1001. __version__) if ( name.startswith('/') and name.endswith('/')) else name) if (x > -1): return super(API, self).__getattr__(l[x]) else: return super(APIVersion1001, self).__getattr__(name) return value
def parseMessage(self, data): from vyperlogix.lists.ListWrapper import ListWrapper def fuzzyCompare(_item, s_search): f = lambda _item, s_search: _item.lower().find(s_search.lower() ) > -1 does_match = f(_item, s_search) return does_match def emptyCompare(_item, s_search): f = lambda _item, s_search: str(_item).strip() == s_search does_match = f(_item, s_search) return does_match def parse_for_target(_toks, _target, callback=None): _val = '' i = _toks.findFirstContaining(_target, callback=callback) if (i > -1): _val = [_toks[i].split(_target)[-1]] return _val toks = ListWrapper(data.split('\n')) d = lists.HashedLists2() _f = toks.findFirstContaining('', callback=emptyCompare) if (_f > -1): _f -= 1 d[const_headers_symbol] = tuple([t.strip() for t in toks[0:_f]]) d[const_body_symbol] = tuple([t.strip() for t in toks[_f + 1:]]) d[const_from_symbol] = parse_for_target(toks, const_from_symbol, callback=fuzzyCompare) d[const_to_symbol] = parse_for_target(toks, const_to_symbol, callback=fuzzyCompare) d[const_subject_symbol] = parse_for_target(toks, const_subject_symbol, callback=fuzzyCompare) return d
def send_php_email(url,parms={},is_html=False,data={},error_symbol=None): import urllib,urllib2 content = '' try: __data__ = data # don't worry this line works... data = {} logging.warning('send_php_email().1 --> parms=%s' % (parms)) if (len(parms.keys()) > 0): _expected_keys = ['to','subject','body','altbody'] for k,v in parms.iteritems(): if (k == 'altbody'): data[k] = (v.replace('\n','').replace('\r','').replace("\'",'') if (k in _expected_keys) else '') else: data[k] = (v.replace("\'",'') if (k in _expected_keys) else '') else: data = {'to':'*****@*****.**', 'subject':'This is a test...', 'body':'<p>This is <b>just</b> a test...</p>', 'altbody':'This is just a test...'} logging.warning('send_php_email().2 --> data=%s' % (data)) data = urllib.urlencode(data) user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' headers = {'User-Agent':user_agent} req = urllib2.Request(url, data, headers) response = urllib2.urlopen(req) content = response.read() logging.warning('send_php_email().3 --> content=%s' % (content)) except Exception, e: toks = ListWrapper(str(e).split()) f = toks.findFirstContaining(']') message = 'send_php_email().ERROR --> "%s".' % (str(e)) message2 = 'send_php_email().ERROR --> "%s".' % (' '.join(toks[f+1:f+1+5]+'...') if (f > -1) else str(e)) if (error_symbol): if (misc.isDict(__data__)): __data__[error_symbol] = message2 logging.warning(message)