Конвертер html to sqlite.

By Mechel

 

Основная задача конвертера —

перенос заметок из Evernote 5.0.1 в другую программу заметок для Android – Memoires Notes 1.9.3.3.

  https://play.google.com/store/apps/details?id=net.nakvic.dromoris&hl=ru  

Bash скрипт скачать convert html to sqlite.

Проверен на системе linux Kubuntu 3.16.0-43-generic #58~14.04.1-Ubuntu
Используемые пакеты:
sed
awk
sqlite3

 

Процесс конвертации:

1) Из программы Evernote (для windows) осуществяется экспорт в отдельные html файлы, дополнительно с указанием даты создания.
2) Cкрипт переносит текстовое содержимое созданных html файлов в базу данных Sqlite3 (memories.db3 таблица MEMO).

Пояснения к скрипту:
prepare sqlite — удвоение кавычек для корректного импорта в базу
sed ‘/[^»]»/ s/»/»»/g’


 # начало цикла - считывание всех файлов из директории htm
 find htm -type f | while read FILENAME; do
echo "$FILENAME"
 #___________________________CONTENT-TITLE
 # очистка html от лишних тегов
 content=$(cat "$FILENAME"|sed -n '//,/<\/body>/p'|sed 's/<font[^}]*">//g;s///g'| sed 's/
//g;s///g'| sed 's/<basefont[^}]*\/>//g;s///g'| sed 's/<meta[^}]*\/>//g;s///g$
# удаление переноса строки
 content=$(echo "$content" |sed ':a; /$/N; s/\n//; ta')
# отделение названия
 title=$(cat "$FILENAME"|sed '/*/!d; s///;q'| sed 's/<[^>]*>//g;s///g' ) #___________________________CONTENT-TITLE
#___________________________ DATE-TIME
 # отделение даты и времени, изменение формата
 dates=$(cat "$FILENAME" |sed '/Создана:*/!d; s///;q'| sed 's/<[^>]*>//g;s///g'|awk '{print $3, $1}' |awk 'BEGIN {FS="."}{ print $3 "-" $2 "-"$1}')
 times=$(cat "$FILENAME" |sed '/Создана:*/!d; s///;q'| sed 's/<[^>]*>//g;s///g'|awk '{print $2}')
# преобразование в POSIX-время, добавление 000
 Stat=$(date +%s -d"$dates $times")
 zero="000"
 timestamp="$Stat$zero"
 #___________________________ DATE-TIME
# тег заметки
 Descr='diary'
# вставка переменных в базу sqlite с именем memories.db3
 echo "im gonna run" sqlite3 database.db "insert into note_table \
 (global_id,date_added,text,tags) \
 values (\"$content\",$title,\"$timestamp\",\"$Descr\");"
 sqlite3 memories.db3 "insert into memo (note,header,created,tags) \
 values (\"$content\",\"$title\",\"$timestamp\",\"$Descr\");"
#_________________________________________