예제 #1
0
 def _make_new_vcard(self, handle, name, kind):
     l = [
         VCardLine(name='fn', value=name),
         VCardLine(name='kind', value=kind)
     ]
     if self.KIND in VCardStore.KINDS_PEOPLE:
         return MailpileVCard(
             VCardLine(name='email', value=handle, type='pref'), *l)
     else:
         return MailpileVCard(VCardLine(name='nickname', value=handle), *l)
예제 #2
0
 def _get_or_create_vcard(self, address):
     vcard = self.session.config.vcards.get_vcard(address)
     if not vcard:
         vcard = MailpileVCard(VCardLine(name='email',
                                         value=address,
                                         type='pref'),
                               VCardLine(name='kind', value='individual'),
                               config=self.session.config)
         self.session.config.vcards.add_vcards(vcard)
     return vcard
예제 #3
0
    def get_vcards(self):
        if not self.config.active:
            return []

        def _b64(data):
            return data.encode('base64').replace('\n', '')

        results = []
        for contact in self._want_update():
            email = contact.email
            if not email:
                continue

            if mailpile.util.QUITTING:
                return []

            vcard = MailpileVCard(VCardLine(name=self.VCARD_TS,
                                            value=int(time.time())))
            email, img, gcard, gjson = self.check_libravatar(contact, email)

            if gcard:
                # FIXME: Is this boring?
                # vcard.load(data=gcard)
                pass

            if gjson:
                # FIXME: This is less boring!
                pass

            if img:
                vcard.add(VCardLine(
                    name='photo',
                    value='data:image/jpeg;base64,%s' % _b64(img),
                    mediatype='image/jpeg'
                ))

            if gcard or gjson or img:
                vcard.add(VCardLine(name='email', value=email))
                results.append(vcard)
        return results
예제 #4
0
    def get_vcards(self):
        if not self.config.active:
            return []

        def _b64(data):
            return data.encode('base64').replace('\n', '')

        results = []
        for contact in self._want_update():
            email = contact.email
            if not email:
                continue

            if mailpile.util.QUITTING:
                return []

            vcard = MailpileVCard(VCardLine(name=self.VCARD_TS,
                                            value=int(time.time())))
            email, img, gcard, gjson = self.check_libravatar(contact, email)

            if gcard:
                # FIXME: Is this boring?
                # vcard.load(data=gcard)
                pass

            if gjson:
                # FIXME: This is less boring!
                pass

            if img:
                vcard.add(VCardLine(
                    name='photo',
                    value='data:image/jpeg;base64,%s' % _b64(img),
                    mediatype='image/jpeg'
                ))

            if gcard or gjson or img:
                vcard.add(VCardLine(name='email', value=email))
                results.append(vcard)
        return results
예제 #5
0
 def _add_vcard(self, full_name, email):
     card = MailpileVCard(VCardLine(name='fn', value=full_name),
                          VCardLine(name='email', value=email))
     self.config.vcards.add_vcards(card)
     return card
예제 #6
0
mailpile.i18n.ActivateTranslation(None, ConfigManager, None)
config = ConfigManager(rules=mailpile.config.defaults.CONFIG_RULES)
cfg = config
with open('/tmp/pass', 'rb') as fort1f3:
    p1 = fort1f3.read()
pass2 = SecurePassphraseStorage(p1)
cfg.load_master_key(pass2)

session = Session(config)
cli_ui = session.ui = UserInteraction(config)
session.main = True
config.clean_tempfile_dir()
config.load(session)
session.config = cfg

vcard = MailpileVCard()
vcard.kind = 'profile'
with open('/tmp/mail', 'rb') as fort3f3:
    mail = fort3f3.read()
with open('/tmp/fn', 'rb') as fort2f3:
    fn = fort2f3.read()
mail.replace("\n", "")
fn.replace("\n", "")
mail = ''.join(mail.splitlines())
fn = ''.join(fn.splitlines())
data = {
    'name': [fn],
    'email': [mail],
    'route-protocol': ['smtp'],
    'route-host': ['::1'],
    'route-port': ['25'],
예제 #7
0
mailpile.i18n.ActivateTranslation(None, ConfigManager, None)
config = ConfigManager(rules=mailpile.config.defaults.CONFIG_RULES)
cfg=config
with open('/tmp/pass', 'rb') as fort1f3:p1=fort1f3.read()
pass2 = SecurePassphraseStorage(p1)
cfg.load_master_key(pass2)

session = Session(config)
cli_ui = session.ui = UserInteraction(config)
session.main = True
config.clean_tempfile_dir()
config.load(session)
session.config=cfg

vcard = MailpileVCard()
vcard.kind='profile'
with open('/tmp/mail', 'rb') as fort3f3:mail=fort3f3.read()
with open('/tmp/fn', 'rb') as fort2f3:fn=fort2f3.read()
mail.replace("\n", "")
fn.replace("\n","")
mail=''.join(mail.splitlines())
fn=''.join(fn.splitlines())
data= {'name': [fn], 'email': [mail],'route-protocol':['smtp'],'route-host':['::1'],'route-port':['25'],'route-auth_type':['none']}

command=Command(session,data=data)
command.session=session
addvcard=AddVCard(VCardCommand(command))
addvcard.session=session
profile=AddProfile(addvcard)
profile.session=session;