@@ -55,7 +55,7 @@ chrome.contextMenus.onClicked.addListener(function(info, tab) {
5555 saveToPaper ( authToken , paperId , selectedText ) ;
5656 }
5757 else {
58- createPaper ( authToken ) ;
58+ createPaper ( authToken , selectedText ) ;
5959 }
6060 } ) ;
6161 }
@@ -70,7 +70,7 @@ function authorise() {
7070 chrome . tabs . create ( { url : dropboxURL } ) ;
7171}
7272
73- function createPaper ( token ) {
73+ function createPaper ( token , text ) {
7474 //TODO: create paper on user's dropbox and store paperId to storage
7575 var url = 'https://api.dropboxapi.com/2/paper/docs/create' ;
7676 var xhr = new XMLHttpRequest ( ) ;
@@ -85,7 +85,9 @@ function createPaper(token) {
8585 if ( xhr . readyState == XMLHttpRequest . DONE && xhr . status == 200 ) {
8686 var paperid = JSON . parse ( this . response ) ;
8787 chrome . storage . sync . set ( { paperId : paperid . doc_id } ) ;
88- chrome . storage . sync . set ( { revision : paperid . revision } ) ;
88+ chrome . storage . sync . set ( { Revision : paperid . revision } , function ( ) {
89+ saveToPaper ( token , paperid . doc_id , text ) ;
90+ } ) ;
8991 }
9092 } ;
9193
@@ -94,5 +96,22 @@ function createPaper(token) {
9496}
9597
9698function saveToPaper ( token , paperId , text ) {
97- //TODO: save text to paper
99+ chrome . storage . sync . get ( [ 'Revision' ] , function ( result ) {
100+ var url = 'https://api.dropboxapi.com/2/paper/docs/update' ;
101+ var xhr = new XMLHttpRequest ( ) ;
102+ xhr . open ( "POST" , url , true ) ;
103+ var rev = result . Revision ;
104+
105+ xhr . setRequestHeader ( "Authorization" , "Bearer " + token ) ;
106+ xhr . setRequestHeader ( "Dropbox-API-Arg" , "{\"doc_id\": \"" + paperId + "\",\"doc_update_policy\": \"prepend\",\"revision\": " + rev + ",\"import_format\": \"markdown\"}" ) ;
107+ xhr . setRequestHeader ( "Content-Type" , "application/octet-stream" ) ;
108+
109+ xhr . onreadystatechange = function ( ) {
110+ if ( xhr . readyState == XMLHttpRequest . DONE && xhr . status == 200 ) {
111+ new_rev = JSON . parse ( this . response ) ;
112+ chrome . storage . sync . set ( { Revision : new_rev . revision } ) ;
113+ }
114+ }
115+ xhr . send ( text ) ;
116+ } ) ;
98117}
0 commit comments