72 lines
2.2 KiB
Python
72 lines
2.2 KiB
Python
import json
|
|
import os
|
|
|
|
from dptrp1.dptrp1 import DigitalPaper
|
|
|
|
client_id=''
|
|
key=''
|
|
SYNC_DIR = '/home/dl92/Documents/DigitalPaper/'
|
|
def connect(address=''):
|
|
"""
|
|
Loads the key and client ID to authenticate with the DPT-RP1
|
|
"""
|
|
with open('/home/dl92/.dpt-client.txt', 'r') as f:
|
|
client_id = f.readline().strip()
|
|
|
|
with open('/home/dl92/.dpt-key.txt', 'r') as f:
|
|
key = f.read()
|
|
|
|
dpt = DigitalPaper(address)
|
|
dpt.authenticate(client_id, key)
|
|
return dpt
|
|
|
|
def sync(dpt):
|
|
"""
|
|
Given an authenticated DigitalPaper instance, download all note files to a
|
|
specified directory.
|
|
"""
|
|
for doc in [f for f in dpt.list_documents() if (is_modified_note(f) and is_ReadingFolder(f)) ]:
|
|
#docpath=os.path.dirname(doc['entry_path'])
|
|
#if docpath=='Document/Reading' :
|
|
data = dpt.download(doc['entry_path'])
|
|
local_path = SYNC_DIR + os.path.basename(doc['entry_path'])
|
|
with open(local_path, 'wb') as f:
|
|
f.write(data)
|
|
print('Saved {} to {}'.format(doc['entry_path'], local_path))
|
|
|
|
def is_modified_note(doc):
|
|
import dateparser
|
|
if doc['document_type'] == 'note' or doc['document_type'] == 'normal':
|
|
local_path = SYNC_DIR + os.path.basename(doc['entry_path'])
|
|
|
|
if not os.path.exists(local_path):
|
|
return True
|
|
else:
|
|
#print (local_path,doc['modified_date'], os.path.getmtime(local_path), dateparser.parse(doc['modified_date']).timestamp())
|
|
return os.path.getmtime(local_path) < dateparser.parse(doc['modified_date']).timestamp()
|
|
|
|
def is_ReadingFolder(doc):
|
|
docpath=os.path.dirname(doc['entry_path'])
|
|
if docpath=='Document/Reading':
|
|
return True
|
|
else:
|
|
return False
|
|
|
|
|
|
def upload_overwrite(dpt,localpath, remotepath='Document/Reading'):
|
|
import glob, os
|
|
dpt.new_folder(remotepath)
|
|
files= glob.glob(localpath+'/*.pdf')
|
|
for f in files:
|
|
print (f)
|
|
dpt.upload_file(f,remotepath)
|
|
|
|
def delete_foldercontent(dpt,remotepath):
|
|
[dpt.delete_document(doc['entry_path']) for doc in dpt.list_objects_in_folder(remotepath)]
|
|
|
|
|
|
dpt=connect('192.168.0.131')
|
|
#sync(dpt)
|
|
#dpt.new_folder('Document/Miri')
|
|
#upload_overwrite(dpt,SYNC_DIR+'/Upload','Document/Miri')
|