Ejemplo n.º 1
0
def upload(t_pretty, filename, manual=False):
    print('Uploading to db...')

    # compute the pk for this new entry
    db = CloudantDatabase(client, db_name)
    resp = db.get_view_raw_result('_design/view', 'log', reduce=True)
    if not resp['rows']:
        pk = 1
    else:
        pk = resp['rows'][0]['value']
        pk += 1

    docid = 'log:' + str(pk)
    data = {
        '_id'      : docid,
        'pk'       : pk,
        'timestamp': t_pretty,
        'filename' : filename,
        'manual'   : manual
    }
    new_document = client[db_name].create_document(data)
    fp = open('img/'+filename, 'rb')
    data = fp.read()
    fp.close()
    new_document.put_attachment(filename, 'image/jpeg', data)
    if new_document.exists():
        print('Upload success!')
        # send live feed to webpage
        payload = {'type': 'doc', 'doc': new_document}
        pubnub.publish(pubnub_channel_pi, payload)
        return docid

    print('Failed to upload image.')
    return False