fered / ebookdroid

Automatically exported from code.google.com/p/ebookdroid
0 stars 0 forks source link

Прошу усовершенствовать механизм закладок #362

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. Переименование файла в библиотеке или 
изменение его местоположения (не из 
программы ebookdroid)

What is the expected output?
- В идеале хотелось бы, чтобы программа 
автоматически определяла, что файл был 
переименован и восстанавливала для него 
закладки.

What do you see instead?
- сейчас же теряются все закладки, 
установленные для данной книги.

What version of the product are you using?
1.5.5

On what operating system?
Android 4.0.4

What device are you using?
Texet TM-9720

Please provide any additional information below.
Прежде всего, огромное спасибо Вам за 
замечательную программу!

Проблема такова: недавно я наводил порядок 
в своей коллекции книг, и переименовал 
большое количество файлов. В результате 
закладки для множества книг были утеряны. 
Опытным путём я выяснил: если восстановить 
старое размещение и имя файла, то книга 
опять появляется в списке последних, 
вместе со всеми закладками. Однако 
проблема в том, что я не помню точно, какие 
имена и пути были у файлов раньше.

Можно было бы сделать вот как: при открытии 
новой книги программа сравнивает размер 
файла с сохранёнными в базе ранее. Даже 
если в папке несколько сотен книг, 
вероятность побайтового совпадения 
размера для нескольких файлов крайне мала. 
Далее, если размер открываемого файла 
совпадает с одним из находящихся в базе, 
программа проверяет, доступна ли эта 
открывавшаяся ранее книга по старому 
местоположению. Если нет, то можно или 
сразу же поправить в базе её путь на новый, 
либо провести вычисления хеша. Хеш можно 
считать не по всему файлу, а, скажем, по 
первому мегабайту, чтобы сэкономить 
ресурсы. Плюс вычисление хеша можно 
сделать фичей, включаемой в настройках.

В идеале также хотелось бы, чтобы в 
программе был некий "менеджер базы данных", 
в котором можно было бы рулить настройками 
книг (по крайней мере, "цеплять" данные для 
одной книги к другому "физическому" файлу).

И наконец ещё одна просьба. Если база 
приложения, где хранятся закладки, не 
шифрована - сообщите мне пожалуйста на 
adminsk.ru@gmail.com её местоположение. Мой девайс 
рутован, и для меня не составит труда 
скачать её на комп и "полечить" через 
SQLite-редактор.

P.S. Если решите сделать программу платной 
на Google Play - обязательно Вас поддержу.

Original issue reported on code.google.com by adminsk...@gmail.com on 29 Oct 2012 at 2:26

GoogleCodeExporter commented 8 years ago
Кстати, этот самый  "менеджер базы данных" 
может быть полезен, чтобы вычистить из базы 
данные по множеству файликов, которые 
открывались "одноразово".

Original comment by adminsk...@gmail.com on 29 Oct 2012 at 3:42

GoogleCodeExporter commented 8 years ago
База нешифрованная, лежит по адресу 
/data/data/org.ebookdroid/ дальше найдете. Вот только 
ключом к настройкам является MD5 от пути к 
файлу:) Как вы будете что-то выцеплять не 
знаю. Кстати, вы не поверите насколько 
велика вероятность совпадения длин:) Надо 
еще и хеш содержимого, а это слишком 
большая вычислительная нагрузка. Но мы 
что-нибудь придумаем.

P.S. Платной программа не будет никогда. По 
крайней мере, пока мы занимаемся ее 
разработкой.

Original comment by Andrei.K...@gmail.com on 29 Oct 2012 at 6:26

GoogleCodeExporter commented 8 years ago
>>Вот только ключом к настройкам является MD5 
от пути к файлу:) Как вы будете что-то 
выцеплять не знаю.

http://dl.dropbox.com/u/17819727/2012.10.29-14.01.37.png :) 

Всё прекрасно видно в поле book. Просто я 
перенёс всю библиотеку с /mnt/sdcard на /mnt/extsd...

Спасибо за помощь!

Original comment by ver.v...@gmail.com on 29 Oct 2012 at 7:07

GoogleCodeExporter commented 8 years ago
Вообще-то настройки книг прекрасно 
сохраняются при бэкапе.
Их можно отредактировать прямо в файле 
бэкапа (/sdcard/.org.ebookdroid/backups/*.jso) и загрузить 
обратно.

Original comment by Alexander.V.Kasatkin@gmail.com on 29 Oct 2012 at 8:27

GoogleCodeExporter commented 8 years ago
Посмотрел - действительно, xml-файл в UTF-е, 
разобраться можно. Но по мне так проще 
выгрузить таблицу из самой базы, сделать 
массовую замену в Excel или Acess и закачать 
обратно, что я уже успешно проделал. Хотя, 
если бы я был гиком 80лвл, то сделал бы всё 
SQL-запросами, не выгружая данные. Вот только 
с синтаксисом REPLACE в SQLite как-то не 
разобрался.

Original comment by ver.v...@gmail.com on 29 Oct 2012 at 9:52

GoogleCodeExporter commented 8 years ago
Это JSON, не XML.

Не REPLACE, а UPDATE. :)

Original comment by Andrei.K...@gmail.com on 29 Oct 2012 at 10:53

GoogleCodeExporter commented 8 years ago
Ок, буду знать. Раз такое дело, может семпл 
запроса с UPDATE приведёте? Может пригодиться 
в будущем.

Original comment by adminsk...@gmail.com on 29 Oct 2012 at 11:38

GoogleCodeExporter commented 8 years ago
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value

Original comment by Andrei.K...@gmail.com on 29 Oct 2012 at 12:40

GoogleCodeExporter commented 8 years ago

Original comment by Andrei.K...@gmail.com on 15 Apr 2013 at 12:51