Example #1
0
def get_email(user):
    server = IMAPClient(HOST, use_uid=True, ssl=True)
    username = db.get("user:%s:login" % user)
    password = db.get("user:%s:password" % user)
    server.login(username, password)
    server.select_folder('INBOX', readonly=True)
    messages = server.search(['NOT DELETED','SINCE 15-May-2014'])
    response = server.fetch(messages, ['RFC822', 'FLAGS'])
    for msgid, data in response.iteritems():
        # check for duplicates
        duplicate = db.zrangebyscore("mail:%s:inbox" % user, msgid, msgid)
        if duplicate:
            continue
        emailUTF8 = data['RFC822'].encode('utf-8')
        msg = parser.parsestr(emailUTF8)
        body = extract_body(msg).encode('utf-8')
        msg['message'] = body
        msg['subject'] = ('NoSubj' if (msg['Subject'] == None or msg['Subject'].encode('utf-8') == "".encode('utf-8'))  else msg['Subject'])
        msg['to'] = ('NoTo' if (msg['To'] == None) else msg['To'])
        plain = {'plain_body': extract_body_text(msg).encode('utf-8'), 'subject': msg['subject']}
        # TODO set unread
        email = {'id': msgid, 'from': msg['From'], 'to': msg['To'], 'subject': msg['Subject'],
                'date': msg['Date'], 'cc': msg['CC'], 'read': False,
                'message': body, 'categorized': False, 'summary': shorten(plain), 'archived': False}

        trained = db.get("user:%s:trained" % user)
        if trained == "true":
            email['category'] = int(classify(msg, user))
        else:
            email['category'] = 1
        emailJSON = json.dumps(email, sort_keys=True, indent=4, separators=(',', ': '))
        db.zadd("mail:%s:inbox" % user, emailJSON, msgid)
        db.sadd("mail:%s:%s" % (user, email['category']), msgid)
    server.logout()
Example #2
0
async def ultima_consulta(request):
    """ 
    Método que retorna os dados do Redis. 
    :return: json com dados do cliente.
    """
    dados = {}
    for key in db.keys():
        dados[key] = db.get(key)
    return json(dados)
Example #3
0
def send_email():
    email = json.loads(request.data)
    username = db.get("user:%s:login" % current_user.user)
    password = db.get("user:%s:password" % current_user.user)
    subprocess.Popen(
        [
            "/home/jmvldz/sigma/python_env/bin/python",
            "/home/jmvldz/sigma/send-email.py",
            "-f",
            username,
            "-t",
            email["to"],
            "-m",
            email["body"],
            "-s",
            email["subject"],
            "-p",
            password,
        ]
    )
    return "Success"
Example #4
0
    def post(self):
        data_dict = json.loads(request.data)
        url_original = data_dict['url']

        parsed_url = urllib.parse.quote_plus(url_original)
        url_short = db.get(parsed_url)
        if not url_short:
            url_short = str(uuid5(NAMESPACE_URL, url_original))
            db.set(f'{parsed_url}', url_short)
            db.set(f'{url_short}:original', url_original)
            db.set(f'{url_short}:counter', 0)
        response = {'original': url_original, 'short': str(url_short)}

        return (response, 200)
Example #5
0
def get_categories():
    categoryString = db.get("user:%s:categories" % current_user.user)
    return make_response(categoryString)
Example #6
0
 def get(self, url_short=None):
     original = db.get(f'{url_short}:original')
     if original:
         db.incr(f'{url_short}:counter')
         return redirect(original, 301)