Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ DC-клиенты _ Запрос в базу данных sqlite клиента

Автор: derschaman 17.11.2010, 17:41

Возникла определенная идея

Опишу вкратце:

1. Делаем запрос в базу данных sqlite клиента
2. Выборка по дате и типу файлов - допустим 10 результатов
3. Экспорт полученных данных в тхт-файл

Для чего всё это:

Сервер, на котором крутиться и хаб и клиент, скрипт на хабе - допустим раз в час - выводит информацию о последних добавленных в шару файлах из текстового файла.

*****Последние 10 новинок на сервере*********

1. МойФильм.avi (разумеется это магнет-ссылка)
2. МояИгра.avi (аналогично)
и тд...

Текстовый файл формируется за счет запроса в базу данных.

Помогите, пожалуйста, правильно выполнить запрос и выборку средствами sqlite3

Автор: Setuper 17.11.2010, 21:20

А нафига текстовый файл?
Ведь легче делать запрос в базу и сразу выводить инфу

Автор: HackFresse 18.11.2010, 10:19

На клиенте будет стоять скрипт, который переодически просматривает шару клиента и пишет в чат последнее добавленное? Полезно, ага - залил видос на сервачок, клиент его расшарил и в чат ссылок накидал

Автор: derschaman 18.11.2010, 16:02

Цитата
А нафига текстовый файл?
Ведь легче делать запрос в базу и сразу выводить инфу


Не важно, можно и без текстового файла, вопрос в том - как это реализовать

Автор: Nickolya 23.11.2010, 15:14

А какой-то информацией о базе вы обладаете? Что за клиент хотя бы, я тут конкретно не увидел. Предлагаю вам скачать какой-нибудь sqlite клиент и залезть в базу, если это выйдет - выкладывайте ее сюда, желательно в сжатом виде, а мы вам составим запрос big_smile.gif

Автор: derschaman 23.11.2010, 17:44

Цитата(Nickolya @ 23.11.2010, 15:14) *
А какой-то информацией о базе вы обладаете? Что за клиент хотя бы, я тут конкретно не увидел. Предлагаю вам скачать какой-нибудь sqlite клиент и залезть в базу, если это выйдет - выкладывайте ее сюда, желательно в сжатом виде, а мы вам составим запрос big_smile.gif


Клиент любой из серии грей/флай/стронг - то есть те, которые хранят информацию в локальной sqlite базе. Я по базе спокойно могу лазить сколько мне душе угодно, хоть непосредственно sqlite3.exe, хоть при помощи сторонних утилит


Автор: derschaman 3.12.2010, 1:04

Неужели 1. Никому не интересна данная функция 2. "Нет пророков в своём отечестве..." big_smile.gif

Автор: Ksan 3.12.2010, 1:45

1. Мне не интересна.
2. Попытался представить себе чат, куда все (или многие) выкидывают магнеты со своих обновленных шар..

Автор: derschaman 3.12.2010, 3:09

Цитата(Ksan @ 3.12.2010, 1:45) *
1. Мне не интересна.
2. Попытался представить себе чат, куда все (или многие) выкидывают магнеты со своих обновленных шар..


Речь не идёт о многих, имеется в виду сервер (хаб+клиент) , и скрипт отрабатывает запросы только на этом сервере, а не у кучи юзеров.

1. В скрипте хаба жестко забит абсолютный путь к базе клиента (установленного на этом же сервере)
2. Отбирает по типу файлов (.avi) 5-10 последних записей по дате.
3. Формирует табличку с магнет-ссылками
4. Периодически (раз в несколько часов) выводит табличку в чат.
5. Можно еще выводить табличку в ЛС при входе клиента.

Автор: Nickolya 5.1.2011, 2:03

Итак, рассказываю. Попробовал я, сначала клиенты с более старой версией библиотеки не открывали мою базу (этими клиентами были готовые библиотеки для луа, как специально для птоки, так и для чистого луа, т.е. конект напрямую из скриптов отпадает, если только собрать нужную версию библиотеки), затем актуальной версией открылось и я начал пробовать... Сам запрос составить было не так сложно, вот он:

Код
SELECT fly_file.name, fly_file.size, fly_file.stamp_share, fly_hash.tth FROM fly_file, fly_hash WHERE (fly_hash.id=fly_file.tth_id AND fly_file.ftype=6) ORDER BY stamp_share DESC LIMIT 10;

теперь то самое но: в поле fly_hash мы получаем какую-то фигню, данные в бд хранятся в формате blob, их надо перекодировать в нормальный вид, до чего я не дошел как сделать при помощи sqlite3.exe

В голову пришла другая идея, ведь в файллисте мы имеем нормальны данные, и timestamp там есть, поэтому проще будет разархивировать файл клиента files.xml.bz2, затем отпарсить xml и занести нужные данные в массив, из него отобрать нужные значения... Данное действо реализуется и на луа и на пхп, оно дико менее оптимально, но зато выглядит всё проще и реализуемей.