<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Diario on Blog GoHugo de Fredô : Linux, Proxmox, IA, Trail, Course, Randonnée, Gravel, Ski de Randonnée</title>
    <link>https://move.cyber-neurones.org/tags/diario/</link>
    <description>Recent content in Diario on Blog GoHugo de Fredô : Linux, Proxmox, IA, Trail, Course, Randonnée, Gravel, Ski de Randonnée</description>
    <generator>Hugo</generator>
    <language>fr</language>
    <lastBuildDate>Tue, 05 Feb 2019 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://move.cyber-neurones.org/tags/diario/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Diaro App : DiaroBackup.xml : How to parse in python ? (Draft n°1)</title>
      <link>https://move.cyber-neurones.org/post/2019/02/2019-02-05-diaro-app-diarobackup-xml-how-to-parse-in-python-draft-n1/</link>
      <pubDate>Tue, 05 Feb 2019 00:00:00 +0000</pubDate>
      <guid>https://move.cyber-neurones.org/post/2019/02/2019-02-05-diaro-app-diarobackup-xml-how-to-parse-in-python-draft-n1/</guid>
      <description>&lt;p&gt;(See the finale release : &lt;a href=&#34;https://www.cyber-neurones.org/2019/02/diaro-app-pixel-crater-ltd-diarobackup-xml-how-to-migrate-data-to-joplin/&#34;&gt;https://www.cyber-neurones.org/2019/02/diaro-app-pixel-crater-ltd-diarobackup-xml-how-to-migrate-data-to-joplin/&lt;/a&gt; )&lt;/p&gt;&#xA;&lt;p&gt;Step 1: Add in first ligne : &lt;strong&gt;&lt;!-- raw HTML omitted --&gt;&lt;/strong&gt; before &lt;strong&gt;&lt;!-- raw HTML omitted --&gt;&lt;/strong&gt; in file &lt;strong&gt;DiaroBackup.xml&lt;/strong&gt; &amp;hellip; it&amp;rsquo;s mandatory !&lt;/p&gt;&#xA;&lt;p&gt;I use REST API to insert in JOPLIN : &lt;a href=&#34;https://joplin.cozic.net/api/&#34;&gt;https://joplin.cozic.net/api/&lt;/a&gt; , it&amp;rsquo;s good documentation.&lt;/p&gt;&#xA;&lt;p&gt;Here my first release in Python to import data from Diaro App Backup to Joplin API :&lt;/p&gt;&#xA;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;#&#xA;# Version 1  &#xA;#  &#xA;#   ARIAS Frederic&#xA;#   Sorry ... It&amp;#39;s difficult for me the python :)&#xA;&#xA;from urllib2 import unquote&#xA;from lxml import etree&#xA;import os&#xA;from time import gmtime, strftime&#xA;import time&#xA;&#xA;strftime(&amp;#34;%Y-%m-%d %H:%M:%S&amp;#34;, gmtime())&#xA;start = time.time()&#xA;&#xA;print(&amp;#34;Start : Parse Table&amp;#34;)&#xA;tree = etree.parse(&amp;#34;./DiaroBackup.xml&amp;#34;)&#xA;for table in tree.xpath(&amp;#34;/data/table&amp;#34;):&#xA;    print(table.get(&amp;#34;name&amp;#34;))&#xA;print(&amp;#34;End : Parse Table&amp;#34;)&#xA;&#xA;#Token&#xA;ip = &amp;#34;127.0.0.1&amp;#34;&#xA;port = &amp;#34;41184&amp;#34;&#xA;#token = &amp;#34;ABCD123ABCD123ABCD123ABCD123ABCD123&amp;#34;&#xA;token = &amp;#34;blablabla&amp;#34;&#xA;cmd = &amp;#39;curl http://&amp;#39;+ip+&amp;#39;:&amp;#39;+port+&amp;#39;/notes?token=&amp;#39;+token&#xA;print cmd&#xA;os.system(cmd)&#xA;&#xA;#Init&#xA;Diaro_UID = &amp;#34;12345678901234567801234567890123&amp;#34;&#xA;Lat = {}&#xA;Lng = {}&#xA;Lat[&amp;#34;&amp;#34;] = &amp;#34;&amp;#34;&#xA;Lng[&amp;#34;&amp;#34;] = &amp;#34;&amp;#34;&#xA;cmd = &amp;#39;curl --data \&amp;#39;{ &amp;#34;id&amp;#34;: &amp;#34;&amp;#39;+Diaro_UID+&amp;#39;&amp;#34;, &amp;#34;title&amp;#34;: &amp;#34;Diaro Import&amp;#34;}\&amp;#39; http://&amp;#39;+ip+&amp;#39;:&amp;#39;+port+&amp;#39;/folders?token=&amp;#39;+token&#xA;print cmd&#xA;os.system(cmd)&#xA;&#xA;print(&amp;#34;Start : Parse Table&amp;#34;)&#xA;tree = etree.parse(&amp;#34;./DiaroBackup.xml&amp;#34;)&#xA;for table in tree.iter(&amp;#39;table&amp;#39;):&#xA;    name = table.attrib.get(&amp;#39;name&amp;#39;)&#xA;    print name&#xA;    myorder = 1&#xA;    for r in table.iter(&amp;#39;r&amp;#39;):&#xA;         myuid = &amp;#34;&amp;#34;&#xA;         mytitle = &amp;#34;&amp;#34;&#xA;         mylat = &amp;#34;&amp;#34;&#xA;         mylng = &amp;#34;&amp;#34;&#xA;         mytags = &amp;#34;&amp;#34;&#xA;         mydate = &amp;#34;&amp;#34;&#xA;         mytext = &amp;#34;&amp;#34;&#xA;         myfilename = &amp;#34;&amp;#34;&#xA;         myfolder_uid = Diaro_UID&#xA;         mylocation_uid = &amp;#34;&amp;#34;&#xA;         myprimary_photo_uid = &amp;#34;&amp;#34;&#xA;         myentry_uid = &amp;#34;&amp;#34;&#xA;         myorder += 1&#xA;         for subelem in r:&#xA;&#x9;     print(subelem.tag)&#xA;             if (subelem.tag == &amp;#39;uid&amp;#39;):&#xA;                 myuid = subelem.text&#xA;              &#x9; print (&amp;#34;myuid&amp;#34;,myuid)&#xA;             if (subelem.tag == &amp;#39;entry_uid&amp;#39;):&#xA;                 myentry_uid = subelem.text&#xA;                 print (&amp;#34;myentry_uid&amp;#34;,myentry_uid)&#xA;             if (subelem.tag == &amp;#39;primary_photo_uid&amp;#39;):&#xA;                 myprimary_photo_uid = subelem.text&#xA;                 print (&amp;#34;myprimary_photo_uid&amp;#34;,myprimary_photo_uid)&#xA;             if (subelem.tag == &amp;#39;folder_uid&amp;#39;):&#xA;                 myfolder_uid = subelem.text&#xA;                 print (&amp;#34;myfolder_uid&amp;#34;,myfolder_uid)&#xA;             if (subelem.tag == &amp;#39;location_uid&amp;#39;):&#xA;                 mylocation_uid = subelem.text&#xA;                 print (&amp;#34;mylocation_uid&amp;#34;,mylocation_uid)&#xA;             if (subelem.tag == &amp;#39;date&amp;#39;):&#xA;                 mydate = subelem.text&#xA;                 print (&amp;#34;mydate&amp;#34;,mydate)&#xA;             if (subelem.tag == &amp;#39;title&amp;#39;):&#xA;                 mytitle = subelem.text&#xA;                 print (&amp;#34;mytitle&amp;#34;,mytitle)&#xA;&#x9;&#x9; print type(mytitle)&#xA;                 if type(mytitle) == unicode:&#xA;&#x9;&#x9;&#x9;mytitle = mytitle.encode(&amp;#39;utf8&amp;#39;)&#xA;             if (subelem.tag == &amp;#39;lat&amp;#39;):&#xA;                 mylat = subelem.text&#xA;                 print (&amp;#34;mylat&amp;#34;,mylat)&#xA;             if (subelem.tag == &amp;#39;lng&amp;#39;):&#xA;                 mylng = subelem.text&#xA;                 print (&amp;#34;mylng&amp;#34;,mylng)&#xA;             if (subelem.tag == &amp;#39;tags&amp;#39;):&#xA;                 mytags = subelem.text&#xA;                 if mytags:&#xA;                    mytags[1:]&#xA;                 print (&amp;#34;mytags&amp;#34;,mytags)&#xA;             if (subelem.tag == &amp;#39;text&amp;#39;):&#xA;                 mytext = subelem.text&#xA;                 print (&amp;#34;mytext&amp;#34;,mytext)&#xA;                 if type(mytext) == unicode:&#xA;                        mytext = mytext.encode(&amp;#39;utf8&amp;#39;)&#xA;             if (subelem.tag == &amp;#39;filename&amp;#39;):&#xA;                 myfilename = subelem.text&#xA;                 print (&amp;#34;myfilename&amp;#34;,myfilename)&#xA;         if (name == &amp;#39;diaro_folders&amp;#39;):&#xA;              cmd = &amp;#39;curl --data \&amp;#39;{ &amp;#34;id&amp;#34;: &amp;#34;&amp;#39;+myuid+&amp;#39;&amp;#34;, &amp;#34;title&amp;#34;: &amp;#34;&amp;#39;+mytitle+&amp;#39;&amp;#34;, &amp;#34;parent_id&amp;#34;: &amp;#34;&amp;#39;+Diaro_UID+&amp;#39;&amp;#34;}\&amp;#39; http://&amp;#39;+ip+&amp;#39;:&amp;#39;+port+&amp;#39;/folders?token=&amp;#39;+token&#xA;              print cmd&#xA;              os.system(cmd)&#xA;         if (name == &amp;#39;diaro_tags&amp;#39;):&#xA;              cmd = &amp;#39;curl --data \&amp;#39;{ &amp;#34;id&amp;#34;: &amp;#34;&amp;#39;+myuid+&amp;#39;&amp;#34;, &amp;#34;title&amp;#34;: &amp;#34;&amp;#39;+mytitle+&amp;#39;&amp;#34;}\&amp;#39; http://&amp;#39;+ip+&amp;#39;:&amp;#39;+port+&amp;#39;/tags?token=&amp;#39;+token&#xA;              print cmd&#xA;              os.system(cmd)&#xA;         if (name == &amp;#39;diaro_attachments&amp;#39;):&#xA;              cmd = &amp;#39;curl -F \&amp;#39;data=@media/photo/&amp;#39;+myfilename+&amp;#39;\&amp;#39;  -F \&amp;#39;props={&amp;#34;id&amp;#34;:&amp;#34;&amp;#39;+myuid+&amp;#39;&amp;#34;}\&amp;#39; http://&amp;#39;+ip+&amp;#39;:&amp;#39;+port+&amp;#39;/resources?token=&amp;#39;+token&#xA;              print cmd&#xA;              os.system(cmd)&#xA;              cmd = &amp;#39;curl -X PUT http://&amp;#39;+ip+&amp;#39;:&amp;#39;+port+&amp;#39;/resources/&amp;#39;+myuid+&amp;#39;/notes/&amp;#39;+myentry_uid+&amp;#39;?token=&amp;#39;+token&#xA;              print cmd&#xA;              os.system(cmd)&#xA;         if (name == &amp;#39;diaro_locations&amp;#39;):&#xA;              Lat[myuid] = mylat&#xA;              Lng[myuid] = mylng&#xA;         if (name == &amp;#39;diaro_entries&amp;#39;):&#xA;             if not mytext:&#xA;                  mytext = &amp;#34;&amp;#34;&#xA;             if not myfolder_uid:&#xA;                  myfolder_uid = Diaro_UID&#xA;             if not mytags:&#xA;                  mytags = &amp;#34;&amp;#34;&#xA;             if not mylocation_uid:&#xA;                  mylocation_uid = &amp;#34;&amp;#34;&#xA;             mytext = mytext.replace(&amp;#34;&amp;#39;&amp;#34;, &amp;#34;&amp;#34;)&#xA;             mytitle = mytitle.replace(&amp;#34;&amp;#39;&amp;#34;, &amp;#34;&amp;#34;)&#xA;             mytext = mytext.strip(&amp;#34;\&amp;#39;&amp;#34;)&#xA;             mytitle = mytitle.strip(&amp;#34;\&amp;#39;&amp;#34;)&#xA;             mytext = mytext.strip(&amp;#39;(&amp;#39;)&#xA;             mytitle = mytitle.strip(&amp;#39;(&amp;#39;)&#xA;             print type(mytext)&#xA;             cmd = &amp;#39;curl --data \&amp;#39;{&amp;#34;latitude&amp;#34;:&amp;#34;&amp;#39;+Lat[mylocation_uid]+&amp;#39;&amp;#34;,&amp;#34;longitude&amp;#34;:&amp;#34;&amp;#39;+Lng[mylocation_uid]+&amp;#39;&amp;#34;,&amp;#34;tags&amp;#34;:&amp;#34;&amp;#39;+mytags+&amp;#39;&amp;#34;,&amp;#34;parent_id&amp;#34;:&amp;#34;&amp;#39;+myfolder_uid+&amp;#39;&amp;#34;,&amp;#34;id&amp;#34;:&amp;#34;&amp;#39;+myuid+&amp;#39;&amp;#34;,&amp;#34;title&amp;#34;:&amp;#34;&amp;#39;+mytitle+&amp;#39;&amp;#34;, &amp;#34;created_time&amp;#34;: &amp;#34;&amp;#39;+mydate+&amp;#39;&amp;#34;, &amp;#34;body&amp;#34;: &amp;#34;&amp;#39;+mytext+&amp;#39;&amp;#34;}\&amp;#39; http://&amp;#39;+ip+&amp;#39;:&amp;#39;+port+&amp;#39;/notes?token=&amp;#39;+token&#xA;             print cmd&#xA;             os.system(cmd)&#xA;print(&amp;#34;End : Parse Table&amp;#34;)&#xA;&#xA;strftime(&amp;#34;%Y-%m-%d %H:%M:%S&amp;#34;, gmtime())&#xA;done = time.time()&#xA;elapsed = done - start&#xA;print(elapsed)&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;But I don&amp;rsquo;t understand the API, I can force the id ( for exemple : &lt;strong&gt;12345678901234567801234567890123 )&lt;/strong&gt;:&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
