JOPLIN : Script to rename tacitpart file

20 x served & 7 x viewed

My script to rename tacitpart file :

#!/bin/bash
  
# ARIAS Frederic
#
# For MAC OS do
#

suffix=".tacitpart"
path="WebDAV"

for file in $path/*.tacitpart
do
    if [[ -f $file ]]; then
	filenew=$(basename $file $suffix)
        echo $file" -> "$filenew 
	mv $file $path/$filenew
	touch $path/$filenew
    fi
done

# 
for file in $path/.resource/*.tacitpart
do
    if [[ -f $file ]]; then
	$filenew = ${file/%$suffix}
        echo $file." -> ".$filenew
        mv $file $path/.resource/$filenew
        touch $path/.resource/$filenew
    fi
done

Joplin & WebDav en HTTP : Recherche d’une solution …

61 x served & 14 x viewed

J’ai découvert ce superbe logiciel : Joplin, et je l’ai utilisé de façon intensive jusqu’à ce que le WebDav en HTTP ne soit plus possible. Ensuite cela a été la galère pour synchroniser les notes. J’ai cru pendant un moment que le problème allait être rapidement corriger … mais non. Mon précédent POST sur le problème : http://www.cyber-neurones.org/2019/07/android-joplin-synchronisation-webdav-en-http-est-hs/ . Le problème est ouvert depuis le 17 juin, et on est le 8 septembre …

J’ai donc cherché une autre solution, c’est de faire la synchronisation via un logiciel tier sous Android : FolderSync . Mais la solution ne fonctionne pas, et je ne sais pas pourquoi …

Sur Folder Sync, j’ai bien le répertoire : /store/emulated/0/Joplin qui est complet :

Sur Joplin je pointe bien sur le même répertoire :

Misère.

UPDATE : SOLUTION :

J’ai effacé complètement Joplin, et j’ai relancer mon portable. Ceci a fixé mon problème … Bizarre. ( Le lien vers le POST sur le forum : https://discourse.joplinapp.org/t/android-issue-with-sync-by-file-system/3448 ).

Android & Joplin : Synchronisation WebDAV en HTTP est HS

109 x served & 46 x viewed

Depuis deux versions il est impossible de faire une synchronisation via WebDAV , j’ai même essayé avec une clef privé ou une clef publique mais cela n’a pas fonctionné.

Les deux versions de Joplin pour Android (je conseille donc de ne pas faire la mise à jours) : https://play.google.com/store/apps/details?id=net.cozic.joplin&hl=fr

  • 1.0.271.
  • 1.0.281.

J’ai ouvert un ticket mais dans réelle solution : https://discourse.joplinapp.org/t/webdav-not-work-with-last-release-of-android/2696 :

Hi,
Since the last update of Joplin, I can’t sync with WebDAV.
I put a tcpdump on port of WebDAV but I don’t see any request … I try to remove and reinstall the app, but I have a same issue.
How I can have more logs on Joplin (Android) ?
Thanks.
Frédéric.

My release on Android 1.0.271.

La clef publique qui ne fonctionne pas :

Le logiciel que j’utilise sur mon mac WebDAVNav Server v2.7:

J’ai tout essayé :

Le problème semble être connu : https://github.com/facebook/react-native/issues/25244 … c’est sur react-native : https://github.com/facebook/react-native .

Le problème est toujours ouvert : https://github.com/laurent22/joplin/issues/1686WEBDav sync in Android version cannot be performed.

Misère, je suis bloqué depuis 30 jours.

Python : How to clean ressources of Joplin not used ?

118 x served & 34 x viewed

Here the script in Python : https://github.com/CYBERNEURONES/Python/blob/master/JoplinCleanRessource.py

#
# Version 1 
# for Python 3
# 
#   ARIAS Frederic
#   Sorry ... It's difficult for me the python :)
#

from time import gmtime, strftime
import time
import json
import requests
import os
import sqlite3
import re

#conn = sqlite3.connect('my_db.db')
find_this = "\(:/"

#c = conn.cursor()
#c.execute('''DROP TABLE LINK''')
#conn.commit()
#c.execute('''CREATE TABLE LINK (ID_NOTE text, ID_RESOURCE text, CHECKSUM_MD5 text)''')
#conn.commit()

#IP
ip = "127.0.0.1"
port = "41184"
token = "Put the token here"
nb_request = 0
my_body = ""
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
url_notes = (
    "http://"+ip+":"+port+"/notes?"
    "token="+token
)
nb_total_ressource = 0
nb_local_ressource = 0
ALL_ID = {}
try:
    resp = requests.get(url_notes, headers=headers)
    nb_request += 1
    resp.raise_for_status()
    resp_dict = resp.json()
    #print(resp_dict)
    for my_note in resp_dict:
        nb_local_ressource = 0
        my_body = my_note.get('body')
        my_ressource = [m.start() for m in re.finditer(find_this, my_body)]
        for my_ressource_x in my_ressource:
             nb_total_ressource += 1
             nb_local_ressource += 1
             my_ressource_id = my_body[my_ressource_x+3:my_ressource_x+32+3]
             print(nb_local_ressource,":",my_note.get('id'),":",my_ressource_id)
             ALL_ID[my_ressource_id]=my_note.get('id')
             
             #c.execute(sql_request)
             #conn.commit()
except requests.exceptions.HTTPError as e:
    print("Bad HTTP status code:", e)
except requests.exceptions.RequestException as e:
    print("Network error:", e)

nb_keep = 0
nb_remove = 0
url_resources = (
    "http://"+ip+":"+port+"/resources?"
    "token="+token
)
try:
    resp = requests.get(url_resources, headers=headers)
    nb_request += 1
    resp.raise_for_status()
    resp_dict = resp.json()
    #print(resp_dict)
    for my_resource in resp_dict:
        my_id = my_resource.get('id')
        if my_id in ALL_ID:
            print("Keep for notes",ALL_ID[my_id])
            nb_keep += 1
        else:
            print("Remove");
            nb_remove += 1
            url_resources_delete = (
    "http://"+ip+":"+port+"/resources/"+my_id+"?"
    "token="+token
)
            try:
                 resp2 = requests.delete(url_resources_delete, headers=headers)
                 resp.raise_for_status()
                 nb_request += 1
            except requests.exceptions.HTTPError as e:
                 print("Bad HTTP status code:", e)
            except requests.exceptions.RequestException as e:
                 print("Network error:", e)
except requests.exceptions.HTTPError as e:
    print("Bad HTTP status code:", e)
except requests.exceptions.RequestException as e:
    print("Network error:", e)

#conn.close()
print("nb_request",nb_request,"nb_total_ressource : ",nb_total_ressource," nb_local_ressource : ",nb_local_ressource)
print("nb_keep",nb_keep,"nb_remove",nb_remove);

Here the result :

$ grep "Total resources:" .config/joplin-desktop/log.txt | awk '{print $1 " " $5}' | uniq | tail -f
2019-02-25 10191"
2019-02-25 10194"
2019-02-25 10190"
2019-02-26 10190"
2019-02-27 10190"
2019-02-28 10190"
2019-02-28 10192"
2019-03-01 10192"
2019-03-01 2919"
2019-03-01 2814"

Joplin : Je suis heureux de recevoir le badge « New User of the Month »

État

118 x served & 18 x viewed

Il reste encore du travail à faire … mais cette application est vraiment très bien. J’ai fait énormément de test avec beaucoup de donnée, et je n’ai pas eu de problème.